作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获得 LASSO 回归的置信区间。为此,我使用了 selective inference R 中的包。
此包中的 fixedLassoInf
函数为给定的 lambda 值提供套索回归的置信区间。此外,我们可以将从 glmnet
包中获得的系数向量传递给此函数。
使用 glmnet
包的给定 lambda 的 LASSO 逻辑回归系数如下:
require(ISLR)
require(glmnet)
require(selectiveInference)
y1 <- Default$default
x1 <- model.matrix(default ~ student + balance + income + student*income, Default)[, -1]
lasso.mod1 <- glmnet(x1,y1, alpha = 1, lambda = 0.0003274549,family='binomial')
lasso.mod$beta
> lasso.mod1$beta
4 x 1 sparse Matrix of class "dgCMatrix"
s0
studentYes -6.131640e-01
balance 5.635401e-03
income 2.429232e-06
studentYes:income .
然后我使用 R 中 selective inference
包中的 fixedLassoInf
函数来获取置信区间:
y1 <- Default$default
beta = coef(lasso.mod1, x=x1, y=y1, s=lambda/1000, exact=T)
y1= ifelse(y1=="NO",0,1)
out = fixedLassoInf(x1,(y1),beta,lambda,family="binomial",alpha=0.05)
out
但是,我收到以下警告消息:
**
Warning messages:
1: In fixedLogitLassoInf(x, y, beta, lambda, alpha = alpha, type = "partial", :
Solution beta does not satisfy the KKT conditions (to within specified tolerances)
2: In fixedLogitLassoInf(x, y, beta, lambda, alpha = alpha, type = "partial", :
Solution beta does not satisfy the KKT conditions (to within specified tolerances). You might try rerunning glmnet with a lower setting of the 'thresh' parameter, for a more accurate convergence.
3: glm.fit: algorithm did not converge
**
此外,我得到的输出不正确,
Call:
fixedLassoInf(x = x1, y = (y1), beta = beta, lambda = lambda,
family = "binomial", alpha = 0.05)
Testing results at lambda = 0.000, with alpha = 0.050
Var Coef Z-score P-value LowConfPt UpConfPt LowTailArea UpTailArea
1 1142.801 1884.776 1 -Inf -60.633 0 0
2 0.386 1664.734 0 0.023 Inf 0 0
3 0.029 3318.110 0 0.001 Inf 0 0
4 -0.029 -1029.985 1 -Inf -0.003 0 0
Note: coefficients shown are partial regression coefficients
根据警告消息,Karush Kuhn Tucker (KKT) 条件存在问题。
谁能帮我解决这个问题?
谢谢。
最佳答案
我的一位大学老师总是说
Fitting is an art, not a technique.
我的意思是:您需要手动进行参数猜测和多次拟合迭代。您甚至可能质疑拟合方法本身,但我们不要走那条路。
无论如何,R 不会神奇地为您找到正确的模型(现在:LASSO 的参数数量)。从您显示的输出来看,您似乎有 4 个变量,其中 3 个接近于零,因此我建议从...开始
dfmax=2
似乎是一个好的开始pmax=2
documentation of glment有关其他选项的更多详细信息。
关于r - 关于在 R 中使用选择性推理包的 LASSO 置信区间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57854980/
我是一名优秀的程序员,十分优秀!