爱不需要表达 请假大家一个问题: 一般来说岭回归中的“biasing constant”的取值介于0和1之间吧?作出的岭迹图我看横坐标也多为0-1区间。但是通过R中lm.ridge和plot命令,我却发现这个偏移系数要到600左右才能使岭迹趋于稳定。。。我感觉肯定是哪里出错了。。 查阅了文献,知道了设计阵要中心化和标准化后才能继续分析,我是这么做了,可是用R的相关命令却得不到合理的解。。。请问大家有没有专门介绍岭回归的而且涉及R的文献资料呢? 万分感激!!
爱不需要表达 [quote]引用第1楼snoopyzhao于2009-03-22 17:46发表的“”: 到 MASS 中找找看看[/quote] 我用了MASS包,里面有lm.ridge,可是结果却不合理。。。
sociology [quote]引用第2楼爱不需要表达于2009-03-22 21:29发表的“”: 我用了MASS包,里面有lm.ridge,可是结果却不合理。。。[/quote] MASS is the name of the package as well as the name of the book.
爱不需要表达 [quote]引用第3楼sociology于2009-03-22 21:50发表的“”: MASS is the name of the package as well as the name of the book.[/quote] Excuse me, but what is the name of the book? Is MASS its abbreviation? or the pdf file attached with the MASS package? Thanks!
爱不需要表达 [quote]引用第6楼snoopyzhao于2009-03-23 10:24发表的“”: Modern Applied Statistics With S 本版就有下载,呵呵……[/quote] 谢谢!
微微 我用excel手算比较过结果,R里的算法很诡异,也不知道它的lambda是什么。 如果在算法内将数据标准化,常数项就不需要了,但lm.ridge默认就有常数项,lambda=0时,其结果就与lm的输出相等,可见lm.ridge并没有标准化。 但即使没经过标准化,也与我手算的结果不一样。 不知道说清楚没,总之就是诡异。有人知道怎么用吗?
微微 http://www.stat.nus.edu.sg/~staxyc/DMchapter0c.pdf 这篇资料里ridge regression的R code跟我自己写的一样,也跟我用excel计算出来的结果一致,但是和MASS包里的lm.ridge不一样。。。。。。
微微 看过代码,核心的岭回归算法都没问题,但lm.ridge前面一堆数据预处理的代码看不懂。 lm.ridge先用一堆函数把原始数据,不含常数项的,用非常规的方法标准化: Y(标准化)=Y-mean(Y),X(标准化)=X/(mean((X-mean(X))^2))^0.5。 变换后的数据用正常的岭回归计算系数,这里面还是不包含常数项的。 最后用了个class(res) <- "ridgelm",就把先前的计算结果转化为最终输出,是把标准化后的回归系数数据再还原的过程: beta_x(还原回归系数)=beta_x(标准化回归系数)/(mean((X-mean(X))^2))^0.5 beta_c(还原常数项)=-(sum(mean(x)*beta_x(还原回归系数))+mean(Y)) 这步导致结果的差异很大,并且添加了常数项。
nan.xiao LS竟然从代码把算法还原了 。。。那还是从lm.ridge()的参考文献里寻找线索吧 。。。 Brown, P. J. (1994) Measurement, Regression and Calibration. Oxford. 正如 http://stats.stackexchange.com/questions/6734/difference-between-ridge-regression-implementation-in-r-and-sas 表达了类似的观点 。。。