AIC是可以写为

# 协变量的标准化

for(j in 1:7) X[,j] = (X[,j]-mean(X[,j]))/sd(X[,j])

# 岭回归

b0=bbeta[1]
beta=bbeta[-1]
sum(-y*log(1 + exp(-(b0+X%*%beta))) -
(1-y)*log(1 + exp(b0+X%*%beta)))}
u = seq(-4,4,length=251)
v = outer(u,u,function(x,y) LogLik(c(1,x,y)))
lines(u,sqrt(1-u^2),type="l",lwd=2,col="blue")
lines(u,-sqrt(1-u^2),type="l",lwd=2,col="blue")

-sum(-y*log(1 + exp(-(b0+X%*%beta))) - (1-y)*
log(1 + exp(b0+X%*%beta)))+lambda*sum(beta^2)

R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析

01

02

03

04

beta_init = lm(y~.,)$coefficients for(i in 1:1000){ vpar[i,] = optim(par = beta_init*rnorm(8,1,2), function(x) LogLik(x,lambda), method = "BFGS", control = list(abstol=1e-9))$par}
par(mfrow=c(1,2))
plot(density(vpar[,2])

beta_init = lm(y~.,data )$coefficients logistic_opt = optim(par = beta_init*0, function(x) LogLik(x,lambda), method = "BFGS", control=list(abstol=1e-9)) 我们可以将βλ的演化可视化为λ的函数 v_lambda = c(exp(seq(-2,5,length=61))) plot(v_lambda,est_ridge[1,],col=colrs[1]) for(i in 2:7) lines(v_lambda,est_ridge[i,], 这看起来是有意义的:我们可以观察到λ增加时的收缩。 # Ridge，使用Netwon Raphson算法 我们已经看到，我们也可以使用Newton Raphson解决此问题。没有惩罚项，算法是 其中 因此 然后是代码 for(j in 1:7) X[,j] = (X[,j]-mean(X[,j]))/sd(X[,j]) for(s in 1:9){ pi = exp(X%*%beta[,s])/(1+exp(X%*%beta[,s])) B = solve(t(X)%*%Delta%*%X+2*lambda*diag(ncol(X))) %*% (t(X)%*%Delta%*%z) beta = cbind(beta,B)} beta[,8:10] [,1] [,2] [,3] XInter 0.59619654 0.59619654 0.59619654 XFRCAR 0.09217848 0.09217848 0.09217848 XINCAR 0.77165707 0.77165707 0.77165707 XINSYS 0.69678521 0.69678521 0.69678521 XPRDIA -0.29575642 -0.29575642 -0.29575642 XPAPUL -0.23921101 -0.23921101 -0.23921101 XPVENT -0.33120792 -0.33120792 -0.33120792 XREPUL -0.84308972 -0.84308972 -0.84308972 同样，似乎收敛的速度非常快。 有趣的是，通过这个算法，我们还可以得到估计量的方差 然后根据 λ函数计算 βλ的代码 for(s in 1:20){ pi = exp(X%*%beta[,s])/(1+exp(X%*%beta[,s])) diag(Delta)=(pi*(1-pi)) z = X%*%beta[,s] + solve(Delta)%*%(Y-pi) B = solve(t(X)%*%Delta%*%X+2*lambda*diag(ncol(X))) %*% (t(X)%*%Delta%*%z) beta = cbind(beta,B)} Varz = solve(Delta) Varb = solve(t(X)%*%Delta%*%X+2*lambda*diag(ncol(X))) %*% t(X)%*% Delta %*% Varz %*% Delta %*% X %*% solve(t(X)%*%Delta%*%X+2*lambda*diag(ncol(X))) 我们可以可视化 βλ的演化（作为 λ的函数） plot(v_lambda,est_ridge[1,],col=colrs[1],type="l") for(i in 2:7) lines(v_lambda,est_ridge[i,],col=colrs[i]) 并获得方差的演变 回想一下，当λ=0（在图的左边），β0=βmco（没有惩罚）。因此，当λ增加时（i）偏差增加（估计趋于0）（ii）方差减小。 # 使用glmnet Ridge回归 与往常一样，有R个函数可用于进行岭回归。让我们使用glmnet函数， α= 0 for(j in 1:7) X[,j] = (X[,j]-mean(X[,j]))/sd(X[,j]) glmnet(X, y, alpha=0) plot(glm_ridge,xvar="lambda") 作为L1标准范数, 带正交协变量的岭回归当协变量是正交的时，得到了一个有趣的例子。这可以通过协变量的主成分分析得到。 get_pca_ind(pca)$coord

glm_ridge = glmnet(pca_X, y, alpha=0)
plot(glm_ridge,xvar="lambda",col=colrs,lwd=2)

R语言惩罚logistic逻辑回归（LASSO,岭回归）高维变量选择分类心肌梗塞数据模型案例(下)：https://developer.aliyun.com/article/1493442

|
29天前
|

R语言逻辑回归logistic模型ROC曲线可视化分析2例：麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例：麻醉剂用量影响、汽车购买行为
42 2
|
29天前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
32 1
|
29天前
|

R语言层次聚类、多维缩放MDS分类RNA测序（RNA-seq）乳腺发育基因数据可视化|附数据代码2
R语言层次聚类、多维缩放MDS分类RNA测序（RNA-seq）乳腺发育基因数据可视化|附数据代码
26 1
|
29天前
|

R语言层次聚类、多维缩放MDS分类RNA测序（RNA-seq）乳腺发育基因数据可视化|附数据代码1
R语言层次聚类、多维缩放MDS分类RNA测序（RNA-seq）乳腺发育基因数据可视化|附数据代码
41 0
|
29天前
|

R语言分类回归分析考研热现象分析与考研意愿价值变现
R语言分类回归分析考研热现象分析与考研意愿价值变现
43 2
|
29天前
|

R语言逻辑回归logistic模型ROC曲线可视化分析2例：麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例：麻醉剂用量影响、汽车购买行为
33 0
|
29天前
|

R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
R语言SVM、决策树与因子分析对城市空气质量分类与影响因素可视化研究
52 1
|
29天前
|

R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
31 0
|
29天前
|

【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
38 2
|
29天前
|
Web App开发 数据可视化 数据挖掘

65 1