Julia GLM中使用矩阵输入为线性回归添加截距的方法
Julia GLM矩阵输入添加截距的方法
当你直接用矩阵x调用lm(x, y)时,GLM会将x视为完整的设计矩阵,默认不会自动添加截距项,这也是你得到无截距模型的原因。无需修改原x矩阵的情况下,有两种可行方法添加截距:
方法1:使用公式接口(推荐)
通过公式明确指定截距项,同时用命名元组传递原始的x和y,原矩阵x不会被修改:
using GLM # 用命名元组封装数据,公式中1代表截距项 lr = lm(@formula(y ~ 1 + x), (y=y, x=x))
拟合后你会得到包含截距的结果,原x矩阵保持不变。
方法2:生成带截距的临时设计矩阵
使用GLM.add_intercept()函数生成包含截距列的新矩阵,但不会修改原x:
lr = lm(add_intercept(x), y)
这个函数会返回一个在原矩阵前添加全1列的新矩阵,原x依然是初始状态。
注意事项
你的输入矩阵x两列完全共线(x1和x2数值完全相同),无论是否添加截距,都会导致模型存在多重共线性问题,表现为系数的标准误差极大、显著性极低。如果是实际数据分析,需要先处理共线性问题(比如删除其中一列)。
内容的提问来源于stack exchange,提问作者PokeLu
相关产品推荐
相关产品推荐

