Я в настоящее время работаю логистическую регрессию, которая требует использования «whights» аргумент в функции glm
следующим образом:Выполнение кривого ROC для логистической регрессии, которая использует «вес» аргумент в GLM АиРа
model <-glm(cr ~kw_url+row_number+domn*plform+score100,family=binomial,weights=weights,data=glm_data)
head(glm_data[cr>0 & cr <1])
kw_url plform row_number domn score cr weights score100
1: other Desktop 0 *** 0.25 0.007407407 135 25
2: other Desktop 0 d*** 0.24 0.011494253 87 24
3: other Mobile 0 *** 0.14 0.001414427 707 14
4: other Mobile 1 *** 0.43 0.013888889 144 43
5: other Mobile 2 *** 0.38 0.027027027 37 38
6: other Mobile 1 *** 0.48 0.014285714 70 48
head(glm_data[cr>0 & cr <1,.(cr)]) #Dependant variable is a fraction!, not 0 or 1
cr
1: 0.007407407
2: 0.011494253
3: 0.001414427
4: 0.013888889
5: 0.027027027
6: 0.014285714
Обычно я использую библиотеки pROC
или ROCR
для выполнения кривых ROC
, хотя они требуют, чтобы зависимая переменная регрессии была либо 0, либо 1, но не равна доле.
В связи с этим вопросом, я получаю следующее сообщение об ошибке:
library(ROCR)
> p <- predict(bayes_model, newdata=glm_data, type="response")
> pr <- prediction(p, glm_data$cr)
Error in prediction(p, glm_data$cr) :
Number of classes is not equal to 2.
ROCR currently supports only evaluation of binary classification tasks
Так что мой вопрос: есть ли какой-R пакет, что там производит кривую ROC, а также поддерживает функцию R в glm
с весовыми данными?
Кривая ROC используется для оценки того, насколько хорошо вы моделируете класс по сравнению с другим (или несколько других, которые вы рассматриваете как один класс). В этом случае вам нужна еще одна метрика/график для оценки производительности, поскольку вы не предсказываете классы. в этом случае веса не имеют значения. – toni057
glm с весами и family = binomial - модель логистической регрессии с 2 классами 1 или 0, агрегация - это всего лишь эффективный формат в группе по стилю, это не модель для продолжающихся данных. –
Я вижу. в этом случае вы можете развернуть данные, например. для 0.007407407 добавьте 135 нулей и один 1, чтобы получить данные для работы, например. ROC-пакет. – toni057