Kapitel 45 Fehlende Daten in Meta-Analysen

Meta-Analysen muss man einfach lieben.
An dieser Seite - wie leider am ganzen Skript - wird noch gearbeitet. Die Seite ist noch nicht korrigiert.
to do:
- Mehr Studien hinzufügen, so dass ein Funnel Plot Sinn macht
- Funnel Plot (2 Varianten)
- Check Formeln
library(kableExtra)
library(tidyverse)
library(ggpubr)
library(rstatix)
library(broom)
Beim extrahieren von Daten fehlen uns oft Informationen die wir benötigen.
45.1 F-Test wird angegeben, aber kein mean und keine sd
set.seed(666)
<-sample(c("control", "intervention"), size=100, rep=TRUE)
group<-1:100
id<-data.frame(id, group)
data
<-data %>%
datamutate(pain_t0=rnorm(100, 6,2)) %>%
mutate(pain_change=case_when(
=="control"~rnorm(length(pain_t0), -1, 3),
group=="intervention"~rnorm(length(pain_t0), -4, 3)
group%>%
)) mutate(pain_t1 = pain_t0-pain_change)
data
## id group pain_t0 pain_change pain_t1
## 1 1 intervention 6.3950526 -5.43134776 11.8264003
## 2 2 intervention 8.3634196 -3.15819820 11.5216178
## 3 3 intervention 4.5986907 -4.03638630 8.6350770
## 4 4 control 4.7866300 -0.96335397 5.7499840
## 5 5 control 4.9886163 -6.12365738 11.1122737
## 6 6 intervention 4.3583530 -6.41443414 10.7727871
## 7 7 intervention 5.5277577 1.11066880 4.4170889
## 8 8 control 4.4605928 3.42683037 1.0337624
## 9 9 control 7.4399887 1.15177924 6.2882095
## 10 10 intervention 8.5599010 -3.20142856 11.7613296
## 11 11 control 4.0126403 -1.58847076 5.6011111
## 12 12 intervention 4.1878226 0.58638152 3.6014411
## 13 13 control 3.3635393 -2.48508846 5.8486277
## 14 14 control 9.8689886 5.57526466 4.2937240
## 15 15 control 7.3561252 -4.72140960 12.0775348
## 16 16 control 5.1950483 0.87362918 4.3214191
## 17 17 intervention 6.3710878 -2.86259084 9.2336786
## 18 18 control 6.7996892 3.03583856 3.7638506
## 19 19 intervention 9.2879909 -5.93718900 15.2251799
## 20 20 intervention 5.8757020 -5.36072509 11.2364271
## 21 21 control 5.3671745 -2.04634551 7.4135200
## 22 22 intervention 5.7086700 -11.19716214 16.9058322
## 23 23 control 7.4072144 2.98376100 4.4234534
## 24 24 intervention 6.3833705 -4.15695001 10.5403205
## 25 25 intervention 3.5442404 -9.67843301 13.2226734
## 26 26 intervention 5.8681154 -5.52012854 11.3882440
## 27 27 control 4.4282467 -2.10076483 6.5290115
## 28 28 intervention 0.1136122 -1.85868800 1.9723002
## 29 29 control 4.7446815 3.59617936 1.1485021
## 30 30 intervention 4.8936747 -4.48083525 9.3745100
## 31 31 intervention 8.9792238 0.51363354 8.4655903
## 32 32 control 7.7752764 -8.85767988 16.6329563
## 33 33 control 5.3431993 -5.07994678 10.4231461
## 34 34 intervention 3.4333077 -2.59323857 6.0265463
## 35 35 intervention 5.9712307 -11.61619049 17.5874212
## 36 36 intervention 8.0106759 -4.25651015 12.2671860
## 37 37 control 6.8062257 -1.44691004 8.2531357
## 38 38 intervention 8.8650162 -7.57104337 16.4360595
## 39 39 intervention 6.2746823 -0.96292672 7.2376090
## 40 40 control 3.3169859 -2.53408486 5.8510707
## 41 41 intervention 5.0260322 -5.54235611 10.5683883
## 42 42 intervention 4.2000771 -6.07179470 10.2718718
## 43 43 intervention 6.6409617 -7.87223174 14.5131934
## 44 44 intervention 6.6294598 -8.58295933 15.2124192
## 45 45 intervention 3.9184125 -5.88209891 9.8005114
## 46 46 intervention 6.7708884 -7.82472613 14.5956145
## 47 47 intervention 7.5951095 -4.05271651 11.6478261
## 48 48 intervention 4.8925964 -0.12632656 5.0189229
## 49 49 intervention 6.3546264 -8.96513034 15.3197568
## 50 50 intervention 6.0859701 -5.93815631 12.0241264
## 51 51 control 4.1051854 5.06323396 -0.9580486
## 52 52 intervention 2.3665786 -3.94327211 6.3098507
## 53 53 control 9.9711634 -1.78228265 11.7534460
## 54 54 control 7.6335271 3.01655658 4.6169705
## 55 55 intervention 4.0007172 -9.52966471 13.5303819
## 56 56 intervention 7.1222445 -4.24468905 11.3669335
## 57 57 intervention 4.4398974 -3.08443882 7.5243362
## 58 58 intervention 7.3565100 0.26618243 7.0903276
## 59 59 control 3.8951112 2.70281633 1.1922948
## 60 60 control 4.5916875 -0.35087152 4.9425590
## 61 61 control 4.0987013 -0.13258680 4.2312881
## 62 62 intervention 5.6266686 -8.65604215 14.2827107
## 63 63 control 8.4638880 0.51980629 7.9440817
## 64 64 control 3.2844340 -2.74297534 6.0274093
## 65 65 control 5.3783860 -3.26374343 8.6421294
## 66 66 intervention 8.1444675 -0.79563828 8.9401057
## 67 67 intervention 2.6240986 0.04423637 2.5798622
## 68 68 intervention 5.1014183 -5.59054308 10.6919613
## 69 69 intervention 5.5643629 -8.76760073 14.3319636
## 70 70 intervention 1.8997763 -7.73466991 9.6344462
## 71 71 control 4.4526206 -4.76279245 9.2154130
## 72 72 intervention 8.4670562 -3.49328714 11.9603433
## 73 73 control 7.2758872 2.15247782 5.1234094
## 74 74 control 8.0548518 -5.58949686 13.6443486
## 75 75 intervention 5.5563948 0.91847178 4.6379230
## 76 76 control 8.2845195 -0.80955626 9.0940757
## 77 77 intervention 6.5177998 -1.50133701 8.0191368
## 78 78 intervention 5.0048918 -2.09720471 7.1020965
## 79 79 control 6.7442049 -1.04077621 7.7849811
## 80 80 intervention 3.7130157 -2.04641661 5.7594323
## 81 81 intervention 7.3659224 -1.24174641 8.6076688
## 82 82 intervention 7.5464063 0.90200658 6.6443997
## 83 83 control 4.9495096 1.30919786 3.6403117
## 84 84 intervention 3.7565961 -0.93608559 4.6926817
## 85 85 control 5.0009716 0.36912027 4.6318513
## 86 86 control 6.7019379 -0.55181929 7.2537572
## 87 87 intervention 5.6395536 -0.95504360 6.5945972
## 88 88 intervention -0.2975736 -11.71592490 11.4183513
## 89 89 control 3.2868483 -4.43250343 7.7193517
## 90 90 control 8.0684875 -3.23493145 11.3034190
## 91 91 intervention 11.1578490 -6.12819005 17.2860391
## 92 92 intervention 3.5599447 -6.92113417 10.4810789
## 93 93 intervention 7.1877104 0.15600741 7.0317030
## 94 94 control 8.9600538 -2.82465916 11.7847129
## 95 95 intervention 7.1892963 -1.87977881 9.0690752
## 96 96 control 3.9846259 -0.43150732 4.4161332
## 97 97 intervention 7.3029514 -2.32787839 9.6308298
## 98 98 control 9.0243594 0.95871623 8.0656431
## 99 99 intervention 6.2249683 -5.73042267 11.9553909
## 100 100 control 6.3102053 1.90084114 4.4093641
[https://www.datanovia.com/en/lessons/ancova-in-r/#:~:text=The%20Analysis%20of%20Covariance%20(ANCOVA,two%20or%20more%20independent%20groups.](https://www.datanovia.com/en/lessons/ancova-in-r/#:~:text=The%20Analysis%20of%20Covariance%20(ANCOVA,two%20or%20more%20independent%20groups.)
ggscatter(
x = "pain_t0", y = "pain_t1",
data, color = "group", add = "reg.line"
+
)stat_regline_equation(
aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~~"), color = group)
)
## Warning: The dot-dot notation (`..eq.label..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(eq.label)` instead.
## ℹ The deprecated feature was likely used in the ggpubr package.
## Please report the issue at <]8;;https://github.com/kassambara/ggpubr/issueshttps://github.com/kassambara/ggpubr/issues]8;;>.
## `geom_smooth()` using formula = 'y ~ x'
### Homogenität der Regressionssteigungen
Mit dieser Annahme wird überprüft, dass es keine signifikante Interaktion zwischen der Kovariate und der Gruppierungsvariable gibt. Dies kann wie folgt bewertet werden:
%>% anova_test(pain_t1 ~ group*pain_t0) data
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 group 1 96 26.828 1.23e-06 * 0.218
## 2 pain_t0 1 96 24.061 3.80e-06 * 0.200
## 3 group:pain_t0 1 96 0.143 7.06e-01 0.001
Bei uns gibt es eine Interaktion zwischen der Gruppe und der Variable pain_t0.
<- data %>% anova_test(pain_t1 ~ pain_t0 + group)
res.aov get_anova_table(res.aov)
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 pain_t0 1 97 24.275 3.44e-06 * 0.200
## 2 group 1 97 27.067 1.10e-06 * 0.218
<- data %>% anova_test(pain_t1 ~ pain_t0*group)
res.aov get_anova_table(res.aov)
## ANOVA Table (type II tests)
##
## Effect DFn DFd F p p<.05 ges
## 1 pain_t0 1 96 24.061 3.80e-06 * 0.200
## 2 group 1 96 26.828 1.23e-06 * 0.218
## 3 pain_t0:group 1 96 0.143 7.06e-01 0.001
<-data %>%
data_long::select(-pain_change) %>%
dplyrpivot_longer(cols=-c(id, group)
%>%
) rename(pain=value,
time=name,
treatment=group)

Wir lieben Meta-Analysen, aber wir lieben es noch mehr, wenn das Kapitel endlich zu Ende ist…Here we are…
<- aov(pain ~ treatment * time + Error(id), data = data_long)
demo3.aov summary(demo3.aov)
##
## Error: id
## Df Sum Sq Mean Sq
## treatment 1 0.009356 0.009356
##
## Error: Within
## Df Sum Sq Mean Sq F value Pr(>F)
## treatment 1 116.0 116.0 12.83 0.000431 ***
## time 1 412.5 412.5 45.64 1.60e-10 ***
## treatment:time 1 154.7 154.7 17.11 5.24e-05 ***
## Residuals 195 1762.7 9.0
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
t.test(data$pain_change~data$group, paired=FALSE, var.equal=TRUE)
##
## Two Sample t-test
##
## data: data$pain_change by data$group
## t = 5.2687, df = 98, p-value = 8.161e-07
## alternative hypothesis: true difference in means between group control and group intervention is not equal to 0
## 95 percent confidence interval:
## 2.229142 4.923038
## sample estimates:
## mean in group control mean in group intervention
## -0.7624918 -4.3385818
17.11 ^0.5
## [1] 4.136424
<-lm(pain_change~group, data=data)
lm.fitsummary(lm.fit)
##
## Call:
## lm(formula = pain_change ~ group, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.0952 -2.0009 0.1378 2.5258 6.3378
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.7625 0.5214 -1.463 0.147
## groupintervention -3.5761 0.6787 -5.269 8.16e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.338 on 98 degrees of freedom
## Multiple R-squared: 0.2207, Adjusted R-squared: 0.2128
## F-statistic: 27.76 on 1 and 98 DF, p-value: 8.161e-07
anova(lm.fit)
## Analysis of Variance Table
##
## Response: pain_change
## Df Sum Sq Mean Sq F value Pr(>F)
## group 1 309.35 309.352 27.759 8.161e-07 ***
## Residuals 98 1092.13 11.144
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
27.759^0.5
## [1] 5.268681
# Compute the analysis of variance
<- aov(pain_change ~ group, data = data)
res.aov # Summary of the analysis
summary(res.aov)
## Df Sum Sq Mean Sq F value Pr(>F)
## group 1 309.4 309.35 27.76 8.16e-07 ***
## Residuals 98 1092.1 11.14
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
<-lm(pain_t1~group+pain_t0, data=data)
lm.fitsummary(lm.fit)
##
## Call:
## lm(formula = pain_t1 ~ group + pain_t0, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.1987 -2.6698 -0.0331 2.1854 8.4448
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.9436 1.1077 1.755 0.0825 .
## groupintervention 3.5289 0.6783 5.203 1.10e-06 ***
## pain_t0 0.8031 0.1630 4.927 3.44e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.331 on 97 degrees of freedom
## Multiple R-squared: 0.3336, Adjusted R-squared: 0.3198
## F-statistic: 24.27 on 2 and 97 DF, p-value: 2.835e-09
<-lm(pain_t1~group, data=data)
lm.fitsummary(lm.fit)
##
## Call:
## lm(formula = pain_t1 ~ group, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.1260 -2.4476 -0.2654 1.8915 9.8709
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.7621 0.5786 11.687 < 2e-16 ***
## groupintervention 3.3363 0.7533 4.429 2.47e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.705 on 98 degrees of freedom
## Multiple R-squared: 0.1668, Adjusted R-squared: 0.1583
## F-statistic: 19.62 on 1 and 98 DF, p-value: 2.466e-05