我想使用pandas OLS函数来为我的数据系列拟合趋势线.有谁知道如何使用熊猫系列中的日期时间索引作为OLS中的预测器?
例如,假设我有一个简单的时间序列:
>>> ts
2001-12-31 19.828763
2002-12-31 20.112191
2003-12-31 19.509116
2004-12-31 19.913656
2005-12-31 19.701649
2006-12-31 20.022819
2007-12-31 20.103024
2008-12-31 20.132712
2009-12-31 19.850609
2010-12-31 19.290640
2011-12-31 19.936210
2012-12-31 19.664813
Freq: A-DEC
Run Code Online (Sandbox Code Playgroud)
我想使用索引作为预测器对其进行OLS:
model = pd.ols(y=ts,x=ts.index,intercept=True)
Run Code Online (Sandbox Code Playgroud)
但由于x是日期时间索引的列表,因此该函数返回错误.有人有想法吗?
我可以使用scipy.stats的linregress,但我想知道它是否可能与Pandas.
谢谢,格雷格
我是python和编程的新手,所以原谅任何应该很明显的简单错误/事情.
我想要做的很简单,我只是想将线性趋势(1-d多项式)拟合到一堆时间序列中,以查看斜率是正还是负.现在我只想让它在一个时间序列中运行.
问题:看起来大熊猫和numpy都不能对日期时间做回归.我的日期时间不规律(通常每月1天但不是同一天),所以不能使用时间序列熊猫的线性回归中提出的建议
我的时间序列csv看起来像:
StationName, year, month, day, depth, NO3-N, PO4-P, TotP, TotN,
Kvarnbacken (Savaran), 2003, 2, 25, 0.5, 46, 9, 14, 451
Kvarnbacken (Savaran), 2003, 3, 18, 0.5, 64, 15, 17, 310
Kvarnbacken (Savaran), 2003, 3, 31, 0.5, 76, 7, 19, 566
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是什么
import datetime as dt
from scipy import stats
import numpy as np
# read in station csv file
data = pd.read_csv('Kvarnbacken (Savaran)_2003.csv')
data.head()
# set up dates to something python can recognize
data['date'] = …Run Code Online (Sandbox Code Playgroud)