Dokument in Arbeit

Kennzahlen

Angaben aus Tambour, M., Holt, M., Speyer, A., Christensen, R., & Gram, B. (2018). Manual lymphatic drainage adds no further volume reduction to complete decongestive therapy on breast cancer-related lymphoedema: a multicentre, randomised, single-blind trial. British journal of cancer, 119(10), 1215-1222. doi: 10.1038/s41416-018-0306-4

# EG = T+MLD
n_EG <- 38
m_EG_1 <- -4.2
se_EG_1 <- 1.1
m_EG_7 <- -6.8
se_EG_7 <- 1.2

# CG = T-MLD
n_CG <- 35
m_CG_1 <- -4.8
se_CG_1 <- 1.2
m_CG_7 <- -5.7
se_CG_7 <- 1.2

Standardabweichung aus SE berechnen

Formel zur Berechnung von SE:

\(SE = \frac{s}{\sqrt{n}}\), daraus folgt \(s = SE \times \sqrt{n}\)

s_EG_1 <- se_EG_1 * sqrt(n_EG)
s_CG_1 <- se_CG_1 * sqrt(n_CG)
s_EG_7 <- se_EG_7 * sqrt(n_EG)
s_CG_7 <- se_CG_7 * sqrt(n_CG)

Vertrauensintervall für Mittelwertsdifferenz berechnen

Formel zur Berechnung des Vertrauensintervalls:

\[CI = (\bar{x_1} - \bar{x_2} \pm z \times SE_{x_1 - x_2})\] Formel zur Berechnung des Standardfehlers SE für die Mittelwertsdifferenz:

\[SE_{x_1 - x_2} = \sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}}\]

CI_diff <- function(x1, x2, s1, s2, n1, n2, ci = .95){
  SE_diff <- sqrt((s1^2/n1) + (s2^2/n2))
  quantile <- abs(qnorm((1 - ci)/2))
  ME <- quantile * SE_diff
  CI_diff <- round((x2 - x1) + c(-1, 1) * ME, 4)
  out <- tibble(x1 = x1, 
                s1 = s1, 
                n1 = n1, 
                x2 = x2, 
                s2 = s2, 
                n2 = n2, 
                diff = (x2-x1), 
                ci_lo = CI_diff[1], 
                ci_up = CI_diff[2])
  return(out)
}

month1 <- CI_diff(m_EG_1, m_CG_1, s_EG_1, s_CG_1, n_EG, n_CG)
month7 <- CI_diff(m_EG_7, m_CG_7, s_EG_7, s_CG_7, n_EG, n_CG)

result <- bind_rows(month1, month7)
result <- result %>% 
  add_column(Monat = c(1, 7), .before = "x1")
kable(result)
Monat x1 s1 n1 x2 s2 n2 diff ci_lo ci_up
1 -4.2 6.780855 38 -4.8 7.099296 35 -0.6 -3.7906 2.5906
7 -6.8 7.397297 38 -5.7 7.099296 35 1.1 -2.2262 4.4262

p-Wert berechnen

Formel zur Berechnung von z für die Berechnung des p-Wertes

\[z_p = \frac{x_1 - x_2}{SE_{x_1 - x_2}}\]

p_value <- function(x1, x2, s1, s2, n1, n2){
  SE_diff <- sqrt((s1^2/n1) + (s2^2/n2))
  z_p <- (x2 - x1)/SE_diff
  p <- 2 * pnorm(abs(z_p), lower.tail = FALSE)
  out2 <- tibble(
    z = z_p,
    "p-Wert" = p
    )
  return(out2)
}

p1 <- p_value(m_EG_1, m_CG_1, s_EG_1, s_CG_1, n_EG, n_CG)
p7 <- p_value(m_EG_7, m_CG_7, s_EG_7, s_CG_7, n_EG, n_CG)
p <- bind_rows(p1, p7)


result <- bind_cols(result, p)
kable(result)
Monat x1 s1 n1 x2 s2 n2 diff ci_lo ci_up z p-Wert
1 -4.2 6.780855 38 -4.8 7.099296 35 -0.6 -3.7906 2.5906 -0.3685771 0.7124430
7 -6.8 7.397297 38 -5.7 7.099296 35 1.1 -2.2262 4.4262 0.6481812 0.5168677

Cohen’s d berechnen

\[d = \frac{x_2 - x_1}{s_1,_2}\]

\[s_1,_2 = \sqrt{\frac{s_1^2 \times n_1 + s_2^2 \times n_2}{n_1 + n_2}}\]

cohen_d <- function(x1, x2, s1, s2, n1, n2){
  s_paired <- sqrt((s1^2 * n1 + s2^2 * n2)/(n1 + n2))
  print(s_paired)
  d <- (x2 - x1)/s_paired
  return(d)
}

d1 <- cohen_d(m_EG_1, m_CG_1, s_EG_1, s_CG_1, n_EG, n_CG)
## [1] 6.935357
d7 <- cohen_d(m_EG_7, m_CG_7, s_EG_7, s_CG_7, n_EG, n_CG)
## [1] 7.255947
d <- tibble("Cohen's d" = round(c(d1, d7), 4))
d
## # A tibble: 2 x 1
##   `Cohen's d`
##         <dbl>
## 1     -0.0865
## 2      0.152
result <- bind_cols(result, d)
kable(result, 
      digits = 4, 
      caption = "Prozentuale Abnahme des Volumens des betroffenen Armes, 1 = EG, 2 = CG")
Prozentuale Abnahme des Volumens des betroffenen Armes, 1 = EG, 2 = CG
Monat x1 s1 n1 x2 s2 n2 diff ci_lo ci_up z p-Wert Cohen’s d
1 -4.2 6.7809 38 -4.8 7.0993 35 -0.6 -3.7906 2.5906 -0.3686 0.7124 -0.0865
7 -6.8 7.3973 38 -5.7 7.0993 35 1.1 -2.2262 4.4262 0.6482 0.5169 0.1516
LS0tDQp0aXRsZTogInItRnVua3Rpb25lbiBmw7xyIEluZmVyZW56c3RhdGlzdGlrIg0KYXV0aG9yOiAiTHVrYXMgU3RhbW1sZXIiDQpkYXRlOiAiNiA1IDIwMjEiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZmlnX2hlaWdodDogNg0KICAgIGZpZ193aWR0aDogNg0KICAgIGhpZ2hsaWdodDogcHlnbWVudHMNCiAgICB0aGVtZTogeWV0aQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCnJtKGxpc3QgPSBscygpKQ0KDQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIG1lc3NhZ2UgPSBGQUxTRSkNCg0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGtuaXRyKQ0KYGBgDQoNCioqRG9rdW1lbnQgaW4gQXJiZWl0KioNCg0KIyBLZW5uemFobGVuDQoNCkFuZ2FiZW4gYXVzIFRhbWJvdXIsIE0uLCBIb2x0LCBNLiwgU3BleWVyLCBBLiwgQ2hyaXN0ZW5zZW4sIFIuLCAmIEdyYW0sIEIuICgyMDE4KS4gTWFudWFsIGx5bXBoYXRpYyBkcmFpbmFnZSBhZGRzIG5vIGZ1cnRoZXIgdm9sdW1lIHJlZHVjdGlvbiB0byBjb21wbGV0ZSBkZWNvbmdlc3RpdmUgdGhlcmFweSBvbiBicmVhc3QgY2FuY2VyLXJlbGF0ZWQgbHltcGhvZWRlbWE6IGEgbXVsdGljZW50cmUsIHJhbmRvbWlzZWQsIHNpbmdsZS1ibGluZCB0cmlhbC4gQnJpdGlzaCBqb3VybmFsIG9mIGNhbmNlciwgMTE5KDEwKSwgMTIxNS0xMjIyLiBkb2k6IDEwLjEwMzgvczQxNDE2LTAxOC0wMzA2LTQNCg0KYGBge3IsIGVjaG8gPVRSVUV9DQojIEVHID0gVCtNTEQNCm5fRUcgPC0gMzgNCm1fRUdfMSA8LSAtNC4yDQpzZV9FR18xIDwtIDEuMQ0KbV9FR183IDwtIC02LjgNCnNlX0VHXzcgPC0gMS4yDQoNCiMgQ0cgPSBULU1MRA0Kbl9DRyA8LSAzNQ0KbV9DR18xIDwtIC00LjgNCnNlX0NHXzEgPC0gMS4yDQptX0NHXzcgPC0gLTUuNw0Kc2VfQ0dfNyA8LSAxLjINCmBgYA0KDQojIFN0YW5kYXJkYWJ3ZWljaHVuZyBhdXMgU0UgYmVyZWNobmVuDQoNCkZvcm1lbCB6dXIgQmVyZWNobnVuZyB2b24gU0U6DQoNCiRTRSA9IFxmcmFje3N9e1xzcXJ0e259fSQsIGRhcmF1cyBmb2xndCAkcyA9IFNFIFx0aW1lcyBcc3FydHtufSQNCg0KYGBge3J9DQpzX0VHXzEgPC0gc2VfRUdfMSAqIHNxcnQobl9FRykNCnNfQ0dfMSA8LSBzZV9DR18xICogc3FydChuX0NHKQ0Kc19FR183IDwtIHNlX0VHXzcgKiBzcXJ0KG5fRUcpDQpzX0NHXzcgPC0gc2VfQ0dfNyAqIHNxcnQobl9DRykNCmBgYA0KDQoNCiMgVmVydHJhdWVuc2ludGVydmFsbCBmw7xyIE1pdHRlbHdlcnRzZGlmZmVyZW56IGJlcmVjaG5lbg0KDQpGb3JtZWwgenVyIEJlcmVjaG51bmcgZGVzIFZlcnRyYXVlbnNpbnRlcnZhbGxzOiAgIA0KDQokJENJID0gKFxiYXJ7eF8xfSAtIFxiYXJ7eF8yfSBccG0geiBcdGltZXMgU0Vfe3hfMSAtIHhfMn0pJCQNCkZvcm1lbCB6dXIgQmVyZWNobnVuZyBkZXMgU3RhbmRhcmRmZWhsZXJzIFNFIGbDvHIgZGllIE1pdHRlbHdlcnRzZGlmZmVyZW56OiAgIA0KDQoNCiQkU0Vfe3hfMSAtIHhfMn0gPSBcc3FydHtcZnJhY3tzXzFeMn17bl8xfSArIFxmcmFje3NfMl4yfXtuXzJ9fSQkDQoNCmBgYHtyfQ0KQ0lfZGlmZiA8LSBmdW5jdGlvbih4MSwgeDIsIHMxLCBzMiwgbjEsIG4yLCBjaSA9IC45NSl7DQogIFNFX2RpZmYgPC0gc3FydCgoczFeMi9uMSkgKyAoczJeMi9uMikpDQogIHF1YW50aWxlIDwtIGFicyhxbm9ybSgoMSAtIGNpKS8yKSkNCiAgTUUgPC0gcXVhbnRpbGUgKiBTRV9kaWZmDQogIENJX2RpZmYgPC0gcm91bmQoKHgyIC0geDEpICsgYygtMSwgMSkgKiBNRSwgNCkNCiAgb3V0IDwtIHRpYmJsZSh4MSA9IHgxLCANCiAgICAgICAgICAgICAgICBzMSA9IHMxLCANCiAgICAgICAgICAgICAgICBuMSA9IG4xLCANCiAgICAgICAgICAgICAgICB4MiA9IHgyLCANCiAgICAgICAgICAgICAgICBzMiA9IHMyLCANCiAgICAgICAgICAgICAgICBuMiA9IG4yLCANCiAgICAgICAgICAgICAgICBkaWZmID0gKHgyLXgxKSwgDQogICAgICAgICAgICAgICAgY2lfbG8gPSBDSV9kaWZmWzFdLCANCiAgICAgICAgICAgICAgICBjaV91cCA9IENJX2RpZmZbMl0pDQogIHJldHVybihvdXQpDQp9DQoNCm1vbnRoMSA8LSBDSV9kaWZmKG1fRUdfMSwgbV9DR18xLCBzX0VHXzEsIHNfQ0dfMSwgbl9FRywgbl9DRykNCm1vbnRoNyA8LSBDSV9kaWZmKG1fRUdfNywgbV9DR183LCBzX0VHXzcsIHNfQ0dfNywgbl9FRywgbl9DRykNCg0KcmVzdWx0IDwtIGJpbmRfcm93cyhtb250aDEsIG1vbnRoNykNCnJlc3VsdCA8LSByZXN1bHQgJT4lIA0KICBhZGRfY29sdW1uKE1vbmF0ID0gYygxLCA3KSwgLmJlZm9yZSA9ICJ4MSIpDQprYWJsZShyZXN1bHQpDQpgYGANCg0KIyBwLVdlcnQgYmVyZWNobmVuDQoNCkZvcm1lbCB6dXIgQmVyZWNobnVuZyB2b24geiBmw7xyIGRpZSBCZXJlY2hudW5nIGRlcyBwLVdlcnRlcw0KDQokJHpfcCA9IFxmcmFje3hfMSAtIHhfMn17U0Vfe3hfMSAtIHhfMn19JCQNCg0KYGBge3J9DQpwX3ZhbHVlIDwtIGZ1bmN0aW9uKHgxLCB4MiwgczEsIHMyLCBuMSwgbjIpew0KICBTRV9kaWZmIDwtIHNxcnQoKHMxXjIvbjEpICsgKHMyXjIvbjIpKQ0KICB6X3AgPC0gKHgyIC0geDEpL1NFX2RpZmYNCiAgcCA8LSAyICogcG5vcm0oYWJzKHpfcCksIGxvd2VyLnRhaWwgPSBGQUxTRSkNCiAgb3V0MiA8LSB0aWJibGUoDQogICAgeiA9IHpfcCwNCiAgICAicC1XZXJ0IiA9IHANCiAgICApDQogIHJldHVybihvdXQyKQ0KfQ0KDQpwMSA8LSBwX3ZhbHVlKG1fRUdfMSwgbV9DR18xLCBzX0VHXzEsIHNfQ0dfMSwgbl9FRywgbl9DRykNCnA3IDwtIHBfdmFsdWUobV9FR183LCBtX0NHXzcsIHNfRUdfNywgc19DR183LCBuX0VHLCBuX0NHKQ0KcCA8LSBiaW5kX3Jvd3MocDEsIHA3KQ0KDQoNCnJlc3VsdCA8LSBiaW5kX2NvbHMocmVzdWx0LCBwKQ0Ka2FibGUocmVzdWx0KQ0KYGBgDQoNCg0KIyBDb2hlbidzIGQgYmVyZWNobmVuDQoNCiQkZCA9IFxmcmFje3hfMiAtIHhfMX17c18xLF8yfSQkDQoNCiQkc18xLF8yID0gXHNxcnR7XGZyYWN7c18xXjIgXHRpbWVzIG5fMSArIHNfMl4yIFx0aW1lcyBuXzJ9e25fMSArIG5fMn19JCQNCg0KYGBge3J9DQpjb2hlbl9kIDwtIGZ1bmN0aW9uKHgxLCB4MiwgczEsIHMyLCBuMSwgbjIpew0KICBzX3BhaXJlZCA8LSBzcXJ0KChzMV4yICogbjEgKyBzMl4yICogbjIpLyhuMSArIG4yKSkNCiAgcHJpbnQoc19wYWlyZWQpDQogIGQgPC0gKHgyIC0geDEpL3NfcGFpcmVkDQogIHJldHVybihkKQ0KfQ0KDQpkMSA8LSBjb2hlbl9kKG1fRUdfMSwgbV9DR18xLCBzX0VHXzEsIHNfQ0dfMSwgbl9FRywgbl9DRykNCmQ3IDwtIGNvaGVuX2QobV9FR183LCBtX0NHXzcsIHNfRUdfNywgc19DR183LCBuX0VHLCBuX0NHKQ0KZCA8LSB0aWJibGUoIkNvaGVuJ3MgZCIgPSByb3VuZChjKGQxLCBkNyksIDQpKQ0KZA0KDQpyZXN1bHQgPC0gYmluZF9jb2xzKHJlc3VsdCwgZCkNCmthYmxlKHJlc3VsdCwgDQogICAgICBkaWdpdHMgPSA0LCANCiAgICAgIGNhcHRpb24gPSAiUHJvemVudHVhbGUgQWJuYWhtZSBkZXMgVm9sdW1lbnMgZGVzIGJldHJvZmZlbmVuIEFybWVzLCAxID0gRUcsIDIgPSBDRyIpDQpgYGANCg0K