-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathROC3.R
84 lines (73 loc) · 2.25 KB
/
ROC3.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#############################
# density function #
#############################
xMin <- 0.0
xMax <- 10.0
yMin <- 0.0
yMax <- 1.5
datX <- seq( from=xMin, to=xMax, by=0.01 )
dfDNorm1 <- data.frame( x=datX, y=dnorm( x=datX, mean=2.0, sd=0.3 ) )
dfDNorm2 <- data.frame( x=datX, y=dnorm( x=datX, mean=3.0, sd=0.8 ) )
#############################
# ROC #
#############################
xMin <- 0.0
xMax <- 1.0
yMin <- 0.0
yMax <- 1.01
dat <- seq( from=0.0, to=10.0, by=0.01 )
dfROC <- data.frame(
sigma1 = pnorm( q=dat, mean=2.0, sd=0.3, lower.tail=TRUE ),
sigma2 = pnorm( q=dat, mean=3.0, sd=0.8, lower.tail=TRUE )
)
# set graphics parameters
titleROC <- "ROC曲線 [ROC Curve]"
xlab <- "偽陽性率 [false positive rate]"
ylab <- "真陽性率 [true positive rate]"
xlim <- range( c(xMin,xMax) )
ylim <- range( c(yMin,yMax) )
# plot ROC Curve
plot( dfROC$sigma2, dfROC$sigma1,
main = titleROC,
xlab = xlab, ylab = ylab,
xlim = xlim, ylim = ylim,
type = "l"
)
grid() # 図にグリッド線を追加
#############################
# Loss lines #
#############################
dfLossLine1 <- data.frame( dat1=c(0.0,0.75),dat2=c(0.20,1.050) ) # 等損失直線1(データフレーム)
dfLossLine2 <- data.frame( dat1=c(0.0,0.65),dat2=c(0.40,1.120) ) # 等損失直線2(データフレーム)
dfLossLine3 <- data.frame( dat1=c(0.0,0.40),dat2=c(0.65,1.120) ) # 等損失直線3(データフレーム)
dfLossLine4 <- data.frame( dat1=c(0.0,0.25),dat2=c(0.80,1.100) ) # 等損失直線4(データフレーム)
# plot Loss lines
par(new=T)
plot( dfLossLine1$dat1, dfLossLine1$dat2,
xlab = xlab, ylab = ylab,
xlim = xlim, ylim = ylim,
type = "l",
lty = "dotdash"
)
par(new=T)
plot( dfLossLine2$dat1, dfLossLine2$dat2,
xlab = xlab, ylab = ylab,
xlim = xlim, ylim = ylim,
type = "l",
lty = "dotdash"
)
par(new=T)
plot( dfLossLine3$dat1, dfLossLine3$dat2,
xlab = xlab, ylab = ylab,
xlim = xlim, ylim = ylim,
type = "l",
lty = "dotdash",
col = "red"
)
par(new=T)
plot( dfLossLine4$dat1, dfLossLine4$dat2,
xlab = xlab, ylab = ylab,
xlim = xlim, ylim = ylim,
type = "l",
lty = "dotdash"
)