이분법 변수 (a vs b)에 대한 ROC 곡선을 계산 한 후. 이 변수를 구별하기 위해 최적의 한계 값을 계산하고 싶습니다. Youden 지수는 차별화를위한 민감도와 특이성을 최적화하는 값입니다.OptimalCutoff Youden 인덱스 계산
분명히 패키지 "OptimalCutpoints"가이를 수행 할 수 있어야합니다. 그러나, 나는이 이상한 오류가 발생합니다. 아래에 코드가 삽입되었습니다.
library(pROC)
library(OptimalCutpoints)
df <- structure(list(value = c(1945.523629, 2095.549323, 2066.585153,
2445.878083, 2112.252632, 2115.92955, 2000.285032, 2224.611905,
1616.534694, 1668.017699, 1475.980978, 1940.849817, 1716.666667,
2153.284314, 2063.353635, 2163.070313, 1856.319149, 1499.986928,
2240.440449, 1869.083916, 1807.196078, 2025.603604, 1638.22973,
1781.602941, 2014.013809, 1906.027356, 2033.148718, 1923.403162,
1687.107744, 2632.280305, 1774.073084, 2196.162393, 2164.108659,
2055.031216, 2229.501425, 1273.872576, 2224.126126, 2006.858974,
1956.601942, 1808.214521, 1535.387136, 1382.15, 1596.69693, 1779.477273,
1577.174699, 1908.321526, 1833.124454, 1679.492978, 1777.31114,
1988.249023, 1736.75, 1985.68521, 1821.025974, 1745.325862, 1805.640777,
2326.821229, 1858.558824, 2025.622727, 2197.781321, 1475.685446,
2000.906423, 1714.749573, 1436.529412, 1981.15572, 1939.612779,
2007.679335, 2029.189536, 1644.298246, 1824.697342, 2281.990385,
2131.331776, 1143.722714, 1784.578076, 2143.131579, 982.4908457,
2217.021592, 1799.512346, 526.7047753, 1613.25, 951.9103079,
1006.241888, 1146.276835, 1651.474138, 1568.484778, 1938.867704,
792.5410822, 1602.037383, 1244.281863, 957.5739437, 819.6116071,
879.2128326, 1189.638632, 775.5525292, 1148.193333, 1130.812183,
902.34, 994.3302961), type = c("a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a",
"a", "a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "b", "b",
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b"
)), .Names = c("value", "type"), row.names = c(NA, -97L), class = "data.frame")
rocobj <- plot.roc(df$type, df$value, percent = TRUE, main="ROC", col="#1c61b6", add=FALSE)
optimal.cutpoint.Youden <- optimal.cutpoints(X = "value", status = "type", tag.healthy = 0, methods = "Youden",
data = df, pop.prev = NULL,
control = control.cutpoints(), ci.fit = FALSE, conf.level = 0.95, trace = FALSE)
summary(optimal.cutpoint.Youden)
plot(optimal.cutpoint.Youden)
오류 : 데이터 집합에 정상적인 과목이 없습니다. 데이터 및 개의 변수를 검토하십시오. 보급률은 0보다 높고 1보다 낮은 값이어야합니다.
나는 여기에서 매우 분명한 것을 놓치고 있습니다. 패키지 도움말 파일을 기반으로 코드를 수정하려고했지만 오류를 제거 할 수 없습니다.
내 R "기술"에 대한 아주 많이 내 사과를 감사PS : 그것은 당신의 감도 등 당신의 특이성에 비해 얼마나 중요한지에 의존하기 때문에 나는 "최적의 컷오프를"정의의 한계를 이해 나는 단지 우리가이 기술을 사용하여 얻게 될 가치에 대한 아이디어를 갖고 싶습니다.
여기 [최적의 임계 값] (http://stats.stackexchange.com/questions/25389/obtaining-predicted-values-y-1-or-)에서 설명한 절차로 임계 값을 수동으로 계산하여이 패키지의 출력을 확인할 수 있습니다. 0-of-a-logistic-regression-model-fit) – OdeToMyFiddle