回归分析的目的是描述两组变量之间的关系,一组称为因变量(dependent variable),另一组称为解释变量(explanatory variable)。
如果回归分析中只有1个因变量和1个解释变量,就属于简单回归(simple regression)。本章讨论多重回归(multiple regression),涉及多个解释变量。有多个因变量的回归分析称为多元回归(multivariate regression)。
StatsModels
对于多重回归,我们将使用StatsModels,这个Python包提供了几种回归形式和其他分析方法。Anaconda自带StatsModels包,也可以单独安装。
下面使用StatsModels运行前一章最小二乘法估计:
import statsmodels.formula.api as smf
live, firsts, others = first.MakeFrames()
formula = 'totalwgt_lb ~ agepreg'
model = smf.ols(formula, data=live)
results = model.fit()
statsmodels提供2个接口。API使用字符串标识因变量和解释变量,所用语法称为patsy。这个示例使用操作符~分隔不同的变量:左边是因变量,右边是解释变量。
smf.ols以公式字符串和DataFrame live为参数,返回表示模型的OLS对象。ols代表“普通最小二乘法”。
fit方法将模型拟合到数据,返回一个RegressionResult对象,其中包含拟合结果。
多重回归
在(实例2)中,我们看到第一胎比其他胎的新生儿体重轻,而且这种效应是统计显著的,但是并没有明显机制导致第一胎的体重轻。
使用多重回归,我们可以更加系统地探索这些关系。
live['isfirst'] = live.birthord == 1
formula = 'totalwgt_lb ~ isfirst'
results = smf.ols