Lasso回归模型是常用线性回归的模型,当模型维度较高时Lasso算法通过求解稀疏解对模型进行回归分析中解释变量和被解释变量选择。Lars算法则提供了一种快速求解该模型的方法Lars算法的基本原理有许多其他文章可以参考,这里不过多赘述, 这里主要简介如何在R中利用lars算法包求解线性回归问题以及参数的选择方法
以下的的一些用法参照lars包的帮助文件,再加上自己的使用心得所用的示例数据diabetes是Efron在其论文中“Least Angle Regression”中用到的,可以在加载lars包后直接获得
在我们的输入中关键是lm.sol<-lm(y ~ 1+x)的调用,这里可以看到lm使用了参数y~1+x,即表示我们使用的是模型y=c+bx+e (1表示常数项)
然后我们使用summary查看了lm返回的结果。在Residuals:中我们可以看到的是一些关于残差的信息:最小最大值,4分位数等Coefficients:中则是最为关键的对c和b的相关估计。其中Estimate是与b,c值的估计Std. Error 则是回归参数b和c的标准差:sd(b), sd(c)。剩下的两个参數则是对回归参数的假设检验: t value是对b,c进行假设检验的t值以及P-值(用来与显著性水平比较决定是否接受该阿假设检验)Pr(>|t|)。最后我们还可以看到3個* 号这表明x和y有非常显著的线性关系(*可以有0—3个,越多则线性关系越显著)
多元线形回归的计算也是这样,我们只要在加入一行数据x2嘫后把lm的参数改为y ~ 1+x+x2,就可以得到模型y=d+cx2+bx+e的计算结果其中返回值的意义和上面基本一致。
至此我们就可以用R建立起一个简单的线形模型,接下来我们就要用这个模型去对新的x进行预测,预测y的值与置信区间
接着上面的程序,我们先建立要预测的数据集:
然后用函数predict进行預测
分别表示了y的预测值和上下界
在函数predict中,参数lm.sol是之前建立的线形模型point是要预测的点,参数interval="prediction"表示要求给出预测的区间(上下界)level则是該区间的预测水平。
下面给出一个多元线形回归的完整程序:(不显示结果)
积分 100, 距离下一级还需 45 积分 购买后可立即获得 权限: 隐身 道具: 金钱卡, 变色卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板 |
|
||
|
|
|
|
|
|