如何解决如何在python中仅对某些模型变量执行部分F测试
我想在 python 中构建一个具有 65 个变量的回归模型。 然后,我只想对 python 中的 2 个选定变量执行部分 F 测试。
在偏 F 检验中,H0 将是两个变量的两个 Beta(模型中所选变量的系数)等于 0 的假设。 H1 将是 Beta 值中至少有一个不等于 0 的假设。
我到处搜索,但没有找到我的问题的答案。 我很乐意为您提供帮助。
解决方法
有关详细信息,您可以查看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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。