Полином регрессии, как показано это обычный ванильный обычный минимум квадрат регрессии, где одна из переменных имеет показатель. Единственное, что вы получаете от использования smf.ols (я думаю) - это возможность использовать формулы R-esque. Как и формула I(B**2.0)
. Но, к счастью, та же логика может быть построена без smf, а затем можно использовать Pandas ols.
Давайте установим некоторые примеры данных (всегда хороший первый шаг, когда задают вопросы, КСТАТИ):
n=500
df = pd.DataFrame(randn(n), index=pd.date_range('1/1/2000', periods=n))
df.columns = ['A']
df['B'] = randn(n)
df['Y'] = 5 + 3 * df.A + 6 * df.B **2 + randn(n)
Таким образом, в этом примере данные Y является функцией A и B^2. Таким образом, мы можем сделать оконном МНК, без полинома:
pd.ols(y=df['Y'],x=df[['A','B']],window_type='rolling',window=100)
-------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <A> + <B> + <intercept>
Number of Observations: 100
Number of Degrees of Freedom: 3
R-squared: 0.1184
Adj R-squared: 0.1003
Rmse: 9.6488
F-stat (2, 97): 6.5159, p-value: 0.0022
Degrees of Freedom: model 2, resid 97
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
A 3.8514 1.0675 3.61 0.0005 1.7592 5.9436
B 0.0693 0.9073 0.08 0.9393 -1.7091 1.8476
intercept 11.8889 0.9655 12.31 0.0000 9.9965 13.7813
---------------------------------End of Summary---------------------------------
Но если вы хотите, чтобы многочлен, вы просто создать переменную, которая является полиномом:
df['B2'] = df.B **2
, а затем вы можете запустить МНК с использованием B2:
pd.ols(y=df['Y'],x=df[['A','B2']],window_type='rolling',window=100)
-------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <A> + <B2> + <intercept>
Number of Observations: 100
Number of Degrees of Freedom: 3
R-squared: 0.9869
Adj R-squared: 0.9867
Rmse: 1.1748
F-stat (2, 97): 3662.8849, p-value: 0.0000
Degrees of Freedom: model 2, resid 97
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
A 2.8258 0.1304 21.67 0.0000 2.5702 3.0814
B2 6.0091 0.0748 80.29 0.0000 5.8624 6.1558
intercept 5.1074 0.1448 35.28 0.0000 4.8237 5.3911
---------------------------------End of Summary---------------------------------