Мне нужно выполнить качающуюся линейную регрессию для X периодов за раз. У меня есть следующие панд dataframe:Роллинг-линейная регрессия
value
0 4354
1 7564
2 657
3 7876
можно выполнить линейную регрессию по всей dataframe с помощью SciPy следующим образом:
from scipy import stats
slope, intercept, r_value, p_value, std_err = stats.linregress(df.index, df['value'])
А затем, чтобы получить линейной регрессии, что я делаю:
df['linreg'] = intercept + slope * df.index
Но то, что я не мог понять, как это сделать, - это скатная линейная регрессия, например, с 20-ти рядами.
Возможно, вы хотите ['roll_apply'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.rolling_apply.html#pandas.rolling_apply) – EdChum
Выберите 20 строк и вызовите linregress на них; повторите еще 20 строк. –