我使用statsmodels对熊猫数据集进行线性回归,包括一个分类变量(利手习惯;3个水平)和一个连续变量(年龄)作为预测因子。我正在寻找一种简单的方法来测试利手习惯、年龄及其相互作用的影响——也就是说,超出特定虚拟变量的影响。 我做以下工作:
res = smf.ols(formula="Score ~ C(Handedness, Sum) * center(Age)", data=myData).fit()
print(res3.params)
得到以下参数:
^{pr2}$我想对我的模型中的所有影响进行f检验:用手习惯、年龄及其相互作用。 我能够使用f峎u测试方法分别执行每项测试:
HandednessEffect = np.array(([ 0, 1, 0, 0, 0, 0 ],[0, 0, 1, 0, 0, 0]))
AgeEffect = np.array(([ 0, 0, 0, 1, 0, 0 ]))
HandednessXAgeEffect = np.array(([ 0, 0, 0, 0, 1, 0 ],[0, 0, 0, 0, 0, 1]))
print("Effect Tests:")
print("Handedness\t\t", (res.f_test(HandednessEffect )))
print("Age\t\t", (res.f_test(AgeEffect)))
print("Handedness* Age\t", (res.f_test(HandednessXAgeEffect )))
然后得到:
Effect Tests:
Handedness <F test: F=array([[ 1.14330425]]), p=0.3248142242736258, df_denom=68, df_num=2>
Age <F test: F=array([[ 0.14232477]]), p=0.7071555851484095, df_denom=68, df_num=1>
Handedness * Age <F test: F=array([[ 0.03297983]]), p=0.9675735457292447, df_denom=68, df_num=2>
我还尝试使用wald_test_terms()方法组合术语,但如果我理解正确,它会根据名称组合术语,因此如果我这样做:
print(res.wald_test_terms(skip_single=True, combine_terms=['Handedness','Age',':center(Age)']))
例如,第一个术语将所有术语与其中的“利手”结合在一起:即两个范畴术语(这是我想要的),还有交互术语(我想作为一个单独的术语)。在
有没有自动的方法来计算一个模型的所有效果测试,而不需要分别指定每个测试?例如,在JMP软件中,这是回归分析的默认输出的一部分。有什么想法吗?在
目前没有回答
相关问题 更多 >
编程相关推荐