【发布时间】:2016-06-22 02:59:20
【问题描述】:
我想运行logreg 回归。在 R 上运行我的代码后,我收到以下错误:
出了点问题;缺少所有准确度指标值:
Accuracy Kappa
Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA
Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA
NA's :9 NA's :9
Error in train.default(x, y, weights = w, ...) : Stopping
In addition: There were 19 warnings (use warnings() to see them)
这是我的代码:
## Data
donner <- read.delim("http://web.as.uky.edu/statistics/users/pbreheny/760/data/donner.txt")
set.seed(1234)
library(caret)
donner$Age <- as.numeric(donner$Age)
donner$Status <- as.factor(donner$Status)
donner$Sex <- as.numeric(donner$Sex)
splitIndex <- createDataPartition(donner$Status, p = .80, list = FALSE, times = 1)
trainDF <- donner[splitIndex,]
testDF <- donner[-splitIndex,]
ctrl <- trainControl(method = "cv", number = 2)
logregmodel <- train(Status ~ ., data = donner, method = "logreg", trControl = ctrl)
编辑 1:
我将状态更改为二进制(0 和 1),但仍有一些错误。这是新代码:
## Data
donner <- read.delim("http://web.as.uky.edu/statistics/users/pbreheny/760/data/donner.txt")
set.seed(1234)
library(caret)
donner$Age <- as.numeric(donner$Age)
donner$Status <- as.integer(donner$Status)-1
donner$Sex <- as.numeric(donner$Sex)-1
splitIndex <- createDataPartition(donner$Status, p = .80, list = FALSE, times = 1)
trainDF <- donner[splitIndex,]
testDF <- donner[-splitIndex,]
ctrl <- trainControl(method = "cv", number = 2)
donner$Status <- as.factor(donner$Status)
logregmodel <- train(Status ~ ., data = donner, method = "logreg", trControl = ctrl)
【问题讨论】:
-
你确定你拟合的模型对吗?如果您检查错误,它还会显示预测变量中的非二进制参数github.com/topepo/caret/blob/master/RegressionTests/Code/…
-
我想拟合一个逻辑回归模型。输出只能取两个值。
-
您对输出是正确的。但是仔细看@Hack-R的代码,预测器
Age变成了二进制。我在您的编辑中没有看到这一点。 -
问题是如果我不将年龄保持为数字,我会丢失一些信息。通常,我应该能够使用连续变量进行逻辑回归。我该怎么做?
-
哦,好吧,你真的不想要一个
logreg(逻辑回归)你只是想要一个logit模型。