Тест согласия для модели logisti c - PullRequest
0 голосов
/ 30 мая 2020

Я хочу знать, что означает g и зачем использовать тест Lemeshow Goodness of Fit (GOF) в исследованиях ?? а что не так в «матрице путаницы для логистической c регрессии?» в этом сообщении:

Ошибка в confusionMatrix (cnfmat): не удалось найти функцию «confusionMatrix»

# ..Binary Logistic Regression :

install.packages("caTools")
library(caTools)
require(caTools)
sample = sample.split(diabetes$Outcome, SplitRatio=0.80)
train = subset(diabetes, sample==TRUE)
test = subset(diabetes, sample==FALSE)
nrow(diabetes) ##calculationg the total number of rows 
nrow(train) ## total number of Train data rows >> 0.80 * 768
nrow(test) ## total number of Test data rows   >> 0.20 * 768
str(train) ## Structure of train set

Logis_mod<- glm(Outcome~Pregnancies+Glucose+BloodPressure+SkinThickness+
                  Insulin+BMI+DiabetesPedigreeFunction+Age,family = binomial,data = train)
summary(Logis_mod)
#AIC .. Akaike information criteria ...
#A good model is the one that has minimum AIC among all the other models.

# Testing the Model
glm_probs <- predict(Logis_mod, newdata = test, type = "response")
summary(glm_probs)
glm_pred <- ifelse(glm_probs > 0.5, 1, 0)
summary(glm_pred)

#Avarge prediction for each of the Two outcomes ..
tapply(glm_pred,train$Outcome,mean)

# Confusion Matrix for logistic regression
install.packages("e1071")
library(e1071)
prdval <-predict(Logis_mod,type = "response")
prdbln <-ifelse(prdval > 0.5, 1, 0)
cnfmat <-table(prd=prdbln,act =train$Outcome)
confusionMatrix(cnfmat)

#Odd Ratio :
exp(cbind("OR"=coef(Logis_mod),confint(Logis_mod)))

1 Ответ

0 голосов
/ 30 мая 2020

Я не уверен, о каком «g» вы имеете в виду, но я предполагаю, что это ваша итоговая вычисленная статистика c из вашего теста Лемешоу. Если это так, то значения «g» показывают, насколько хорошо модель объясняет изменчивость данных, и могут использоваться для сравнения моделей, основанных на одном и том же наборе данных (лучшие модели будут иметь большие значения «g»).

В более общем плане любой тест согласия (GOF) в исследованиях используется для определения того, насколько хорошо ваша модель соответствует изменчивости ваших данных.

Кроме того, вы получаете сообщение об ошибке, потому что * Функция 1005 * является частью пакета caret R. Установите caret, сначала выполнив следующую строку кода в R или RStudio.

install.packages("caret")

Затем в вашем коде измените

cnfmat <-table(prd=prdbln,act =train$Outcome)
confusionMatrix(cnfmat)

на

cnfmat <-data.frame(prd=prdbln,act =train$Outcome, stringsAsFactors = FALSE)
caret::confusionMatrix(cnfmat)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...