我是一名学生,正在尝试完成一项涉及实证分析的大学作业。 我们目前正在 Python 中进行多元回归,我想知道我是否以正确的方式进行了此操作。
我想做的是一个假设检验,以检查一个变量的影响是否与另一个相同。这只是一个片段,但您可以想象我有一个数据框,我目前对其中的第 1 列和第 2 列的变量感兴趣。第 0 列是添加到模型中的常量。 我说的对吗?
import os
import numpy as np
import pandas as pd
import scipy.stats as stats
import statsmodels.api as sm
import matplotlib.pyplot as plt
import seaborn as sns
newvars3 = data[['w_a', 'gender', 'gkclasssize', 'gkclasstype', 'gktyears', 'gkabsent']]
newvars3 = sm.add_constant(newvars3)
modelnewvars3 = sm.OLS(ymath, newvars3, missing='drop')
resultnewvars3 = modelnewvars3.fit()
print(resultnewvars3.summary())
csvnewvars3 = resultnewvars3.summary().as_csv()
open(report_dir + 'summ_newvars3_math.csv', 'w').write(csvnewvars3)
##Testing the effect of gender vs race
R = np.array([0, 1, 1, 0, 0, 0, 0])
tvalue = R @ resultnewvars3.params / (R @ resultnewvars3.cov_params() @ R.T)
pvalue = 2*(1 - stats.norm.cdf(tvalue))
gen_race_hypo_test = pd.Series(np.array([tvalue, pvalue]), index=['T-value', 'P-value'])
gen_race_hypo_test.name = 'Hypothesis test for same effect: Gender vs Race'
print('\n', gen_race_hypo_test)
data['w_a'] 是种族的虚拟变量,0 代表白人/亚洲人,1 代表其他人。 回答这个问题需要统计理论/知识。
答案 0 :(得分:0)
当你做回归时,你会得到一个模型
<块引用>是 一世 =β 0 +β 1 x i1 +β 2 x i2 +...+β 磷 x ip +ϵ
在那里您可以看到 B1 和 B2 是否走向相反的方向。但我认为这不是你应该如何证明你的假设。也许做一个简单的线性回归并查看结果模型及其每个变量的属性可能是最好的方法。
我假设如果您对第 1 列和第 2 列感兴趣是因为它们是您的 x-(自变量),那么这会使您的第 0 列成为您的 y-(因变量)吗?对于模型 y~x1 和 y~x2。
您应该提供更多关于此的信息,并更清楚地说明您正在执行的步骤。该代码段仅显示了 p 值和 t 值的计算,而不是您引用的列。