我有一个数据文件,其中包含第一列中的日期和第 2 列到第 n 列中的一系列测量值。我喜欢 Pandas 理解日期,但我不知道如何做简单的最佳拟合线。使用 np.polyfit 很容易,但它不理解日期。下面是我的尝试示例。
from datetime import datetime
from StringIO import StringIO
import pandas as pd
zdata = '2013-01-01, 5.00, 100.0 \n 2013-01-02, 7.05, 98.2 \n 2013-01-03, 8.90, 128.0 \n 2013-01-04, 11.11, 127.2 \n 2013-01-05 13.08, 140.0'
unames = ['date', 'm1', 'm2']
df = pd.read_table(StringIO(zdata), sep="[ ,]*", header=None, names=unames, \
parse_dates=True, index_col=0)
Y = pd.Series(df['m1'])
model = pd.ols(y=Y, x=df, intercept=True)
In [232]: model.beta['m1']
Out[232]: 0.99999999999999822
In [233]: model.beta['intercept']
Out[233]: -7.1054273576010019e-15
我如何解释这些数字?如果我使用 1,2..5 而不是日期 np.polyfit 给出 [ 2.024, 2.958] 这是我期望的斜率和截距。
我找了一些简单的例子,但没有找到。