library(tidyverse)  #<<

library(tidyverse)
library(plotROC)  #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)  #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex))   #<<
    D
1   1
2   0
3   0
4   1
5   0
6   0
7   1
8   0
9   0
10  1
11  0
12  0
13  0
14  1
15  0
16  0
17  0
18  0
19  0
20  1
21  0
22  1
23  1
24  0
25  1
26  0
27  0
28  1
29  0
30  0
31  1
32  1
33  0
34  0
35  1
36  1
37  0
38  1
39  0
40  1
41  0
42  0
43  0
44  0
45  0
46  0
47  1
48  1
49  1
50  1
51  1
52  0
53  0
54  1
55  0
56  0
57  1
58  0
59  0
60  1
61  0
62  0
63  0
64  1
65  0
66  0
67  0
68  0
69  0
70  1
71  0
72  1
73  1
74  0
75  1
76  0
77  0
78  1
79  0
80  0
81  1
82  1
83  0
84  0
85  1
86  1
87  0
88  1
89  0
90  1
91  0
92  0
93  0
94  0
95  0
96  0
97  1
98  1
99  1
100 1

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),  #<<
               rnorm(50, mean = D.ex, sd = 1)),  #<<
         Z = c(rep("A", 50), rep("B", 50)))   #<<
    D           M Z
1   1  1.63077917 A
2   1  1.77089165 A
3   1  0.74589182 A
4   0  0.26621717 A
5   0 -0.15227410 A
6   1  1.07408421 A
7   1  0.67449863 A
8   0 -0.15898300 A
9   1  1.39240360 A
10  0 -0.04078829 A
11  0  0.63406302 A
12  1  1.30093739 A
13  1  1.07565976 A
14  1  0.49857207 A
15  0 -0.52247351 A
16  1  1.05579564 A
17  0 -0.22146399 A
18  1  0.81529545 A
19  0 -0.45781813 A
20  1  0.73573054 A
21  0 -0.78932653 A
22  0 -0.09094367 A
23  0 -0.89110010 A
24  1  0.52608486 A
25  0  1.21920793 A
26  0 -0.10456344 A
27  1  0.70392838 A
28  0 -0.30496759 A
29  1 -0.02755209 A
30  1  0.71886690 A
31  0 -0.65354129 A
32  1  1.32680456 A
33  1  1.12038762 A
34  0  0.79095309 A
35  0 -0.85499857 A
36  0 -0.50621630 A
37  0 -0.13348000 A
38  1  1.58435825 A
39  1  1.63479778 A
40  1  0.90009619 A
41  1  0.83892324 A
42  0  0.52657549 A
43  0  0.07289725 A
44  0 -0.15997837 A
45  1  0.99029797 A
46  0  0.30529014 A
47  1  0.49342380 A
48  1  1.57864117 A
49  0 -0.20380507 A
50  0  0.16410473 A
51  1  0.02666958 B
52  1  0.92154504 B
53  1  1.57808160 B
54  0  0.14642953 B
55  0 -1.30631826 B
56  1  2.10603301 B
57  1  0.01747458 B
58  0  0.91520267 B
59  1  0.13680830 B
60  0  0.63692513 B
61  0 -1.36363315 B
62  1  0.89831954 B
63  1 -0.01690523 B
64  1 -0.03032465 B
65  0 -0.21738482 B
66  1  0.70179321 B
67  0  0.24252351 B
68  1  0.66657202 B
69  0 -0.87719582 B
70  1  1.07356200 B
71  0 -1.24418350 B
72  0 -1.99280817 B
73  0 -1.98987075 B
74  1  0.42191472 B
75  0  0.96891591 B
76  0 -2.28993646 B
77  1  0.83057190 B
78  0 -0.27489179 B
79  1  0.76470065 B
80  1  0.37855720 B
81  0  1.12355370 B
82  1 -0.93054227 B
83  1  2.25822368 B
84  0  0.80340010 B
85  0  1.08908376 B
86  0 -0.43245442 B
87  0 -0.80019311 B
88  1  0.85551717 B
89  1  3.26755999 B
90  1  2.33450071 B
91  1  2.25564217 B
92  0  0.19750326 B
93  0  1.23484275 B
94  0 -1.11141664 B
95  1  2.90642435 B
96  0 -0.86834717 B
97  1  0.15565647 B
98  1  1.60003821 B
99  0  1.06802631 B
100 0 -0.33784819 B

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot()   #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot() +
  aes(m = M, d = D)   #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot() +
  aes(m = M, d = D) +
  geom_roc()   #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot() +
  aes(m = M, d = D) +
  geom_roc() +
  aes(color = Z)   #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot() +
  aes(m = M, d = D) +
  geom_roc() +
  aes(color = Z) ->
ggroc2  #<<

library(tidyverse)
library(plotROC)

D.ex <- rbinom(50, 1, .5)

data.frame(D = c(D.ex, D.ex)) |>
  mutate(M = c(rnorm(50, mean = D.ex, sd = .4),
               rnorm(50, mean = D.ex, sd = 1)),
         Z = c(rep("A", 50), rep("B", 50))) |>
  ggplot() +
  aes(m = M, d = D) +
  geom_roc() +
  aes(color = Z) ->
ggroc2

calc_auc(ggroc2) |> tibble()  #<<
# A tibble: 2 × 5
  PANEL COORD group Z       AUC
  <fct> <int> <int> <chr> <dbl>
1 1         1     1 A     0.991
2 1         1     2 B     0.813