-
Notifications
You must be signed in to change notification settings - Fork 2
/
Figures.R
3205 lines (3205 loc) · 180 KB
/
Figures.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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# ########## Helper functions ##########
# addA = function(col, alpha = 0.25) apply(sapply(col, col2rgb)/255, 2, function(x) rgb(x[1], x[2], x[3], alpha=alpha))
#
# # calculate p-values by z-statistic
# get_p_from_z = function(obj) {
# z = obj$estimate_effect / obj$se_effect
# p = 2*stats::pnorm(abs(z),lower.tail = FALSE)
# return(p)
# }
#
# # calculate p-values by z-statistic
# change_to_z = function(obj, beta = 0.4) {
# p_value = get_p_from_z(obj)
# coverage = ((obj$estimate_effect - (1.96*obj$se_effect)) < beta ) & ( beta < (obj$estimate_effect + (1.96*obj$se_effect)))
# data = data.frame(cbind(obj[,1], p_value, obj[,3], coverage))
# colnames(data) = colnames(obj)
# return(data)
# }
#
# # calculate confidence intervals for temperature effect based on z-statistic
# get_confidence_interval = function(object) {
# conf = cbind(
# object$results_w_lme4_reml$estimate_effect - 1.96*object$results_w_lme4_reml$se_effect,
# object$results_w_lme4_reml$estimate_effect + 1.96*object$results_w_lme4_reml$se_effect)
# return(as.integer(0.4 > conf[,1] & 0.4 < conf[,2]))
# }
#
# # assign color
# ff = function(i) {
# if(i == 1) return(cols[1])
# if(i == 2) return(cols[2])
# if(i == 4) return(cols[3])
# if(i == 7) return(cols[4])
# }
#
#
#
# ########## _________________________________ ##########
# ########## Random intercept only ##########
# ########## _________________________________ ##########
# results_lmm = readRDS("Results/results_mountain_lmm_random_intercept_only_0.1_unbalanced.Rds")
# results_glmm = readRDS("Results/results_mountain_glmm_random_intercept_only_100_unbalanced.Rds")
# results_miss = readRDS("Results/results_mountain_lmm_random_intercept_only_miss_specified_no_cov_0.1_unbalanced.Rds")
# ########## __Figure 1 Random intercept only Type I, Error, etc. for lmm ##########
#
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
#
# cols = RColorBrewer::brewer.pal(5, "Set1")
# lty = c(1, 1, 2, 2)
# pch = c(15, 16:18)
#
# cex_legend = 0.9
# labels = c("Height ~ T + (1|mountain)",
# "Height ~ T + (1|mountain) + (0 + T|mountain)",
# "Height ~ 0 + T + mountain",
# "Height ~ T ")
#
#
# ## Type I error ##
# pdf(file = "Figures/Fig_1.pdf", width = 9.2, height = 7.8)
# si = c(0)
# si2 = c(0, 1)
# par(mfrow = c(2,2), mar = c(2.1, 2.4, 1.5, 1), oma = c(4, 3, 3, 1)-1)
# type_one_int =
# cbind(
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) mean(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "a", cex = 1.2, xpd = NA, font = 2)
# text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l)get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2]))
# )
# mm = type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
# #text(-0.5, 0.55, labels = "A", cex = 1.3, font = 2, xpd =NA)
# #axis(1, at = 1:7, labels = 2:8)
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of levels")
# text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
# text(x=0.5, pos = 2, y = 1.1, labels = "b", cex = 1.2, xpd = NA, font = 2)
#
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2]))
# )
# mm =1-type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
#
# ## glmm
# cols = RColorBrewer::brewer.pal(4, "Set1")
# cols = c(cols[-2])
# lty = c(1, 1, 2)
# type_one_int =
# cbind(
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) mean(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "c", cex = 1.2, xpd = NA, font = 2)
#
# axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si])) )), #lme4
# sapply(results_glmm, function(l) sd(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si])))), #lm
# sapply(results_glmm, function(l) sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si])))) #lm
# )
# mm =type_one_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# axis(1, at = 1:7, labels = 2:8)
# text(x=0.5, pos = 2, y = 1.1, labels = "d", cex = 1.2, xpd = NA, font = 2)
# legend("bottomright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na( l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), #lme4
# sapply(results_glmm, function(l) sd(l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na( l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), # glmmTMB
# sapply(results_glmm, function(l) sd(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))) #lm
# )
# mm =1-type_two_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
# dev.off()
#
#
# ########## __Figure S8 Random intercept only Type I, Error, etc. for lmm with SI ##########
#
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
#
# cols = RColorBrewer::brewer.pal(5, "Set1")
# lty = c(1, 1, 2, 2)
# pch = c(15, 16:18)
#
# cex_legend = 0.9
# labels = c("Height ~ T + (1|mountain)",
# "Height ~ T + (1|mountain) + (0 + T|mountain)",
# "Height ~ 0 + T + mountain",
# "Height ~ T ")
#
#
# ## Type I error ##
# pdf(file = "Figures/Fig_S8.pdf", width = 9.2, height = 7.8)
# si = c(0, 1)
# si2 = c(0, 1)
# par(mfrow = c(2,2), mar = c(2.1, 2.4, 1.5, 1), oma = c(4, 3, 3, 1)-1)
# type_one_int =
# cbind(
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) mean(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "a", cex = 1.2, xpd = NA, font = 2)
# text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l)get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2]))
# )
# mm = type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
# #text(-0.5, 0.55, labels = "A", cex = 1.3, font = 2, xpd =NA)
# #axis(1, at = 1:7, labels = 2:8)
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of levels")
# text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
# text(x=0.5, pos = 2, y = 1.1, labels = "b", cex = 1.2, xpd = NA, font = 2)
#
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2]))
# )
# mm =1-type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
#
# ## glmm
# cols = RColorBrewer::brewer.pal(4, "Set1")
# cols = c(cols[-2])
# lty = c(1, 1, 2)
# type_one_int =
# cbind(
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) mean(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "c", cex = 1.2, xpd = NA, font = 2)
#
# axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si])) )), #lme4
# sapply(results_glmm, function(l) sd(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si])))), #lm
# sapply(results_glmm, function(l) sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si])))) #lm
# )
# mm =type_one_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# axis(1, at = 1:7, labels = 2:8)
# text(x=0.5, pos = 2, y = 1.1, labels = "d", cex = 1.2, xpd = NA, font = 2)
# legend("bottomright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na( l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), #lme4
# sapply(results_glmm, function(l) sd(l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na( l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), # glmmTMB
# sapply(results_glmm, function(l) sd(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))) #lm
# )
# mm =1-type_two_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
# dev.off()
#
#
# ########## __Figure S9 Random intercept only Type I, Error, etc. for intercept ##########
#
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
#
# cols = RColorBrewer::brewer.pal(5, "Set1")
# lty = c(1, 1, 2, 2)
# pch = c(15, 16:18)
#
# cex_legend = 0.9
# labels = c("Height ~ T + (1|mountain)",
# "Height ~ T + (1|mountain) + (0 + T|mountain)",
# "Height ~ 0 + T + mountain",
# "Height ~ T ")
#
#
# ## Type I error ##
# pdf(file = "Figures/Fig_S9.pdf", width = 9.2, height = 7.8)
# si = c(0, 1)
# si2 = c(0, 1)
# par(mfrow = c(2,2), mar = c(2.1, 2.4, 1.5, 1), oma = c(4, 3, 3, 1)-1)
# type_one_int =
# cbind(
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) mean(l$results_wo_lm$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) mean(l$results_wo_lm_wo_grouping$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "a", cex = 1.2, xpd = NA, font = 2)
# text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l)get_sd(l$results_wo_lme4_reml$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_inter[l$results_wo_lme4_reml$Singularity %in% si2]))
# )
# mm = type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
# #text(-0.5, 0.55, labels = "A", cex = 1.3, font = 2, xpd =NA)
# #axis(1, at = 1:7, labels = 2:8)
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_inter[l$results_w_lme4_reml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_inter[l$results_w_lme4_reml$Singularity %in% si] < 0.05)),
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm$p_value_inter[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_inter[l$results_w_lme4_reml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of levels")
# text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
# text(x=0.5, pos = 2, y = 1.1, labels = "b", cex = 1.2, xpd = NA, font = 2)
#
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_inter[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_inter[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_inter[l$results_w_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_inter[l$results_w_lme4_reml$Singularity %in% si2]))
# )
# mm =1-type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
#
# ## glmm
# cols = RColorBrewer::brewer.pal(4, "Set1")
# cols = c(cols[-2])
# lty = c(1, 1, 2)
# type_one_int =
# cbind(
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_inter[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lm$p_value_inter[l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) mean(l$results_wo_lm_wo_grouping$p_value_inter[l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "c", cex = 1.2, xpd = NA, font = 2)
#
# axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si])) )), #lme4
# sapply(results_glmm, function(l) sd(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si])))), #lm
# sapply(results_glmm, function(l) sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt(sum(!is.na(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si])))) #lm
# )
# mm =type_one_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# axis(1, at = 1:7, labels = 2:8)
# text(x=0.5, pos = 2, y = 1.1, labels = "d", cex = 1.2, xpd = NA, font = 2)
# legend("bottomright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "), col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm, function(l) sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)/sqrt( sum(!is.na( l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), #lme4
# sapply(results_glmm, function(l) sd(l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na( l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))), # glmmTMB
# sapply(results_glmm, function(l) sd(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)/sqrt( sum(!is.na(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] )))) #lm
# )
# mm =1-type_two_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
# dev.off()
#
#
#
#
# ########## __Figure S12 Random intercept different SD for random effect ##########
#
# cols = RColorBrewer::brewer.pal(4, "Set1")
# #cols = c(cols[1], cols, cols[3])
# lty = c(1, 1, 2, 2)
# cex_legend = 0.9
# ## Type I error ##
# pdf(file = "Figures/Fig_S12.pdf", width = 9.2, height = 8.8)
#
# sd_results = c("0.01", "0.1", "0.5", "2")
# par(mfrow = c(4,3), mar = c(0.1, 2.4, 1, 1), oma = c(5, 3, 3, 1)-1)
# labels = letters[1:4]
# xlab = ""
#
# si = c(0)
# si2 = c(0, 1)
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
# for(i in 1:4){
#
# results_lmm = readRDS(paste0("Results/results_mountain_lmm_random_intercept_only_", sd_results[i],"_unbalanced.Rds"))
# results_miss = readRDS(paste0("Results/results_mountain_lmm_random_intercept_only_miss_specified_no_cov_", sd_results[i],"_unbalanced.Rds"))
#
# if(i == 4) xlab = "Number of mountains"
#
# type_one_int =
# cbind(
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si ]< 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si ]< 0.05)),
# sapply(results_lmm, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) mean(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = xlab, xpd = NA)
# text(x=-0.2, pos = 2, y = 0.55, labels = labels[i], cex = 1.2, xpd = NA, font = 2)
# if(i == 1) text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = c("Height ~ T + (1|mountain)", "Height ~ T + (1|mountain) + (0 + T|mountain)", "Height ~ 0 + T + mountain", "Height ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si ])), #lme4
# sapply(results_miss, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si ])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2 ])), #lm
# sapply(results_lmm, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2 ] )) #lm w/go goruping
# )
# mm = type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
# #text(-0.5, 0.55, labels = "A", cex = 1.3, font = 2, xpd =NA)
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si ] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si ] < 0.05)),
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = xlab, xpd=NA)
# if(i == 1) text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
#
# legend("bottomright", legend = c("Height ~ T + (1|mountain)", "Height ~ T + (1|mountain) + (0 + T|mountain)", "Height ~ 0 + T + mountain", "Height ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_effect)), #lme4
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_effect)),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_effect)), #lm
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect)) #lm w/go goruping
# )
# mm =1-type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
#
# # coverage
# type_two_int =
# cbind(
# sapply(results_lmm, function(l) mean(l$results_w_lme4_reml$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si ] )), #lme4
# sapply(results_miss, function(l) mean(l$results_w_lme4_reml$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si ] )), #lme4
# sapply(results_lmm, function(l) mean(l$results_w_lm$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si2 ] , na.rm=TRUE)), #lm
# sapply(results_lmm, function(l) mean(l$results_w_lm_wo_grouping$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si2 ] , na.rm=TRUE)) #lm
# )
#
# matplot(type_two_int, type="o", ylim = c(0.5, 1.0), pch = 15:19, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = xlab, xpd=NA)
# if(i == 1) text(x= 4, pos = 3, y = 1.02, xpd = NA, labels = "Coverage")
#
# legend("bottomright", legend = c("Height ~ T + (1|mountain)", "Height ~ T + (1|mountain) + (0 + T|mountain)", "Height ~ 0 + T + mountain", "Height ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.95, lty = 3, col = "darkgrey")
#
# sd =
# cbind(
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si ] )), #lme4
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si ] )), #lme4
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si2 ] )), #lm
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$Slope_in_conf[l$results_w_lme4_reml$Singularity %in% si2 ])) #lm
# )
#
# mm =type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
# }
#
#
# dev.off()
#
#
#
#
#
#
#
# ########## __Figure S14 Random intercept different number of observations for GLMM ##########
# files = c("Results/results_mountain_glmm_random_intercept_only_25_unbalanced.Rds",
# "Results/results_mountain_glmm_random_intercept_only_50_unbalanced.Rds",
# "Results/results_mountain_glmm_random_intercept_only_100_unbalanced.Rds",
# "Results/results_mountain_glmm_random_intercept_only_200_unbalanced.Rds")
#
# pdf("Figures/Fig_S14.pdf", width = 9.2, height = 8.8)
# par(mfrow = c(4,3), mar = c(0.1, 2.4, 1, 1), oma = c(5, 3, 3, 1)-1)
# cols = RColorBrewer::brewer.pal(3, "Set1")
# labels = letters[1:4]
# cex_legend = 0.9
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
# si = c(0)
# si2 = c(0, 1)
# for(i in 1:4) {
#
# results_glmm = readRDS(files[i])
#
# if(i == 4) xlab = "Number of mountains"
# else xlab = ""
#
#
# ## glmm
# cols = RColorBrewer::brewer.pal(4, "Set1")
# cols = c(cols[-2])
# lty = c(1, 1, 2)
# type_one_int =
# cbind(
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si ] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) mean(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = xlab, xpd = NA)
# text(x=-0.2, pos = 2, y = 0.55, labels = labels[i], cex = 1.2, xpd = NA, font = 2)
# if(i == 1) text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
#
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm, function(l) get_sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si ] )), #lme4
# sapply(results_glmm, function(l) get_sd(l$results_wo_lm[[2]][l$results_wo_lme4_ml$Singularity %in% si2 ] )), #lm
# sapply(results_glmm, function(l) get_sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2 ] )) #lm
# )
# mm =type_one_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si ] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2 ] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = xlab, xpd = NA)
# if(i == 1) text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
#
# pos = "topright"
# if(i >2) pos = "bottomright"
# legend(pos, legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm, function(l) get_sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si ])), #lme4
# sapply(results_glmm, function(l) get_sd(l$results_w_glmmTMB_reml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2 ])), # glmmTMB
# sapply(results_glmm, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2 ] )) #lm
# )
# mm =1-type_two_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
#
# ## Coverage ##
# type_two_int =
# cbind(
# sapply(results_glmm, function(l) mean(l$results_w_lme4_ml$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si ] )), #lme4
# sapply(results_glmm, function(l) mean(l$results_w_lm$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si2 ] , na.rm=TRUE)), #lm
# sapply(results_glmm, function(l) mean(l$results_w_lm_wo_grouping$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si2 ] , na.rm=TRUE)) #lm
# )
#
#
# matplot(type_two_int, type="o", ylim = c(0.5, 1.0), pch = 15:18, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = xlab, xpd = NA)
# if(i == 1) text(x= 4, pos = 3, y = 1.02, xpd = NA, labels = "Coverage")
# abline(h = 0.95, lty = 3, col = "darkgrey")
#
# if(i == 4) axis(1, at = 1:7, labels = 2:8)
# legend("bottomright", legend = c("RS ~ T + (1|mountain)", "RS ~ 0 + T + mountain", "RS ~ T "),
# col = cols, pch = 15:19, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm, function(l) get_sd(l$results_w_lme4_ml$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si ] )), #lme4
# sapply(results_glmm, function(l) get_sd(l$results_w_glmmTMB_reml$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si2 ])), # glmmTMB
# sapply(results_glmm, function(l) get_sd(l$results_w_lm$Slope_in_conf[l$results_w_lme4_ml$Singularity %in% si2 ])) #lm
# )
# mm =type_two_int
# upper = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar=0.1)$y)
# lower = sapply(1:3, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar=0.1)$y)
# sapply(1:3, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
# }
# dev.off()
#
#
#
#
# ########## _________________________________ ##########
# ########## Random intercept and Random slope ##########
# ########## _________________________________ ##########
# ########## __Figure 2 Random intercept + slope Type I, Error, etc. for lmm ##########
#
# results_lmm_no_cov = readRDS("Results/results_mountain_lmm_no_cov_0.1_100_unbalanced.Rds")
# results_lmm = readRDS("Results/results_mountain_lmm_0.1_100_unbalanced.Rds")
# results_glmm = readRDS("Results/results_mountain_glmm_0.1_200_unbalanced.Rds")
# results_glmm_no_cov = readRDS("Results/results_mountain_glmm_no_cov_0.1_200_unbalanced.Rds")
# results_miss = readRDS("Results/results_mountain_lmm_miss_specified_0.1_100_unbalanced.Rds")
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
#
#
# pdf(file = "Figures/Fig_2.pdf", width = 9.2, height = 7.8)
#
#
# si = c(0)
# si2 = c(0, 1)
# cols2 = RColorBrewer::brewer.pal(5, "Set1")
# cols = c(cols2[1], cols2[5], cols2[2:4])
# #cols = c(cols[1], cols, cols[3])
# lty = c(1, 1,1, 2, 2)
# pch = c(15, 20, 16:18)
# cex_legend = 0.9
# ## Type I error ##
#
#
#
# par(mfrow = c(2,2), mar = c(2.1, 2.4, 1.5, 1), oma = c(4, 3, 3, 1)-1)
# labels = c("Height ~ T + (1|mountain) + (0 + T|mountain)",
# "Height ~ T + (T|mountain)",
# "Height ~ T + (1|mountain)",
# "Height ~ 0 + mountain + T : mountain",
# "Height ~ T ")
# type_one_int =
# cbind(
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si]< 0.05)), #lme4
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si]< 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si]< 0.05)),
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "a", cex = 1.2, xpd = NA, font = 2)
# text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2]))
# )
# mm = type_one_int
# upper = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:5, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)), #lme4
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)),
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of levels")
# text(x=0.5, pos = 2, y = 1.1, labels = "b", cex = 1.2, xpd = NA, font = 2)
#
# text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
#
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2]))
# )
# mm =1-type_two_int
# upper = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:5, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
#
#
# ## glmm
# cols2 = RColorBrewer::brewer.pal(5, "Set1")
# cols = c(cols2[1], cols2[5], cols2[2:4])
# cols = cols[-3]
# lty = c(1, 1, 2, 2)
# pch = c(15, 20, 17:18)
# si = c(0)
# labels = c("RS ~ T + (1|mountain) + (0 + T|mountain)",
# "RS ~ T + (T|mountain)","RS ~ 0 + mountain + T : mountain", "RS ~ T ")
# type_one_int =
# cbind(
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "c", cex = 1.2, xpd = NA, font = 2)
#
#
# axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] )),
# sapply(results_glmm, function(l) get_sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] )),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si2] )),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] ))
# )
# mm =type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 1.1, labels = "d", cex = 1.2, xpd = NA, font = 2)
#
# axis(1, at = 1:7, labels = 2:8)
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si])),
# sapply(results_glmm, function(l) get_sd(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si])),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2])),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] ))
# )
# mm =1-type_two_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
#
# dev.off()
#
#
# ########## __Figure S10 Random intercept + slope Type I, Error, etc. for lmm with SI ##########
#
# results_lmm_no_cov = readRDS("Results/results_mountain_lmm_no_cov_0.1_100_unbalanced.Rds")
# results_lmm = readRDS("Results/results_mountain_lmm_0.1_100_unbalanced.Rds")
# results_glmm = readRDS("Results/results_mountain_glmm_0.1_200_unbalanced.Rds")
# results_glmm_no_cov = readRDS("Results/results_mountain_glmm_no_cov_0.1_200_unbalanced.Rds")
# results_miss = readRDS("Results/results_mountain_lmm_miss_specified_0.1_100_unbalanced.Rds")
#
# get_sd = function(v) sd(v < 0.05, na.rm=TRUE) / sum(!is.na(v))
#
#
# pdf(file = "Figures/Fig_S10.pdf", width = 9.2, height = 7.8)
#
#
# si = c(0,1)
# si2 = c(0, 1)
# cols2 = RColorBrewer::brewer.pal(5, "Set1")
# cols = c(cols2[1], cols2[5], cols2[2:4])
# #cols = c(cols[1], cols, cols[3])
# lty = c(1, 1,1, 2, 2)
# pch = c(15, 20, 16:18)
# cex_legend = 0.9
# ## Type I error ##
#
#
#
# par(mfrow = c(2,2), mar = c(2.1, 2.4, 1.5, 1), oma = c(4, 3, 3, 1)-1)
# labels = c("Height ~ T + (1|mountain) + (0 + T|mountain)",
# "Height ~ T + (T|mountain)",
# "Height ~ T + (1|mountain)",
# "Height ~ 0 + mountain + T : mountain",
# "Height ~ T ")
# type_one_int =
# cbind(
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si]< 0.05)), #lme4
# sapply(results_lmm, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si]< 0.05)), #lme4
# sapply(results_miss, function(l) mean(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si]< 0.05)),
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm_no_cov, function(l) mean(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)) #lm w/go goruping
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "a", cex = 1.2, xpd = NA, font = 2)
# text(x= 4, pos = 3, y = 0.52, xpd = NA, labels = "Type I error")
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_wo_lme4_reml$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si])),
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_wo_lm_wo_grouping$p_value_effect[l$results_wo_lme4_reml$Singularity %in% si2]))
# )
# mm = type_one_int
# upper = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:5, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)), #lme4
# sapply(results_lmm, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)), #lme4
# sapply(results_miss, function(l) 1-mean(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity%in% si] < 0.05)),
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_lmm_no_cov, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity%in% si2] < 0.05, na.rm=TRUE)) #lm
# )
# matplot(1-type_two_int, type="o", ylim = c(0, 1.0), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "", xaxt="n", main = "", xlab = "Number of levels")
# text(x=0.5, pos = 2, y = 1.1, labels = "b", cex = 1.2, xpd = NA, font = 2)
#
# text(x= 4, pos = 3, y = 1.04, xpd = NA, labels = "Power")
#
# legend("bottomright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# sd =
# cbind(
# sapply(results_lmm_no_cov, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_miss, function(l) get_sd(l$results_w_lme4_reml$p_value_effect[l$results_w_lme4_reml$Singularity %in% si])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2])),
# sapply(results_lmm, function(l) get_sd(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_reml$Singularity %in% si2]))
# )
# mm =1-type_two_int
# upper = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:5, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:5, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.3)))
#
#
#
# ## glmm
# cols2 = RColorBrewer::brewer.pal(5, "Set1")
# cols = c(cols2[1], cols2[5], cols2[2:4])
# cols = cols[-3]
# lty = c(1, 1, 2, 2)
# pch = c(15, 20, 17:18)
# labels = c("RS ~ T + (1|mountain) + (0 + T|mountain)",
# "RS ~ T + (T|mountain)","RS ~ 0 + mountain + T : mountain", "RS ~ T ")
# type_one_int =
# cbind(
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) mean(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lm$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm_no_cov, function(l) mean(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )
#
# matplot(type_one_int, type="o", ylim = c(0, 0.5), pch = pch, las = 1, lty = lty, col = cols,
# ylab = "Rate", xaxt="n", main = "", xlab = "Number of mountains", xpd = NA)
# text(x=0.5, pos = 2, y = 0.55, labels = "c", cex = 1.2, xpd = NA, font = 2)
#
#
# axis(1, at = 1:7, labels = 2:8)
# legend("topright", legend = labels,
# col = cols, pch = pch, bty = "n", lty = lty, cex = cex_legend)
# abline(h = 0.05, lty = 3, col = "darkgrey")
# sd =
# cbind(
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] )),
# sapply(results_glmm, function(l) get_sd(l$results_wo_lme4_ml$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si] )),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lm$p_value_effect[l$results_wo_lme4_ml$Singularity %in% si2] )),
# sapply(results_glmm_no_cov, function(l) get_sd(l$results_wo_lm_wo_grouping[[2]][l$results_wo_lme4_ml$Singularity %in% si2] ))
# )
# mm =type_one_int
# upper = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm+sd)[,i], spar = 0.1)$y)
# lower = sapply(1:4, function(i) smooth.spline(x=1:7, y = (mm-sd)[,i], spar = 0.1)$y)
# sapply(1:4, function(i) polygon(c(1:7, 7:1), c(upper[,i], rev(lower[,i])),border = NA, col =addA(cols[i], 0.10)))
# #text(-0.5, 0.55, labels = "B", cex = 1.3, font = 2, xpd =NA)
#
#
# ## Power ##
# type_two_int =
# cbind(
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm, function(l) 1-mean(l$results_w_lme4_ml$p_value_effect[l$results_w_lme4_ml$Singularity %in% si] < 0.05)), #lme4
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lm$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)), #lm
# sapply(results_glmm_no_cov, function(l) 1-mean(l$results_w_lm_wo_grouping$p_value_effect[l$results_w_lme4_ml$Singularity %in% si2] < 0.05, na.rm=TRUE)) #lm
# )