我有一组数据。我已经使用pandas将它们分别转换为虚拟变量和分类变量。现在,我想知道如何在Python中运行多元线性回归(我正在使用statsmodels)。是否有一些考虑因素或者我必须在代码中指出这些变量是虚拟/分类变量?或者,变量的转换已足够,我只需要运行回归模型model = sm.OLS(y, X).fit()
即可?
我的代码如下:
datos = pd.read_csv("datos_2.csv")
df = pd.DataFrame(datos)
print(df)
我得到了这个:
Age Gender Wage Job Classification
32 Male 450000 Professor High
28 Male 500000 Administrative High
40 Female 20000 Professor Low
47 Male 70000 Assistant Medium
50 Female 345000 Professor Medium
27 Female 156000 Assistant Low
56 Male 432000 Administrative Low
43 Female 100000 Administrative Low
然后我这样做:1表示男性,0表示女性;1表示教授,2表示管理人员,3表示助理。
df['Sex_male']=df.Gender.map({'Female':0,'Male':1})
df['Job_index']=df.Job.map({'Professor':1,'Administrative':2,'Assistant':3})
print(df)
获得这个:
Age Gender Wage Job Classification Sex_male Job_index
32 Male 450000 Professor High 1 1
28 Male 500000 Administrative High 1 2
40 Female 20000 Professor Low 0 1
47 Male 70000 Assistant Medium 1 3
50 Female 345000 Professor Medium 0 1
27 Female 156000 Assistant Low 0 3
56 Male 432000 Administrative Low 1 2
43 Female 100000 Administrative Low 0 2
现在,如果我要运行一个多元线性回归模型,例如:
y = datos['Wage']
X = datos[['Sex_mal', 'Job_index','Age']]
X = sm.add_constant(X)
model1 = sm.OLS(y, X).fit()
results1=model1.summary(alpha=0.05)
print(results1)
结果通常会显示,但这样可以吗?还是我需要以某种方式指示变量是虚拟的或分类的?请帮忙,我是Python新手,我想学习。来自南美洲-智利的问候。