正规化泊松回归
此示例显示了如何从广义线性模型中识别和删除冗余预测变量。
使用20个预测变量创建数据,并仅使用三个预测变量,以及一个常数来创建泊松响应。
rng('默认')%可再现性x = randn(100,20);mu = exp(x(:,[5 10 15]))*[。4; .2; .3] + 1);y = poissrnd(mu);
构建数据的泊松回归模型的交叉验证拉索正则化。
[b,fitinfo] = lassoglm(x,y,“泊松”,,,,'简历',10);
检查交叉验证图,以查看兰姆达
正则化参数。
Lassoplot(B,Fitinfo,“ plottype',,,,'简历');传奇('节目')%显示传奇
绿色圆圈和虚线定位兰姆达
带有最小的交叉验证误差。蓝色圆圈和虚线以最小的交叉验证误差以及一个标准偏差定位。
找到与两个识别点相对应的非零模型系数。
nimpts = find(b(:,fitinfo.indexmindeviance))
分子=7×13 5 6 10 11 15 16
min1pts = find(b(:,fitinfo.index1se))
min1pts =3×15 10 15
最小值加一个标准误差点的系数正是用于创建数据的系数。
在最小值加一个标准误差点处找到模型系数的值。
b(Min1pts,fitinfo.index1se)
ans =3×10.2903 0.0789 0.2081
如预期的那样,系数的值小于原始[0.4,0.2,0.3]
。拉索(Lasso)通过“收缩”作用,它偏向于零的预测系数。
恒定术语在fitinfo.thercept
向量。
fitinfo.intercept(fitinfo.index1se)
ANS = 1.0879
常数项接近1,这是用于生成数据的值。