当在
GAM
中拟合线性 python
模型时,施加 n_splines=5,拟合一个分段线性函数:
import statsmodels.api as sm
from pygam import LinearGAM
data = sm.datasets.get_rdataset('mtcars').data
Y = data['mpg']
X = data.drop("mpg",axis=1)
model = LinearGAM(spline_order=1,n_splines=5).fit(X, Y)
通过使用拟合模型中的
.coef
,可以恢复每个样条的系数以供进一步分析:
model.coef_
但是,我们如何才能获得每个变量的 5 个样条曲线的截面呢?
目前我正在尝试用
pygam
解决它,但如果有statsmodels
的答案,它也对我有用。
例如,对于
cyl
变量,我们将拟合以下样条:
5 个部分由节点确定,因此我们将看到计算的 beta 的变量限制。 (即:4-5,5-6,6-7,7-8)