forked from babayoshihiko/logisticreg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
10-samplesize.Rmd
79 lines (49 loc) · 3.45 KB
/
10-samplesize.Rmd
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
# サンプルサイズ {#samplesize}
```{r include=FALSE}
library(powerMediation)
library(powerSurvEpi)
library(pwrss)
library(samplesizelogisticcasecontrol)
library(WebPower)
```
サンプルサイズ (sample size)\index{さんぷるさいず@サンプルサイズ} とは、研究に用いられる各群の参加者の数です。略して、N や n などということもあります。大文字の N は、全群合わせた総数参加者数で、小文字の n は、各群の参加者数を指すことが多いようです。
日本語では、「サンプル数」と「サンプルサイズ」の誤解がよく見られます。「A群50人、B群50人」の場合、サンプル数は2で、サンプルサイズがそれぞれ50ずつとなります。
コホート研究の場合、疾患群と対照群の比率は、研究開始時点では不明のことが多いため、比率は大きく変わることがあります。t 検定などでは、有意差は2群のサンプルサイズが等しい時に検出しやすくなりますが、ロジスティック回帰ではそれほど問題はないようです。
なお、症例対照研究では、すでにいる患者の数に応じて対照群をリクルートするため、何人募集するかをあらかじめ決定する必要があります。
## サンプルサイズ計算の理論
ロジスティック回帰におけるサンプルサイズの計算方法は、以下の3つの手法があります [@demidenko2007sample]。
* 尤度比検定 (likelihood ratio test)
* スコア検定 (score test)
* Wald 検定 (Wald test)
## 研究計画
@dasgupta2019frail は、インド西ベンガル州の農村地域の高齢者(60 歳以上)におけるフレイルとその関連要因をロジスティック回帰で分析しています。この研究では、あらかじめ必要なサンプルサイズが計算されています。
:::: {.blackbox data-latex=""}
Sample size: The sample size was calculated using the formula: $n = (Zα_{/2}) 2 \times p \times q/l2$, where $n = 1.96 \times 1.96 \times 50 \times 50/102 = 10000/100 = 100$ (taking proportion $P$ = 50% and $q$ = 50%, ($100 − p$), allowable error ($l$) =10%, and standard normal deviate $Z$ = 1.96 (for 95% confidence interval). There is no study available in this area regarding proportion of frailty; so, the 50% proportion was taken to calculate the sample size. As multistage sampling was used, design effect of 1.5 was given and total sample size calculated was 1.5 $\times$ 100 = 150. Taking the nonresponse rate as 10%, the final sample size was calculated to be 165.
::::
## R での計算
R において、ロジスティック回帰を行うパッケージは非常にたくさんあります。
* powerMediation
* powerSurvEpi
* pwrss: Wald 検定; p0, (p1、odds.ratio または beta1), power
* samplesizelogisticcasecontrol: スコア検定と Wald 検定
* WebPower
```{r}
library(powerMediation)
ssMediation.VSMc.logistic (power = 0.8, b2 = log(2), sigma.m = 0.1, p = 0.1, corr.xm = 0.2)
```
```{r}
library(powerSurvEpi)
powerSurvEpi::powerConLogistic.bin(OR = 2, pE = 0.1, nD = 1, nH = 2, R2 = 0, )
```
```{r}
library(pwrss)
pwrss.z.logreg(p0 = 0.1, odds.ratio = 2, power = 0.80)
```
```{r}
library(samplesizelogisticcasecontrol)
sampleSize_binary(prev = 0.1, logOR = log(2), probXeq1 = 0.5)
```
```{r}
library(WebPower)
wp.logistic(p0 = 0.15, p1 = 0.1, alpha = 0.05, power = 0.8, family = "normal", parameter = c(0,1))
```