Матрица неточностей для полиномиальной логистической регрессии и упорядоченного логита

Я хотел бы создать матрицы путаницы для полиномиальной логистической регрессии, а также модели пропорциональных шансов, но я застрял на реализации в R. Моя попытка ниже, похоже, не дает желаемого результата.

Это мой код на данный момент:

CH <- read.table("http://data.princeton.edu/wws509/datasets/copen.dat", header=TRUE)
CH$housing <- factor(CH$housing)
CH$influence <- factor(CH$influence)
CH$satisfaction <- factor(CH$satisfaction)
CH$contact <- factor(CH$contact)
CH$satisfaction <- factor(CH$satisfaction,levels=c("low","medium","high"))
CH$housing <- factor(CH$housing,levels=c("tower","apartments","atrium","terraced"))
CH$influence <- factor(CH$influence,levels=c("low","medium","high"))
CH$contact <- relevel(CH$contact,ref=2)
model <- multinom(satisfaction ~ housing + influence + contact, weights=n, data=CH)
summary(model)
preds <- predict(model)
table(preds,CH$satisfaction)

omodel <- polr(satisfaction ~ housing + influence + contact, weights=n, data=CH, Hess=TRUE)
preds2 <- predict(omodel)
table(preds2,CH$satisfaction)

Я был бы очень признателен за советы о том, как правильно создавать матрицы путаницы для моих двух моделей!


person Joe    schedule 30.01.2018    source источник
comment
table(preds,CH$satisfaction) дает вам матрицу путаницы. Если вам нужна дополнительная статистика для ваших прогнозов, вы можете использовать функцию confusionMatrix из пакета caret.   -  person AntoniosK    schedule 30.01.2018
comment
Я считаю, что таблица (предварительные оценки, удовлетворение в CH $), к сожалению, не принимает во внимание веса. Таким образом, общее количество - это просто количество строк, а не общее количество наблюдений. Есть ли способ добавить веса?   -  person Joe    schedule 30.01.2018
comment
Тогда, возможно, вместо столбца весов вы можете изменить свой набор данных, чтобы количество строк было n. В этом случае каждая строка представляет собой наблюдение, а не набор наблюдений. Вы можете создать этот измененный набор данных следующим образом: CH %>% rowwise() %>% mutate(id = list(seq(1:n))) %>% unnest(id) %>% select(-n) и построить модель, используя его.   -  person AntoniosK    schedule 30.01.2018


Ответы (1)


Вы можете сослаться на - Predict () - Может, я этого не понимаю

Здесь в прогнозе () вам нужно передать невидимые данные для прогнозирования.

person mehakVT    schedule 30.01.2018