gpt4 book ai didi

r - 关于在 R 中使用选择性推理包的 LASSO 置信区间的问题

转载 作者:行者123 更新时间:2023-12-05 08:07:03 26 4
gpt4 key购买 nike

我想获得 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 个接近于零,因此我建议从...开始

  1. 限制模型中变量的最大数量,即 dfmax=2 似乎是一个好的开始
  2. 将变量的最大数量限制为非零,例如pmax=2

documentation of glment有关其他选项的更多详细信息。

关于r - 关于在 R 中使用选择性推理包的 LASSO 置信区间的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57854980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com