In the frequentist section, we propose several alternative rules for making particular decisions but we don’t provide too much evidence that these proposed rules are reasonable or good. I think that it would be really helpful to show, graphically, the probability of making a certain decision for different rules, effect sizes, and study designs. This would, hopefully, show that, for example, the proposed double barrel rule is a reasonable one.

I have shown how we could do this graphically for the first scenario (the non-inferiority one) below.

library(tidyverse)
Registered S3 method overwritten by 'dplyr':
  method           from
  print.rowwise_df     
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages --------------------------------------- tidyverse 1.3.0 --
v ggplot2 3.2.1     v purrr   0.3.3
v tibble  2.1.3     v dplyr   0.8.3
v tidyr   1.0.0     v stringr 1.4.0
v readr   1.3.1     v forcats 0.4.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(ggplot2)
output_dir <- "C:/Users/dougj/Documents/Bayes stuff/Output"

Testing for non-inferiority

Our working paper proposes two candidate rules for deciding whether to scale up the new intervention

With these two rules, the probability of rejecting the null with the first rule is…

\[ P(reject null, rule 1)=1-\Phi \left({\frac{\Phi^{-1}(1-\alpha_1 )se-\delta}{se}}\right) \]

Where se is the standard error of the estimate, \(\alpha_1\) is our significance level, and \(\delta\) is the difference in the effect sizes. Likewise, the probability of rejecting the null using rule 2 is…

\[ P(reject null, rule 1)=1-\Phi \left({\frac{\Phi^{-1}(1-\alpha_2)se-\delta-\tau}{se}}\right) \] Where se and \(\delta\) are the same as before, \(\alpha_2\) is our new significance level, and \(\tau\) is our non-inferiority threshold. (.1 in the text)

For an RCT with no baseline and equal size treatment and control groups, the standard error of the difference between treatment and control is…

\[ \hat{\sigma_{\Delta}}=\sigma_y\sqrt{\frac{2}{N}} \]

To simplify things further, we may define \(\delta_{sd}=\delta/\sigma_y\) and \(\tau_{sd}=\delta/\sigma_y\). Then we have…

\[ P(reject null, rule 1)=1-\Phi \left({\frac{\Phi^{-1}(1-\alpha_1 )(2/N)^.5-\delta_{sd}}{(2/N)^.5}}\right) \]

Define the functions


p1_reject <- function(deltasd, N, alpha = .05) {
  se <- (2/N)^.5
  prob <- 1-pnorm((qnorm(1-alpha)*se-deltasd)/se)
  return(prob)
}

p2_reject <- function(deltasd, N, tausd, alpha = .05) {
  se <- (2/N)^.5
  prob <- 1-pnorm((qnorm(1-alpha)*se-deltasd-tausd)/se)
  return(prob)
}


# test the probabilty is alpha if delta = 0
p1_reject(0, 100)
[1] 0.05

Graph the functions for various values of delta and N

p <- ggplot(data = data.frame(x = 0), mapping = aes(x = x))
fun.1 <- function(x) p1_reject(x, 100)
fun.2 <- function(x) p2_reject(x, 100, .1)
fun.3 <- function(x) p1_reject(x, 300)
fun.4 <- function(x) p2_reject(x, 300, .1)
p + stat_function(fun = fun.1, aes(color = "Rule 1, N = 100")) + 
  stat_function(fun = fun.2, aes(color = "Rule 2, N=100, tausd = .1")) +
  stat_function(fun = fun.3, aes(color = "Rule 1, N = 300")) + 
  stat_function(fun = fun.4, aes(color = "Rule 2, N=300, tausd = .1")) +
  scale_color_brewer(palette = "Spectral") +
  labs(x = "Effect size difference in SDs" , y = "Prob. scale new intervention", colour = "Decision rule + study design") +
  xlim(-.2,.3)

NA
NA
LS0tDQp0aXRsZTogIkdyYXBoaW5nIHBvd2VyIHZzIGVmZmVjdCBzaXplIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KSW4gdGhlIGZyZXF1ZW50aXN0IHNlY3Rpb24sIHdlIHByb3Bvc2Ugc2V2ZXJhbCBhbHRlcm5hdGl2ZSBydWxlcyBmb3IgbWFraW5nIHBhcnRpY3VsYXIgZGVjaXNpb25zIGJ1dCB3ZSBkb24ndCBwcm92aWRlIHRvbyBtdWNoIGV2aWRlbmNlIHRoYXQgdGhlc2UgcHJvcG9zZWQgcnVsZXMgYXJlIHJlYXNvbmFibGUgb3IgZ29vZC4gSSB0aGluayB0aGF0IGl0IHdvdWxkIGJlIHJlYWxseSBoZWxwZnVsIHRvIHNob3csIGdyYXBoaWNhbGx5LCB0aGUgcHJvYmFiaWxpdHkgb2YgbWFraW5nIGEgY2VydGFpbiBkZWNpc2lvbiBmb3IgZGlmZmVyZW50IHJ1bGVzLCBlZmZlY3Qgc2l6ZXMsIGFuZCBzdHVkeSBkZXNpZ25zLiBUaGlzIHdvdWxkLCBob3BlZnVsbHksIHNob3cgdGhhdCwgZm9yIGV4YW1wbGUsIHRoZSBwcm9wb3NlZCBkb3VibGUgYmFycmVsIHJ1bGUgaXMgYSByZWFzb25hYmxlIG9uZS4gDQoNCkkgaGF2ZSBzaG93biBob3cgd2UgY291bGQgZG8gdGhpcyBncmFwaGljYWxseSBmb3IgdGhlIGZpcnN0IHNjZW5hcmlvICh0aGUgbm9uLWluZmVyaW9yaXR5IG9uZSkgYmVsb3cuIA0KDQoNCmBgYHtyIHNldHVwfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGdncGxvdDIpDQpvdXRwdXRfZGlyIDwtICJDOi9Vc2Vycy9kb3Vnai9Eb2N1bWVudHMvQmF5ZXMgc3R1ZmYvT3V0cHV0Ig0KYGBgDQoNCg0KDQojIyMgVGVzdGluZyBmb3Igbm9uLWluZmVyaW9yaXR5DQpPdXIgd29ya2luZyBwYXBlciBwcm9wb3NlcyB0d28gY2FuZGlkYXRlIHJ1bGVzIGZvciBkZWNpZGluZyB3aGV0aGVyIHRvIHNjYWxlIHVwIHRoZSBuZXcgaW50ZXJ2ZW50aW9uDQoNCiogUnVsZSAxOiBOdWxsIG9mIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIHRyZWF0bWVudHMgYWdhaW5zdCBvbmUtc2lkZWQgYWx0ZXJuYXRpdmUgdGhhdCBlZmZlY3Qgb2YgdHJlYXRtZW50IHR3byBpcyBncmVhdGVyIHRoYW4gdHJlYXRtZW50IG9uZS4gKE5vdGUgdGhhdCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSB0ZXh0IHVzZXMgYSB0d28gc2lkZWQgdGVzdCBidXQgSSBoYXZlIHVzZWQgYSBvbmUgc2lkZWQgdGVzdCBoZXJlIHNpbmNlIGl0IG1ha2VzIHRoZSBtYXRoIHNsaWdodGx5IG1vcmUgc3RyYWlnaHRmb3J3YXJkKQ0KKiBSdWxlIDI6IE51bGwgdGhhdCB0aGUgZWZmZWN0IG9mIHRoZSBuZXcgaW50ZXJ2ZW50aW9uIGlzIGF0IGxlYXN0IGFzIGxhcmdlIGFzIHRoZSBlZmZlY3Qgb2YgdGhlIGZpcnN0IGludGVydmVudGlvbiBtaW51cyAuMSBhZ2FpbnN0IHRoZSBhbHRlcm5hdGl2ZSB0aGF0IHRoZSBuZXcgaW50ZXJ2ZW50aW9uIGlzIGxhcmdlciB0aGFuIHRoaXMuDQoNCldpdGggdGhlc2UgdHdvIHJ1bGVzLCB0aGUgcHJvYmFiaWxpdHkgb2YgcmVqZWN0aW5nIHRoZSBudWxsIHdpdGggdGhlIGZpcnN0IHJ1bGUgaXMuLi4NCg0KJCQgUChyZWplY3QgbnVsbCwgcnVsZSAxKT0xLVxQaGkgXGxlZnQoe1xmcmFje1xQaGleey0xfSgxLVxhbHBoYV8xIClzZS1cZGVsdGF9e3NlfX1ccmlnaHQpICQkDQoNCldoZXJlIHNlIGlzIHRoZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgZXN0aW1hdGUsICRcYWxwaGFfMSQgaXMgb3VyIHNpZ25pZmljYW5jZSBsZXZlbCwgYW5kICRcZGVsdGEkIGlzIHRoZSBkaWZmZXJlbmNlIGluIHRoZSBlZmZlY3Qgc2l6ZXMuIExpa2V3aXNlLCB0aGUgcHJvYmFiaWxpdHkgb2YgcmVqZWN0aW5nIHRoZSBudWxsIHVzaW5nIHJ1bGUgMiBpcy4uLg0KDQokJCBQKHJlamVjdCBudWxsLCBydWxlIDEpPTEtXFBoaSBcbGVmdCh7XGZyYWN7XFBoaV57LTF9KDEtXGFscGhhXzIpc2UtXGRlbHRhLVx0YXV9e3NlfX1ccmlnaHQpICQkDQpXaGVyZSBzZSBhbmQgJFxkZWx0YSQgYXJlIHRoZSBzYW1lIGFzIGJlZm9yZSwgJFxhbHBoYV8yJCBpcyBvdXIgbmV3IHNpZ25pZmljYW5jZSBsZXZlbCwgYW5kICRcdGF1JCBpcyBvdXIgbm9uLWluZmVyaW9yaXR5IHRocmVzaG9sZC4gICguMSBpbiB0aGUgdGV4dCkNCg0KRm9yIGFuIFJDVCB3aXRoIG5vIGJhc2VsaW5lIGFuZCBlcXVhbCBzaXplIHRyZWF0bWVudCBhbmQgY29udHJvbCBncm91cHMsIHRoZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRyZWF0bWVudCBhbmQgY29udHJvbCBpcy4uLg0KDQokJCBcaGF0e1xzaWdtYV97XERlbHRhfX09XHNpZ21hX3lcc3FydHtcZnJhY3syfXtOfX0gJCQNCg0KVG8gc2ltcGxpZnkgdGhpbmdzIGZ1cnRoZXIsIHdlIG1heSBkZWZpbmUgJFxkZWx0YV97c2R9PVxkZWx0YS9cc2lnbWFfeSQgYW5kICRcdGF1X3tzZH09XGRlbHRhL1xzaWdtYV95JC4gVGhlbiB3ZSBoYXZlLi4uDQoNCg0KJCQgUChyZWplY3QgbnVsbCwgcnVsZSAxKT0xLVxQaGkgXGxlZnQoe1xmcmFje1xQaGleey0xfSgxLVxhbHBoYV8xICkoMi9OKV4uNS1cZGVsdGFfe3NkfX17KDIvTileLjV9fVxyaWdodCkgJCQNCg0KDQojIyMgRGVmaW5lIHRoZSBmdW5jdGlvbnMNCg0KYGBge3J9DQoNCnAxX3JlamVjdCA8LSBmdW5jdGlvbihkZWx0YXNkLCBOLCBhbHBoYSA9IC4wNSkgew0KICBzZSA8LSAoMi9OKV4uNQ0KICBwcm9iIDwtIDEtcG5vcm0oKHFub3JtKDEtYWxwaGEpKnNlLWRlbHRhc2QpL3NlKQ0KICByZXR1cm4ocHJvYikNCn0NCg0KcDJfcmVqZWN0IDwtIGZ1bmN0aW9uKGRlbHRhc2QsIE4sIHRhdXNkLCBhbHBoYSA9IC4wNSkgew0KICBzZSA8LSAoMi9OKV4uNQ0KICBwcm9iIDwtIDEtcG5vcm0oKHFub3JtKDEtYWxwaGEpKnNlLWRlbHRhc2QtdGF1c2QpL3NlKQ0KICByZXR1cm4ocHJvYikNCn0NCg0KDQojIHRlc3QgdGhlIHByb2JhYmlsdHkgaXMgYWxwaGEgaWYgZGVsdGEgPSAwDQpwMV9yZWplY3QoMCwgMTAwKQ0KDQpgYGANCg0KIyMjIEdyYXBoIHRoZSBmdW5jdGlvbnMgZm9yIHZhcmlvdXMgdmFsdWVzIG9mIGRlbHRhIGFuZCBODQpgYGB7cn0NCnAgPC0gZ2dwbG90KGRhdGEgPSBkYXRhLmZyYW1lKHggPSAwKSwgbWFwcGluZyA9IGFlcyh4ID0geCkpDQpmdW4uMSA8LSBmdW5jdGlvbih4KSBwMV9yZWplY3QoeCwgMTAwKQ0KZnVuLjIgPC0gZnVuY3Rpb24oeCkgcDJfcmVqZWN0KHgsIDEwMCwgLjEpDQpmdW4uMyA8LSBmdW5jdGlvbih4KSBwMV9yZWplY3QoeCwgMzAwKQ0KZnVuLjQgPC0gZnVuY3Rpb24oeCkgcDJfcmVqZWN0KHgsIDMwMCwgLjEpDQpwICsgc3RhdF9mdW5jdGlvbihmdW4gPSBmdW4uMSwgYWVzKGNvbG9yID0gIlJ1bGUgMSwgTiA9IDEwMCIpKSArIA0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGZ1bi4yLCBhZXMoY29sb3IgPSAiUnVsZSAyLCBOPTEwMCwgdGF1c2QgPSAuMSIpKSArDQogIHN0YXRfZnVuY3Rpb24oZnVuID0gZnVuLjMsIGFlcyhjb2xvciA9ICJSdWxlIDEsIE4gPSAzMDAiKSkgKyANCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBmdW4uNCwgYWVzKGNvbG9yID0gIlJ1bGUgMiwgTj0zMDAsIHRhdXNkID0gLjEiKSkgKw0KICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZSA9ICJTcGVjdHJhbCIpICsNCiAgbGFicyh4ID0gIkVmZmVjdCBzaXplIGRpZmZlcmVuY2UgaW4gU0RzIiAsIHkgPSAiUHJvYi4gc2NhbGUgbmV3IGludGVydmVudGlvbiIsIGNvbG91ciA9ICJEZWNpc2lvbiBydWxlICsgc3R1ZHkgZGVzaWduIikgKw0KICB4bGltKC0uMiwuMykNCg0KICAgIA0KYGBgDQoNCg0KDQoNCg==