Skip to contents

# devtools::load_all();

allDags <-
  raven::create_all_dags(
    c('var_1', 'var_2', 'var_3')
  );
#> Starting to process 6 dyads, in 3 combinations.
#> For 1 edge combinations, expanded the grid of 6 edge dyads to a matrix with 6 rows.
#> For 2 edge combinations, expanded the grid of 6 edge dyads to a matrix with 36 rows.
#> For 3 edge combinations, expanded the grid of 6 edge dyads to a matrix with 216 rows.
#> Out of the 6 edge combinations 0 contained duplicate dyads, and 0 contained loops. Removing those to retain  edge combinations.
#> Out of the 36 edge combinations 6 contained duplicate dyads, and 12 contained loops. Removing those to retain 24 edge combinations.
#> Out of the 216 edge combinations 96 contained duplicate dyads, and 168 contained loops. Removing those to retain 48 edge combinations.
#> Starting to sort and prune edge combinations for a maximum number of edges of 3, containing respectively '6', '36' & '216' edge combinations each.
#> Starting to compose the full DAG list for 26 edge combinations.

### We actually ignore the conditional independencies
raven::export_dag_overview(allDags);


### This should be a scale so it can be plotted on the X axis
crudFactor <- c(0.1, 0.2, 0.3);


### We should have a justification for de Crud distribution(s) we use

### Or we do sensitivity analyses with different distributions

### Present disagreement: 2023-06-13: Stefan argues that the distribution
### of crud can be considered to approximate the sampling distribution of
### Pearson's r. GJ argues that this distribution is unknown.

currentMeanCrud <- .2;

ravenUniverse <-
  raven::create_universe(
    3,
    rCorDistFun = rnorm,       ### Can also be e.g. runif()
    mean = currentMeanCrud,    ### Dividing the mean by 1.6 is based on
    sd = currentMeanCrud / 1.6 ### https://doi.org/bt7qq9 - of course never use:
                               ### https://sci-hub.se/10.2466/pr0.1991.69.1.123
  );

### Present disagreement: 2023-06-13: Whether the most informative plots show
### percentage of 'significant results' as a function of power or sample size

Selecting a conceptual model to study


chosenDag <-
  sample(allDags$dagList, 1)[[1]];

DiagrammeR::render_graph(chosenDag$diagram);

Doing five studies of this chosen DAG


exampleStudy <- raven::conduct_studies(universe = ravenUniverse,
                                       dag = chosenDag,
                                       nrOfStudies = 5,
                                       sesoi = .3,
                                       power = .8,
                                       alpha = .05);

exampleStudy;
#>    studyNr  var1  var2 sesoi  n power          r            p   sig
#> 1        1 var_2 var_1   0.3 85   0.8 0.03361050 7.600831e-01 FALSE
#> 2        1 var_3 var_2   0.3 85   0.8 0.43461443 3.236493e-05  TRUE
#> 3        2 var_2 var_1   0.3 85   0.8 0.23114808 3.330049e-02  TRUE
#> 4        2 var_3 var_2   0.3 85   0.8 0.30197433 4.973703e-03  TRUE
#> 5        3 var_2 var_1   0.3 85   0.8 0.08942075 4.157343e-01 FALSE
#> 6        3 var_3 var_2   0.3 85   0.8 0.26421176 1.454826e-02  TRUE
#> 7        4 var_2 var_1   0.3 85   0.8 0.30712708 4.248543e-03  TRUE
#> 8        4 var_3 var_2   0.3 85   0.8 0.52085307 3.218476e-07  TRUE
#> 9        5 var_2 var_1   0.3 85   0.8 0.22175502 4.138230e-02  TRUE
#> 10       5 var_3 var_2   0.3 85   0.8 0.45660970 1.121498e-05  TRUE
#>    study_prop_sig power_posthoc
#> 1             0.5    0.06060283
#> 2             0.5    0.98863053
#> 3             1.0    0.57244454
#> 4             1.0    0.80980912
#> 5             0.5    0.12887055
#> 6             0.5    0.69264320
#> 7             1.0    0.82352975
#> 8             1.0    0.99950978
#> 9             1.0    0.53683454
#> 10            1.0    0.99425657

Choosing 10 DAGs and doing 10 studies for each


careerDAGs <- list();
careerResults <- list();
careerSummary <- list();

### Proportion of correlations in one study that has to be
### significant to claim partial support
partialSupportCriterion <- .5;

for (i in 1:10) {
  
  careerDAGs[[i]] <- sample(allDags$dagList, 1)[[1]];
  
  careerResults[[i]] <-
    raven::conduct_studies(universe = ravenUniverse,
                           dag = careerDAGs[[i]],
                           nrOfStudies = 10,
                           sesoi = .3,
                           power = .8,
                           alpha = .05);
  
  careerSummary[[i]] <-
    unlist(
      by(careerResults[[i]]$study_prop_sig,
         careerResults[[i]]$studyNr,
         function(x) {
           return(
             ifelse(
               x[1] == 0,
               "rejected",
               ifelse(
                 x[1] == 1,
                 "supported",
                 ifelse(
                   x[1] >= partialSupportCriterion,
                   "partial",
                   "inconclusive"
                 )
               )
             )
           ); }
         )
      );
  
}





careerSummary
#> [[1]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "rejected"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[2]]
#> careerResults[[i]]$studyNr: 1
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "rejected"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[3]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[4]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[5]]
#> careerResults[[i]]$studyNr: 1
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "rejected"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "partial"
#> 
#> [[6]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "partial"
#> 
#> [[7]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[8]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"
#> 
#> [[9]]
#> careerResults[[i]]$studyNr: 1
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "partial"
#> 
#> [[10]]
#> careerResults[[i]]$studyNr: 1
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 2
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 3
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 4
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 5
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 6
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 7
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 8
#> [1] "supported"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 9
#> [1] "partial"
#> ------------------------------------------------------------ 
#> careerResults[[i]]$studyNr: 10
#> [1] "supported"



careerResults[[2]]
#>    studyNr  var1  var2 sesoi  n power         r            p   sig
#> 1        1 var_2 var_1   0.3 85   0.8 0.3488387 1.068121e-03  TRUE
#> 2        1 var_3 var_2   0.3 85   0.8 0.2558009 1.813226e-02  TRUE
#> 3        2 var_2 var_1   0.3 85   0.8 0.3443884 1.249093e-03  TRUE
#> 4        2 var_3 var_2   0.3 85   0.8 0.5158367 4.362132e-07  TRUE
#> 5        3 var_2 var_1   0.3 85   0.8 0.3194192 2.884607e-03  TRUE
#> 6        3 var_3 var_2   0.3 85   0.8 0.3122007 3.628071e-03  TRUE
#> 7        4 var_2 var_1   0.3 85   0.8 0.2267501 3.690220e-02  TRUE
#> 8        4 var_3 var_2   0.3 85   0.8 0.2767295 1.035268e-02  TRUE
#> 9        5 var_2 var_1   0.3 85   0.8 0.1942767 7.480814e-02 FALSE
#> 10       5 var_3 var_2   0.3 85   0.8 0.2019625 6.379884e-02 FALSE
#> 11       6 var_2 var_1   0.3 85   0.8 0.1493453 1.725130e-01 FALSE
#> 12       6 var_3 var_2   0.3 85   0.8 0.6022465 1.078955e-09  TRUE
#> 13       7 var_2 var_1   0.3 85   0.8 0.1805335 9.824774e-02 FALSE
#> 14       7 var_3 var_2   0.3 85   0.8 0.3417519 1.368994e-03  TRUE
#> 15       8 var_2 var_1   0.3 85   0.8 0.1904412 8.084578e-02 FALSE
#> 16       8 var_3 var_2   0.3 85   0.8 0.3507900 9.965614e-04  TRUE
#> 17       9 var_2 var_1   0.3 85   0.8 0.1703572 1.190487e-01 FALSE
#> 18       9 var_3 var_2   0.3 85   0.8 0.4217152 5.828923e-05  TRUE
#> 19      10 var_2 var_1   0.3 85   0.8 0.2186019 4.443655e-02  TRUE
#> 20      10 var_3 var_2   0.3 85   0.8 0.4843039 2.649564e-06  TRUE
#>    study_prop_sig power_posthoc
#> 1             1.0     0.9122105
#> 2             1.0     0.6632035
#> 3             1.0     0.9046400
#> 4             1.0     0.9993890
#> 5             1.0     0.8538267
#> 6             1.0     0.8364545
#> 7             1.0     0.5558066
#> 8             1.0     0.7344499
#> 9             0.0     0.4329087
#> 10            0.0     0.4616908
#> 11            0.5     0.2777096
#> 12            0.5     0.9999941
#> 13            0.5     0.3826466
#> 14            0.5     0.8999472
#> 15            0.5     0.4187037
#> 16            0.5     0.9153927
#> 17            0.5     0.3467987
#> 18            0.5     0.9835813
#> 19            1.0     0.5248361
#> 20            1.0     0.9978219

To do for future us for a future paper

  • uitvinden welke ‘non-edges’ er zijn
  • die ook toetsen
  • partiele correlaties (of p-values uit regressies) voor conditional independence
  • beslissingsregels voor:
    • geen verband
    • wel verband
    • conditional independence (en dus unconditional dependence)
  • geagregeerde beslissingsregels (over hele dag)
  • post-hoc power toevoegen