Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用插入符号的岭型Logistic回归系数的标准误差_R_Logistic Regression_R Caret_Glmnet - Fatal编程技术网

R 使用插入符号的岭型Logistic回归系数的标准误差

R 使用插入符号的岭型Logistic回归系数的标准误差,r,logistic-regression,r-caret,glmnet,R,Logistic Regression,R Caret,Glmnet,我使用R中的caret包来执行岭逻辑回归。 现在我可以找到每个变量的系数 问题是:如何知道使用岭型逻辑回归产生的每个变量的系数标准误差 以下是我的示例代码:- Ridge1 <- train(Group ~., data = train, method = 'glmnet', trControl = trainControl("cv", number = 10), tuneGrid = expand.grid(

我使用R中的
caret
包来执行岭逻辑回归。 现在我可以找到每个变量的系数

问题是:如何知道使用岭型逻辑回归产生的每个变量的系数标准误差

以下是我的示例代码:-

Ridge1 <- train(Group ~., data = train, method = 'glmnet',
               trControl = trainControl("cv", number = 10),
               tuneGrid = expand.grid(alpha = 0, 
                                      lambda = lambda),
               family="binomial")

如何获得逻辑回归模型中的结果(即:标准误差、wald统计量、p值……等等?

你不能从岭回归或glmnet回归中获得p值和置信区间,因为当存在惩罚项时,很难估计估计量的分布。第一部分涉及到这一点,你可以查看帖子,如和

我们可以尝试以下方法,例如从插入符号中获取最佳λ,并在另一个软件包
hmi
中使用该值来估计置信区间和p值,但我会谨慎地解释这些值,它们与自定义逻辑glm非常不同

library(caret)
library(mlbench)
data(PimaIndiansDiabetes)

X = as.matrix(PimaIndiansDiabetes[,-ncol(PimaIndiansDiabetes)])
y = as.numeric(PimaIndiansDiabetes$diabetes)-1

lambda = 10^seq(-5,4,length.out=25)

Ridge1 <- train(x=X,y=factor(y), method = 'glmnet',family="binomial",
               trControl = trainControl("cv", number = 10),
               tuneGrid = expand.grid(alpha = 0, 
                                      lambda = lambda))

bestLambda = Ridge1$bestTune$lambda

@彼得,谢谢你
library(caret)
library(mlbench)
data(PimaIndiansDiabetes)

X = as.matrix(PimaIndiansDiabetes[,-ncol(PimaIndiansDiabetes)])
y = as.numeric(PimaIndiansDiabetes$diabetes)-1

lambda = 10^seq(-5,4,length.out=25)

Ridge1 <- train(x=X,y=factor(y), method = 'glmnet',family="binomial",
               trControl = trainControl("cv", number = 10),
               tuneGrid = expand.grid(alpha = 0, 
                                      lambda = lambda))

bestLambda = Ridge1$bestTune$lambda
library(hdi)
fit = ridge.proj(X,y,family="binomial",lambda=bestLambda)

cbind(fit$bhat,fit$se,fit$pval)

                  [,1]         [,2]         [,3]
pregnant  0.1137868935 0.0314432291 2.959673e-04
glucose   0.0329008177 0.0035806920 3.987411e-20
pressure -0.0122503030 0.0051224313 1.677961e-02
triceps   0.0009404808 0.0067935741 8.898952e-01
insulin  -0.0012293122 0.0008902878 1.673395e-01
mass      0.0787408742 0.0145166392 5.822097e-08
pedigree  0.9120151630 0.2927090989 1.834633e-03
age       0.0116844697 0.0092017927 2.041546e-01