
回归与预测
|
143
上与
R
很相似,可以使用一个公式接口来定义模型:
model = smf.ols(formula='AdjSalePrice ~ SqFtTotLiving*ZipGroup + SqFtLot + ' +
'Bathrooms + Bedrooms + BldgGrade + PropertyType', data=house)
results = model.fit()
results.summary()
statsmodels
包可以处理分类变量(如
ZipGroup[T.1]
、
PropertyType[T.Single Family]
)
和交互项(如
SqFtTotLiving:ZipGroup[T.1]
)。
房屋位置与房屋面积似乎有很强的交互作用。对于
ZipGroup
最低的房屋,它的斜率
与主效应
SqFtTotLiving
的斜率相同,都是每平方英尺
118
美元(这是因为
R
为因
子变量使用了参照编码,参见
4.4
节
)。对于
ZipGroup
最高的房屋,斜率是主效应与
SqFtTotLiving:ZipGroup5
之和,即每平方英尺
$115 + $227
=
$342
。换言之,与增加一平
方英尺的平均提升效果相比,在价格最高的邮政编码分组中增加一平方英尺,对预测销售
价格的提升几乎是前者的三倍。
带交互项的模型选择
在涉及多个变量的问题中,要确定在模型中包含哪种交互项是非常困难的。
通常有以下几种做法。
•
在有些问题中,先验知识和直觉可以作为指导,来确定选择哪种交互项放
在模型中。
•
可以使用逐步选择方法(参见 ...