岭回归,在R中计算没有lm或glmnet的beta

时间:2018-02-17 19:29:34

标签: r regression glmnet

我试图从头开始计算岭回归的beta值。但是当我使用glmnet函数比较结果时,它们是不同的。这是我的代码:

library(MASS)
Boston=na.omit(Boston)
x=model.matrix(age~.,Boston)[,-1]
y=as.matrix(Boston$age)
lmodel=lm(y~x, data=Boston)

#ridge with glmnet
library(glmnet)
ridge=glmnet(x,y, alpha=0, lambda = 0.1)
beta_ridge=coef(ridge)


#ridge scratch 
x=scale(x)
y=scale(y)
beta_r=solve(t(x)%*%x + 0.1*diag(dim(x)[2]))%*%t(x)%*%y

我标准化了x和y,但与glmnet函数的beta版相比,我仍然得到不同的beta。

0 个答案:

没有答案