我正在尝试对完全指定的模型进行F检验。
我使用statsmodels OLS运行回归,并使用异方差稳健协方差拟合模型。当我想使用结果执行F检验时,会收到一条错误消息。
我需要执行几次回归和F检验,所以我做了一个循环。
test = pd.DataFrame()
model = '{0}'
results = '{0}'
x_constant = '{0}'
X = '{0}'
Y = '{0}'
column = list(test)
ftest = pd.DataFrame(index = np.array(['f_value']))
fp = pd.DataFrame(index = np.array(['f_p_value']))
for i in column:
Y = pd.DataFrame(test[i])
X = pd.DataFrame()
frames = [test[i].shift(1), test[i].shift(2), test[i].shift(3), test[i].shift(4)]
X = pd.concat(frames, axis=1)
x_constant = sm.add_constant(X)
model = sm.OLS(Y.astype(float), x_constant.astype(float), missing='drop')
results = model.fit(cov_type="HC1")
ftest[i] = np.array(results.fvalue)
fp[i] = np.array(results.f_pvalue)
如果我使用异方差稳健协方差来拟合回归模型(model.fit(cov_type="HC1"))
,则在尝试执行F检验时会收到AssertionError。
如果我未指定协方差类型(model.fit())
,则F检验有效。