statsmodels RollingOLS:仅使用 numpy 数组,RollingOLS 似乎忽略了 x 轴变量

问题描述 投票:0回答:0

我确定我一定做错了什么,但我走了。 我正在尝试根据已知结果测试 StatsModels 中的 RollingOLS 函数,但我得到的结果出乎意料。

我已经为函数 sin(t) 生成了 [0,2pi] 范围内的一些数据。 我预计,如果我采用此数据的滚动最小二乘法,我应该得到近似 cos(t) 的数据,因为 d/dt( sin(t) ) = cos(t)。

我想使用 numpy 数组而不是 Pandas 数据框,因为我不想需要 Pandas(即使它很棒)。

当我从 RollingOLS 得到结果斜率时,该函数根本不近似 cos(t) 并且在生成 x 轴时似乎忽略了 t 变量。

代码:

import math
import numpy as np
from statsmodels.regression.rolling import RollingOLS

t = np.array(range(0,1001))/(1000)*2*math.pi
Y = np.sin(t)

window = 2

model = RollingOLS(Y,t,window=window)
results = model.fit()
results.plot_recursive_coefficient()

我得到的结果很容易看出不是cos(t): Plot from my code --> 不像cos(t)

看图中的 x 轴,它似乎使用了 t 的索引(介于 0 和 1000 之间),而不是 t 值本身(介于 0 和 2pi 之间)。

请帮我弄清楚我做错了什么! TIA.

python regression statsmodels
© www.soinside.com 2019 - 2024. All rights reserved.