
156
|
第
4
章
formula = 'AdjSalePrice ~ bs(SqFtTotLiving, df=6, degree=3) + ' +
'SqFtLot + Bathrooms + Bedrooms + BldgGrade'
model_spline = smf.ols(formula=formula, data=house_98105)
result_spline = model_spline.fit()
线性项的系数有直接的意义,而样条项的系数是不可解释的。可视化方式更适合揭示样条
拟合的本质。图
4-12
给
出了上面回归的偏残差图。与多项式模型不同的是,样条模型与
平滑曲线匹配得更加紧密,这说明样条回归具有更大的灵活性。在这个例子中,样条回归
曲线对数据的拟合更紧密。这意味着样条回归是更好的模型吗?并不一定。从样条曲线来
看,面积非常小的房屋(小于
1000
平方英尺)要比稍大一些的房屋的价值更高
,这显然
不符合经济学规律。这可能是某个混淆变量导致的,参见
4.5.3
节。
图 4-12:变量
SqFtTotLiving
的样条回归拟合曲线(实线)与平滑曲线(虚线)的比较
4.7.3
广义可加模型
假设你基于先验知识或者回归诊断,怀疑响应变量和某个预测变量之间存在非线性关系。
多项式项可能不够灵活,无法捕获这种关系,而样条项又需要指定节点。这时就可以使用
广义可加模型
,或称
GAM
,它是一种非常灵活的建模技术
,可以自动拟合一个样条回归。
可以使用
R
中的
mgcv
包来为房屋数据拟合一个
GAM
模型: