如何在python中仅对一些模型变量执行部分F测试

2024-09-27 07:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python构建一个包含65个变量的回归模型。 然后,我只想在python中的2个选定变量上执行部分F测试

在部分F检验中,H0是两个变量的两个β(模型中选定变量的系数)等于0的假设。 H1将是至少一个β不等于0的假设

我到处找,找不到我问题的答案。 我很高兴能得到你的帮助


Tags: 答案模型h1系数h0
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:02

有关更多详细信息,您可以查看help page for f test on statsmodels results

例如,您的数据如下(我仅使用5个变量):

import numpy as np
import pandas as pd
import statsmodels.api as sm

np.random.seed(999)

data = pd.DataFrame(np.random.uniform(0,1,(50,6)),
                   columns=['x1','x2','x3','x4','x5','y'])

我们可以拟合回归,结果如下所示:

results = sm.OLS(endog= data['y'],exog=sm.add_constant(data.iloc[:,:5])).fit()
results.summary()

    coef    std err t   P>|t|   [0.025  0.975]
const   0.7432  0.201   3.700   0.001   0.338   1.148
x1  -0.0345 0.147   -0.235  0.816   -0.331  0.262
x2  -0.1758 0.151   -1.165  0.250   -0.480  0.128
x3  -0.1472 0.150   -0.982  0.331   -0.449  0.155
x4  -0.2735 0.144   -1.905  0.063   -0.563  0.016
x5  0.1143  0.135   0.845   0.403   -0.158  0.387

设置假设,在这种情况下x3和x4为零,然后执行测试:

hypotheses = '(x3 = 0), (x4 = 0)'
f_test = results.f_test(hypotheses)
print(f_test)

<F test: F=array([[2.64119819]]), p=0.08255414803527926, df_denom=44, df_num=2>

相关问题 更多 >

    热门问题