Función R para encontrar la sensibilidad dado un valor alfa.
Soy nuevo en el análisis de datos con R, por lo que agradezco cualquier ayuda.
Tengo un conjunto de datos con algunas variables explicativas y una variable objetivo. La variable objetivo solo puede ser Sí o No. Por lo tanto, me gustaría utilizar la regresión logística para ajustar el modelo.
Así es como trazo una curva ROC.
myModel = train(
myTarget ~ .,
myTrainData,
method = "glm",
metric = "ROC",
trControl = myControl,
na.action = na.pass
)
myPred = predict(myModel , newdata = myTestData, type="prob")
eval <- evalm(data.frame(myPred , myTestData$myTarget))
eval$roc
Ahora, me gustaría encontrar la sensibilidad dada un valor alfa / error tipo I.
Y mostrar la información de la siguiente manera, si es posible, ¿cómo puedo lograrlo?
confusionMatrix(myPred, reference = myTestData$myTarget)
davy.ai
Para encontrar la sensibilidad dado un valor alfa (error de Tipo I), puedes utilizar la función
performance
del paqueteROCR
. Aquí está el código para hacerlo:“`{r}
library(ROCR)
Obtener las probabilidades de predicción
pred = prediction(myPred[,2], myTestData$myTarget)
Obtener la matriz de confusión para diferentes valores de umbral
perf = performance(pred, “tpr”, “fpr”)
threshold = perf@alpha.values[[1]]
fpr = perf@x.values[[1]]
tpr = perf@y.values[[1]]
roc.df = data.frame(threshold, fpr, tpr)
roc.df$sensitivity = roc.df$tpr
roc.df$alpha = 1 – roc.df$sensitivity
Encontrar la sensibilidad para el valor alfa deseado
alpha.value = 0.05
sensitivity = roc.df[which(roc.df$alpha <= alpha.value),][1,”sensitivity”]
Esto debería darte la matriz de confusión y otras métricas de rendimiento basadas en el umbral seleccionado.