Test 1:
verify by gs_power_npe
new version
x <- gs_design_npe(
theta = c(.1, .2, .3), info = (1:3) * 40, beta = 0.1,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL), binding = TRUE
)
x %>% gt()
analysis |
bound |
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
1 |
upper |
3.7103029 |
0.0010356481 |
0.0001035057 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
1 |
lower |
-3.0798144 |
0.0001035057 |
0.0010356481 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
2 |
upper |
2.5114338 |
0.2332751723 |
0.0060483891 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
2 |
lower |
-0.7281431 |
0.0060483891 |
0.2332751723 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
3 |
upper |
1.9930482 |
0.8999999998 |
0.0250000000 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
3 |
lower |
1.2830660 |
0.0250000000 |
0.8999999998 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
The power is 0.9. If we re-use these bounds under alternate
hypothesis, then we can get a power close to 0.9.
gs_power_npe(
theta = c(.1, .2, .3), info = (1:3) * 40,
upper = gs_b, upar = (x %>% filter(bound == "upper"))$z,
lower = gs_b, lpar = -(x %>% filter(bound == "upper"))$z,
binding = TRUE # Always use binding = TRUE for power calculations
) %>% gt()
analysis |
bound |
z |
probability |
theta |
theta1 |
info_frac |
info |
info0 |
info1 |
1 |
upper |
3.710303 |
1.042508e-03 |
0.1 |
0.1 |
0.3333333 |
40 |
40 |
40 |
2 |
upper |
2.511434 |
2.349812e-01 |
0.2 |
0.2 |
0.6666667 |
80 |
80 |
80 |
3 |
upper |
1.993048 |
9.020716e-01 |
0.3 |
0.3 |
1.0000000 |
120 |
120 |
120 |
1 |
lower |
-3.710303 |
7.035242e-06 |
0.1 |
0.1 |
0.3333333 |
40 |
40 |
40 |
2 |
lower |
-2.511434 |
1.510031e-05 |
0.2 |
0.2 |
0.6666667 |
80 |
80 |
80 |
3 |
lower |
-1.993048 |
1.512598e-05 |
0.3 |
0.3 |
1.0000000 |
120 |
120 |
120 |
old version
x <- gs_design_npe_(
theta = c(.1, .2, .3), info = (1:3) * 40, beta = 0.1,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL), binding = TRUE
)
x %>% gt()
Analysis |
Bound |
Z |
Probability |
theta |
theta1 |
info |
info0 |
info1 |
1 |
Upper |
3.7103029 |
0.0010356481 |
0.1 |
0.1 |
39.75157 |
39.75157 |
39.75157 |
2 |
Upper |
2.5114338 |
0.2332751723 |
0.2 |
0.2 |
79.50314 |
79.50314 |
79.50314 |
3 |
Upper |
1.9930482 |
0.8999999998 |
0.3 |
0.3 |
119.25471 |
119.25471 |
119.25471 |
1 |
Lower |
-3.0798144 |
0.0001035057 |
0.1 |
0.1 |
39.75157 |
39.75157 |
39.75157 |
2 |
Lower |
-0.7281431 |
0.0060483891 |
0.2 |
0.2 |
79.50314 |
79.50314 |
79.50314 |
3 |
Lower |
1.2830660 |
0.0250000000 |
0.3 |
0.3 |
119.25471 |
119.25471 |
119.25471 |
The power is 0.9. If we re-use these bounds under alternate
hypothesis, then we can get a power close to 0.9.
gs_power_npe_(
theta = c(.1, .2, .3), info = (1:3) * 40,
upper = gs_b, upar = (x %>% filter(Bound == "Upper"))$Z,
lower = gs_b, lpar = -(x %>% filter(Bound == "Upper"))$Z,
binding = TRUE # Always use binding = TRUE for power calculations
) %>% gt()
Analysis |
Bound |
Z |
Probability |
theta |
theta1 |
info |
info0 |
info1 |
1 |
Upper |
3.710303 |
1.042508e-03 |
0.1 |
0.1 |
40 |
40 |
40 |
2 |
Upper |
2.511434 |
2.349812e-01 |
0.2 |
0.2 |
80 |
80 |
80 |
3 |
Upper |
1.993048 |
9.020716e-01 |
0.3 |
0.3 |
120 |
120 |
120 |
1 |
Lower |
-3.710303 |
7.035242e-06 |
0.1 |
0.1 |
40 |
40 |
40 |
2 |
Lower |
-2.511434 |
1.510031e-05 |
0.2 |
0.2 |
80 |
80 |
80 |
3 |
Lower |
-1.993048 |
1.512598e-05 |
0.3 |
0.3 |
120 |
120 |
120 |
Test 1:
examples in spec
difference of
proportions
# Lachin book p71
pc <- .28 # Control response rate
pe <- .40 # Experimental response rate
p0 <- (pc + pe) / 2 # Ave response rate under H0
# Information per increment of 1 in sample size
info0 <- 1 / (p0 * (1 - p0) * 4)
info <- 1 / (pc * (1 - pc) * 2 + pe * (1 - pe) * 2)
# Result should round up to next even number = 652
# Divide information needed under H1 by information per patient added
x1_a <- gs_design_npe(theta = pe - pc, info = info, info0 = info0, info_scale = 0) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(theta = pe - pc, info = info, info0 = info0, info_scale = 1) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(theta = pe - pc, info = info, info0 = info0, info_scale = 2) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(theta = pe - pc, info = info, info0 = info0) %>%
mutate(`Computated from` = "old version") %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
analysis |
bound |
z |
probability |
probability0 |
theta |
info |
info0 |
info1 |
info_frac |
Computated from |
Info scale |
1 |
upper |
1.959964 |
0.9 |
0.025 |
0.12 |
729.6822 |
729.6822 |
729.6822 |
1 |
new version |
0 |
1 |
upper |
1.959964 |
0.9 |
0.025 |
0.12 |
729.6822 |
729.6822 |
729.6822 |
1 |
new version |
1 |
1 |
upper |
1.959964 |
0.9 |
0.025 |
0.12 |
736.8641 |
725.0428 |
736.8641 |
1 |
new version |
2 |
1 |
Upper |
1.959964 |
0.9 |
NA |
0.12 |
736.8641 |
725.0428 |
NA |
NA |
old version |
NA |
fixed
design
info
=
info0
= info1
x1_a <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info_scale = 0,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info_scale = 1,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info_scale = 2,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(
theta = c(.1, .2, .3),
info = (1:3) * 80,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)) %>%
mutate(`Computated from` = "old version") %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
Computated from |
Info scale |
theta1 |
1 - upper |
3.710303 |
0.001201556 |
0.0001035057 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
0 |
NA |
3.710303 |
0.001201556 |
0.0001035057 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
1 |
NA |
3.710303 |
0.001201556 |
0.0001035057 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
2 |
NA |
1 - lower |
-1.000000 |
0.046965036 |
0.1586552539 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
0 |
NA |
-1.000000 |
0.046965036 |
0.1586552539 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
1 |
NA |
-1.000000 |
0.046965036 |
0.1586552539 |
0.1 |
0.3333333 |
45.56536 |
45.56536 |
45.56536 |
new version |
2 |
NA |
1 - Upper |
3.710303 |
0.001201556 |
NA |
0.1 |
NA |
45.56536 |
45.56536 |
45.56536 |
old version |
NA |
0.1 |
1 - Lower |
-1.000000 |
0.046965036 |
NA |
0.1 |
NA |
45.56536 |
45.56536 |
45.56536 |
old version |
NA |
0.1 |
2 - upper |
2.511427 |
0.273421987 |
0.0060483983 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
0 |
NA |
2.511427 |
0.273421987 |
0.0060483983 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
1 |
NA |
2.511427 |
0.273421987 |
0.0060483983 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
2 |
NA |
2 - lower |
0.000000 |
0.061921702 |
0.5125857748 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
0 |
NA |
0.000000 |
0.061921702 |
0.5125857748 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
1 |
NA |
0.000000 |
0.061921702 |
0.5125857748 |
0.2 |
0.6666667 |
91.13072 |
91.13072 |
91.13072 |
new version |
2 |
NA |
2 - Upper |
2.511427 |
0.273421987 |
NA |
0.2 |
NA |
91.13072 |
91.13072 |
91.13072 |
old version |
NA |
0.2 |
2 - Lower |
0.000000 |
0.061921702 |
NA |
0.2 |
NA |
91.13072 |
91.13072 |
91.13072 |
old version |
NA |
0.2 |
3 - upper |
1.993048 |
0.900000000 |
0.0249302430 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
0 |
NA |
1.993048 |
0.900000000 |
0.0249302430 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
1 |
NA |
1.993048 |
0.900000000 |
0.0249302430 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
2 |
NA |
3 - lower |
0.000000 |
0.061926296 |
0.6063477109 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
0 |
NA |
0.000000 |
0.061926296 |
0.6063477109 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
1 |
NA |
0.000000 |
0.061926296 |
0.6063477109 |
0.3 |
1.0000000 |
136.69609 |
136.69609 |
136.69609 |
new version |
2 |
NA |
3 - Upper |
1.993048 |
0.900000000 |
NA |
0.3 |
NA |
136.69609 |
136.69609 |
136.69609 |
old version |
NA |
0.3 |
3 - Lower |
0.000000 |
0.061926296 |
NA |
0.3 |
NA |
136.69609 |
136.69609 |
136.69609 |
old version |
NA |
0.3 |
info
!= info0
!= info1
x1_a <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info0 = (1:3) * 90 + 10, info1 = (1:3) * 70 - 5, info_scale = 0,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info0 = (1:3) * 90 + 10, info1 = (1:3) * 70 - 5, info_scale = 1,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 80, info0 = (1:3) * 90 + 10, info1 = (1:3) * 70 - 5, info_scale = 2,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)
) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(
theta = c(.1, .2, .3),
info = (1:3) * 80, info0 = (1:3) * 90 + 10, info1 = (1:3) * 70 - 5,
upper = gs_b, upar = gsDesign::gsDesign(k = 3, sfu = gsDesign::sfLDOF)$upper$bound,
lower = gs_b, lpar = c(-1, 0, 0)) %>%
mutate(`Computated from` = "old version") %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
Computated from |
Info scale |
theta1 |
1 - upper |
3.710303 |
0.001278699 |
0.0001035057 |
0.1 |
0.3571429 |
48.14094 |
48.14094 |
48.14094 |
new version |
0 |
NA |
3.710303 |
0.001149869 |
0.0001035057 |
0.1 |
0.3170732 |
43.79604 |
43.79604 |
43.79604 |
new version |
1 |
NA |
3.710303 |
0.004048062 |
0.0001035057 |
0.1 |
0.3333333 |
44.96523 |
56.20654 |
36.53425 |
new version |
2 |
NA |
1 - lower |
-1.000000 |
0.045148157 |
0.1586552539 |
0.1 |
0.3571429 |
48.14094 |
48.14094 |
48.14094 |
new version |
0 |
NA |
-1.000000 |
0.048277869 |
0.1586552539 |
0.1 |
0.3170732 |
43.79604 |
43.79604 |
43.79604 |
new version |
1 |
NA |
-1.000000 |
0.058792818 |
0.1586552539 |
0.1 |
0.3333333 |
44.96523 |
56.20654 |
36.53425 |
new version |
2 |
NA |
1 - Upper |
3.710303 |
0.004048062 |
NA |
0.1 |
NA |
44.96523 |
56.20654 |
36.53425 |
old version |
NA |
0.1 |
1 - Lower |
-1.000000 |
0.058792818 |
NA |
0.1 |
NA |
44.96523 |
56.20654 |
36.53425 |
old version |
NA |
0.1 |
2 - upper |
2.511427 |
0.274637453 |
0.0060442562 |
0.2 |
0.6785714 |
91.46778 |
91.46778 |
91.46778 |
new version |
0 |
NA |
2.511427 |
0.272791297 |
0.0060513253 |
0.2 |
0.6585366 |
90.96101 |
90.96101 |
90.96101 |
new version |
1 |
NA |
2.511427 |
0.272107963 |
0.0060442562 |
0.2 |
0.6666667 |
89.93046 |
106.79242 |
75.87883 |
new version |
2 |
NA |
2 - lower |
0.000000 |
0.059626767 |
0.5110855741 |
0.2 |
0.6785714 |
91.46778 |
91.46778 |
91.46778 |
new version |
0 |
NA |
0.000000 |
0.063543969 |
0.5136901172 |
0.2 |
0.6585366 |
90.96101 |
90.96101 |
90.96101 |
new version |
1 |
NA |
0.000000 |
0.074240014 |
0.5110855741 |
0.2 |
0.6666667 |
89.93046 |
106.79242 |
75.87883 |
new version |
2 |
NA |
2 - Upper |
2.511427 |
0.272107963 |
NA |
0.2 |
NA |
89.93046 |
106.79242 |
75.87883 |
old version |
NA |
0.2 |
2 - Lower |
0.000000 |
0.074240014 |
NA |
0.2 |
NA |
89.93046 |
106.79242 |
75.87883 |
old version |
NA |
0.2 |
3 - upper |
1.993048 |
0.899999988 |
0.0248602069 |
0.3 |
1.0000000 |
134.79463 |
134.79463 |
134.79463 |
new version |
0 |
NA |
1.993048 |
0.900000000 |
0.0249748131 |
0.3 |
1.0000000 |
138.12597 |
138.12597 |
138.12597 |
new version |
1 |
NA |
1.993048 |
0.899999920 |
0.0248602069 |
0.3 |
1.0000000 |
134.89569 |
157.37831 |
115.22340 |
new version |
2 |
NA |
3 - lower |
0.000000 |
0.059631346 |
0.6032976877 |
0.3 |
1.0000000 |
134.79463 |
134.79463 |
134.79463 |
new version |
0 |
NA |
0.000000 |
0.063548525 |
0.6084787927 |
0.3 |
1.0000000 |
138.12597 |
138.12597 |
138.12597 |
new version |
1 |
NA |
0.000000 |
0.074245152 |
0.6032976877 |
0.3 |
1.0000000 |
134.89569 |
157.37831 |
115.22340 |
new version |
2 |
NA |
3 - Upper |
1.993048 |
0.899999920 |
NA |
0.3 |
NA |
134.89569 |
157.37831 |
115.22340 |
old version |
NA |
0.3 |
3 - Lower |
0.000000 |
0.074245152 |
NA |
0.3 |
NA |
134.89569 |
157.37831 |
115.22340 |
old version |
NA |
0.3 |
futility at IA1;
efficacy only at IA2 +FA
x1_a <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 40, info_scale = 0,
upper = gs_spending_bound, upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_b, lpar = c(-1, -Inf, -Inf),
test_upper = c(FALSE, TRUE, TRUE)
) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 40, info_scale = 1,
upper = gs_spending_bound, upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_b, lpar = c(-1, -Inf, -Inf),
test_upper = c(FALSE, TRUE, TRUE)
) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 40, info_scale = 2,
upper = gs_spending_bound, upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_b, lpar = c(-1, -Inf, -Inf),
test_upper = c(FALSE, TRUE, TRUE)
) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 40,
upper = gs_spending_bound, upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_b, lpar = c(-1, -Inf, -Inf),
test_upper = c(FALSE, TRUE, TRUE)) %>%
mutate(`Computated from` = "old version", `Info scale` = 0) %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
x1_a %>%
union_all(x1_b) %>%
union_all(x1_c) %>%
union_all(x2) %>%
arrange(analysis) %>%
group_by(analysis, bound) %>%
gt() %>%
tab_style(
style = list(cell_fill(color = "#d3edeb")),
locations = cells_body(rows = `Computated from` == "old version")
)
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
Computated from |
Info scale |
theta1 |
1 - upper |
Inf |
0.00000000 |
0.000000000 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
0 |
NA |
Inf |
0.00000000 |
0.000000000 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
1 |
NA |
Inf |
0.00000000 |
0.000000000 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
2 |
NA |
1 - lower |
-1.000000 |
0.04770758 |
0.158655254 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
0 |
NA |
-1.000000 |
0.04770758 |
0.158655254 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
1 |
NA |
-1.000000 |
0.04770758 |
0.158655254 |
0.1 |
0.3333333 |
44.55554 |
44.55554 |
44.55554 |
new version |
2 |
NA |
1 - Upper |
Inf |
0.00000000 |
NA |
0.1 |
NA |
44.55554 |
44.55554 |
44.55554 |
old version |
0 |
0.1 |
1 - Lower |
-1.000000 |
0.04770758 |
NA |
0.1 |
NA |
44.55554 |
44.55554 |
44.55554 |
old version |
0 |
0.1 |
2 - upper |
2.509315 |
0.26707709 |
0.006048281 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
0 |
NA |
2.509315 |
0.26707709 |
0.006048281 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
1 |
NA |
2.509315 |
0.26707709 |
0.006048281 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
2 |
NA |
2 - lower |
-Inf |
0.04770758 |
0.158655254 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
0 |
NA |
-Inf |
0.04770758 |
0.158655254 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
1 |
NA |
-Inf |
0.04770758 |
0.158655254 |
0.2 |
0.6666667 |
89.11107 |
89.11107 |
89.11107 |
new version |
2 |
NA |
2 - Upper |
2.509315 |
0.26707709 |
NA |
0.2 |
NA |
89.11107 |
89.11107 |
89.11107 |
old version |
0 |
0.2 |
2 - Lower |
-Inf |
0.04770758 |
NA |
0.2 |
NA |
89.11107 |
89.11107 |
89.11107 |
old version |
0 |
0.2 |
3 - upper |
1.992888 |
0.90000000 |
0.024947293 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
0 |
NA |
1.992888 |
0.90000000 |
0.024947293 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
1 |
NA |
1.992888 |
0.90000000 |
0.024947293 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
2 |
NA |
3 - lower |
-Inf |
0.04770758 |
0.158655254 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
0 |
NA |
-Inf |
0.04770758 |
0.158655254 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
1 |
NA |
-Inf |
0.04770758 |
0.158655254 |
0.3 |
1.0000000 |
133.66661 |
133.66661 |
133.66661 |
new version |
2 |
NA |
3 - Upper |
1.992888 |
0.90000000 |
NA |
0.3 |
NA |
133.66661 |
133.66661 |
133.66661 |
old version |
0 |
0.3 |
3 - Lower |
-Inf |
0.04770758 |
NA |
0.3 |
NA |
133.66661 |
133.66661 |
133.66661 |
old version |
0 |
0.3 |
spending bounds
x1_a <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 50, info_scale = 0,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfHSD, total_spend = 0.1, param = -1, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 50, info_scale = 1,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfHSD, total_spend = 0.1, param = -1, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 50, info_scale = 2,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfHSD, total_spend = 0.1, param = -1, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(
theta = c(.1, .2, .3),
info = (1:3) * 40, info0 = (1:3) * 50,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfHSD, total_spend = 0.1, param = -1, timing = NULL)
) %>% mutate(`Computated from` = "old version") %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
Computated from |
Info scale |
theta1 |
1 - upper |
3.7103029 |
0.001136317 |
0.0001035057 |
0.1 |
0.3333333 |
43.32605 |
43.32605 |
43.32605 |
new version |
0 |
NA |
3.7103029 |
0.001136317 |
0.0001035057 |
0.1 |
0.3333333 |
43.32605 |
43.32605 |
43.32605 |
new version |
1 |
NA |
3.7103029 |
0.003850782 |
0.0001035057 |
0.1 |
0.3333333 |
42.73434 |
53.41793 |
42.73434 |
new version |
2 |
NA |
1 - lower |
-1.3367329 |
0.023023722 |
0.0906549246 |
0.1 |
0.3333333 |
43.32605 |
43.32605 |
43.32605 |
new version |
0 |
NA |
-1.3367329 |
0.023023722 |
0.0906549246 |
0.1 |
0.3333333 |
43.32605 |
43.32605 |
43.32605 |
new version |
1 |
NA |
-1.3412431 |
0.031915434 |
0.0899207747 |
0.1 |
0.3333333 |
42.73434 |
53.41793 |
42.73434 |
new version |
2 |
NA |
1 - Upper |
3.7103029 |
0.003850782 |
NA |
0.1 |
NA |
42.73434 |
53.41793 |
42.73434 |
old version |
NA |
0.1 |
1 - Lower |
-1.3412431 |
0.031915434 |
NA |
0.1 |
NA |
42.73434 |
53.41793 |
42.73434 |
old version |
NA |
0.1 |
2 - upper |
2.5114338 |
0.257938878 |
0.0060483767 |
0.2 |
0.6666667 |
86.65211 |
86.65211 |
86.65211 |
new version |
0 |
NA |
2.5114338 |
0.257938878 |
0.0060483767 |
0.2 |
0.6666667 |
86.65211 |
86.65211 |
86.65211 |
new version |
1 |
NA |
2.5114338 |
0.256567802 |
0.0060483771 |
0.2 |
0.6666667 |
85.46869 |
106.83586 |
85.46869 |
new version |
2 |
NA |
2 - lower |
0.1455293 |
0.055155914 |
0.5605209895 |
0.2 |
0.6666667 |
86.65211 |
86.65211 |
86.65211 |
new version |
0 |
NA |
0.1455293 |
0.055155914 |
0.5605209895 |
0.2 |
0.6666667 |
86.65211 |
86.65211 |
86.65211 |
new version |
1 |
NA |
0.1327725 |
0.064047626 |
0.5555411487 |
0.2 |
0.6666667 |
85.46869 |
106.83586 |
85.46869 |
new version |
2 |
NA |
2 - Upper |
2.5114338 |
0.256567802 |
NA |
0.2 |
NA |
85.46869 |
106.83586 |
85.46869 |
old version |
NA |
0.2 |
2 - Lower |
0.1327725 |
0.064047626 |
NA |
0.2 |
NA |
85.46869 |
106.83586 |
85.46869 |
old version |
NA |
0.2 |
3 - upper |
1.9930511 |
0.900000000 |
0.0249444277 |
0.3 |
1.0000000 |
129.97816 |
129.97816 |
129.97816 |
new version |
0 |
NA |
1.9930511 |
0.900000000 |
0.0249444277 |
0.3 |
1.0000000 |
129.97816 |
129.97816 |
129.97816 |
new version |
1 |
NA |
1.9930511 |
0.900000001 |
0.0249474621 |
0.3 |
1.0000000 |
128.20303 |
160.25379 |
128.20303 |
new version |
2 |
NA |
3 - lower |
1.9930488 |
0.100000000 |
0.9750558052 |
0.3 |
1.0000000 |
129.97816 |
129.97816 |
129.97816 |
new version |
0 |
NA |
1.9930488 |
0.100000000 |
0.9750558052 |
0.3 |
1.0000000 |
129.97816 |
129.97816 |
129.97816 |
new version |
1 |
NA |
1.9696010 |
0.108891712 |
0.9738270973 |
0.3 |
1.0000000 |
128.20303 |
160.25379 |
128.20303 |
new version |
2 |
NA |
3 - Upper |
1.9930511 |
0.900000001 |
NA |
0.3 |
NA |
128.20303 |
160.25379 |
128.20303 |
old version |
NA |
0.3 |
3 - Lower |
1.9696010 |
0.108891712 |
NA |
0.3 |
NA |
128.20303 |
160.25379 |
128.20303 |
old version |
NA |
0.3 |
2-sided symmetric
spend
x1_a <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info_scale = 0,
binding = TRUE,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 0)
x1_b <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info_scale = 1,
binding = TRUE,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 1)
x1_c <- gs_design_npe(
theta = c(.1, .2, .3),
info = (1:3) * 40, info_scale = 2,
binding = TRUE,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL)
) %>% mutate(`Computated from` = "new version", `Info scale` = 2)
x2 <- gs_design_npe_(
theta = c(.1, .2, .3),
info = (1:3) * 40,
binding = TRUE,
upper = gs_spending_bound,
upar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL),
lower = gs_spending_bound,
lpar = list(sf = gsDesign::sfLDOF, total_spend = 0.025, param = NULL, timing = NULL)
) %>% mutate(`Computated from` = "old version") %>%
rename(analysis = Analysis,
bound = Bound, z = Z, probability = Probability)
z |
probability |
probability0 |
theta |
info_frac |
info |
info0 |
info1 |
Computated from |
Info scale |
theta1 |
1 - upper |
3.7103029 |
0.0010356481 |
0.0001035057 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
0 |
NA |
3.7103029 |
0.0010356481 |
0.0001035057 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
1 |
NA |
3.7103029 |
0.0010356481 |
0.0001035057 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
2 |
NA |
1 - lower |
-3.0798144 |
0.0001035057 |
0.0010356481 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
0 |
NA |
-3.0798144 |
0.0001035057 |
0.0010356481 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
1 |
NA |
-3.0798144 |
0.0001035057 |
0.0010356481 |
0.1 |
0.3333333 |
39.75157 |
39.75157 |
39.75157 |
new version |
2 |
NA |
1 - Upper |
3.7103029 |
0.0010356481 |
NA |
0.1 |
NA |
39.75157 |
39.75157 |
39.75157 |
old version |
NA |
0.1 |
1 - Lower |
-3.0798144 |
0.0001035057 |
NA |
0.1 |
NA |
39.75157 |
39.75157 |
39.75157 |
old version |
NA |
0.1 |
2 - upper |
2.5114338 |
0.2332751723 |
0.0060483891 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
0 |
NA |
2.5114338 |
0.2332751723 |
0.0060483891 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
1 |
NA |
2.5114338 |
0.2332751723 |
0.0060483891 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
2 |
NA |
2 - lower |
-0.7281431 |
0.0060483891 |
0.2332751723 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
0 |
NA |
-0.7281431 |
0.0060483891 |
0.2332751723 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
1 |
NA |
-0.7281431 |
0.0060483891 |
0.2332751723 |
0.2 |
0.6666667 |
79.50314 |
79.50314 |
79.50314 |
new version |
2 |
NA |
2 - Upper |
2.5114338 |
0.2332751723 |
NA |
0.2 |
NA |
79.50314 |
79.50314 |
79.50314 |
old version |
NA |
0.2 |
2 - Lower |
-0.7281431 |
0.0060483891 |
NA |
0.2 |
NA |
79.50314 |
79.50314 |
79.50314 |
old version |
NA |
0.2 |
3 - upper |
1.9930482 |
0.8999999998 |
0.0250000000 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
0 |
NA |
1.9930482 |
0.8999999998 |
0.0250000000 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
1 |
NA |
1.9930482 |
0.8999999998 |
0.0250000000 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
2 |
NA |
3 - lower |
1.2830660 |
0.0250000000 |
0.8999999998 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
0 |
NA |
1.2830660 |
0.0250000000 |
0.8999999998 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
1 |
NA |
1.2830660 |
0.0250000000 |
0.8999999998 |
0.3 |
1.0000000 |
119.25471 |
119.25471 |
119.25471 |
new version |
2 |
NA |
3 - Upper |
1.9930482 |
0.8999999998 |
NA |
0.3 |
NA |
119.25471 |
119.25471 |
119.25471 |
old version |
NA |
0.3 |
3 - Lower |
1.2830660 |
0.0250000000 |
NA |
0.3 |
NA |
119.25471 |
119.25471 |
119.25471 |
old version |
NA |
0.3 |