介入群と比較群の臨床的背景を統計学的に比較してみましょう。
今回は、サンプルデータCancer Drug Trialを利用します。
. use https://www.stata-press.com/data/r16/drugtr
Cancer Drug Trialデータセット (drugtr) には、下記の変数が含まれています。
- studytime: 追跡期間(月)
- died: アウトカム(0=生存、1=死亡)
- drug: 介入因子(1=介入群、0=比較群)
- age: 年齢
連続変数の比較:t-test or Wilcoxon rank sum test
介入群と比較群の年齢を比較してみましょう。年齢の分布が正規分布かどうかで検定方法を変えます。まずはヒストグラムを作成し、分布を確認しましょう。
. histogram age (bin=6, start=47, width=3.3333333)

念のため、介入群と比較群の年齢分布を別々に確認してみます。
. histogram age, by(drug)

対象数が少ないのでデコボコしていますが、正規分布ではないです。暴露群と比較群の分布を表すために、bysortを利用して、中央値と4分位を求めます。
. bysort drug: summarize age, detail --------------------------------------------------------------------------------------------------------------------------------------------------------- -> drug = 0 Patient's age at start of exp. ------------------------------------------------------------- Percentiles Smallest 1% 49 49 5% 49 49 10% 49 49 Obs 20 25% 51.5 50 Sum of Wgt. 20 50% 56 Mean 56.05 Largest Std. Dev. 5.558067 75% 60 62 90% 64 63 Variance 30.89211 95% 66 65 Skewness .3575663 99% 67 67 Kurtosis 2.048984 --------------------------------------------------------------------------------------------------------------------------------------------------------- -> drug = 1 Patient's age at start of exp. ------------------------------------------------------------- Percentiles Smallest 1% 47 47 5% 48 48 10% 48 48 Obs 28 25% 50 49 Sum of Wgt. 28 50% 55.5 Mean 55.75 Largest Std. Dev. 5.828569 75% 60 62 90% 65 65 Variance 33.97222 95% 67 67 Skewness .2977903 99% 67 67 Kurtosis 2.157016
比較群の年齢は、中央値56歳(4分位 51.5 – 60)です。介入群の年齢は、中央値55.5歳(50 – 60)です。
介入群と比較群の年齢分布を、箱ひげ図で比較してみましょう。graph boxコマンドを利用します。
. graph box age, over(drug)

箱の内部の線が50%(中央値)を示し、箱の上端が25%、下端が75%を示しています。上下のヒゲは、統計パッケージによって定義が異なります。Stataの場合、上下のヒゲは下記の通りです。
- 上のヒゲ:75%値 +(75%値 – 25%値)× 1.5 よりも小さい最大の値
- 下のヒゲ:25%値 −(75%値 – 25%値)× 1.5 よりも大きい最小の値
したがって、drugtrの介入群と比較群の上下のヒゲは、各群の最小値と最大値です。
次に、介入群と比較群の年齢の分布を比較してみましょう。2群間の連続変数の比較は、連続変数が正規分布しているか、あるいはしていないかによって下記の通りに使い分けます。
- 正規分布である t test
- 正規分布でない Wilcoxon rank sum test
ageは正規分布していないので、Wilcoxon rank sum testが適切です。ranksumコマンドを使います。
. ranksum age, by(drug) Two-sample Wilcoxon rank-sum (Mann-Whitney) test drug | obs rank sum expected -------------+--------------------------------- 0 | 20 503.5 490 1 | 28 672.5 686 -------------+--------------------------------- combined | 48 1176 1176 unadjusted variance 2286.67 adjustment for ties -12.78 ---------- adjusted variance 2273.88 Ho: age(drug==0) = age(drug==1) z = 0.283 Prob > |z| = 0.7771 Exact Prob = 0.7831
Prob > |z| = 0.771 なので、介入群と比較群の年齢には、統計学的に有意な差を認めませんでした。
もし、年齢が正規分布しているならば、t testを使いましょう。ttestコマンドを利用します。
. ttest age, by(drug) Two-sample t test with equal variances ------------------------------------------------------------------------------ Group | Obs Mean Std. Err. Std. Dev. [95% Conf. Interval] ---------+-------------------------------------------------------------------- 0 | 20 56.05 1.242821 5.558067 53.44874 58.65126 1 | 28 55.75 1.101496 5.828569 53.48992 58.01008 ---------+-------------------------------------------------------------------- combined | 48 55.875 .8168358 5.659205 54.23174 57.51826 ---------+-------------------------------------------------------------------- diff | .3 1.674174 -3.069937 3.669937 ------------------------------------------------------------------------------ diff = mean(0) - mean(1) t = 0.1792 Ho: diff = 0 degrees of freedom = 46 Ha: diff < 0 Ha: diff != 0 Ha: diff > 0 Pr(T < t) = 0.5707 Pr(|T| > |t|) = 0.8586 Pr(T > t) = 0.4293
Pr(|T| > |t|) = 0.8586であり、介入群と比較群の年齢には統計学的に有意な差を認めませんでした。
カテゴリ変数の比較:Pearson’s chi-squared test
介入群と比較群の死亡率を比較してみましょう。まずは、2×2のクロス表を作成します。
. tabulate died drug 1 if | patient | Drug type (0=placebo) died | 0 1 | Total -----------+----------------------+---------- 0 | 1 16 | 17 1 | 19 12 | 31 -----------+----------------------+---------- Total | 20 28 | 48
比較群では19例中18例が死亡していますが、介入群では28例中12例しか死亡していません。この表に%を追加するには、column あるいはrowオプションを追加します。
. tabulate died drug, column row +-------------------+ | Key | |-------------------| | frequency | | row percentage | | column percentage | +-------------------+ 1 if | patient | Drug type (0=placebo) died | 0 1 | Total -----------+----------------------+---------- 0 | 1 16 | 17 | 5.88 94.12 | 100.00 | 5.00 57.14 | 35.42 -----------+----------------------+---------- 1 | 19 12 | 31 | 61.29 38.71 | 100.00 | 95.00 42.86 | 64.58 -----------+----------------------+---------- Total | 20 28 | 48 | 41.67 58.33 | 100.00 | 100.00 100.00 | 100.00
介入群と比較群の死亡率に統計学的な差があるかどうかを、Pearson’s chi-squared testを用いて評価します。
. tabulate died drug, chi 1 if | patient | Drug type (0=placebo) died | 0 1 | Total -----------+----------------------+---------- 0 | 1 16 | 17 1 | 19 12 | 31 -----------+----------------------+---------- Total | 20 28 | 48 Pearson chi2(1) = 13.8678 Pr = 0.000
Pr = 0.000なので、介入群と比較群の死亡率は統計学的に有意に異なると判断できます。
カテゴリ変数の比較:Fisher’s exact test
chi-square testの場合、わずか数人のカテゴリがあると、P値を正確に評価できません。比較群の生存者が1人しか存在しないので、Pearson’s chi-squared testでは正確に評価できるとは言えないのです。その場合、Fisher’s exact testを利用するのがよいです。
. tabulate died drug, exact 1 if | patient | Drug type (0=placebo) died | 0 1 | Total -----------+----------------------+---------- 0 | 1 16 | 17 1 | 19 12 | 31 -----------+----------------------+---------- Total | 20 28 | 48 Fisher's exact = 0.000 1-sided Fisher's exact = 0.000
Fisher’s exact = 0.000ですので、Pearson’s chi-squated testと同様に、介入群と比較群の死亡率は統計学的に有意に異なると判断できます。
まとめ
今回取り上げた検定は下記の通りです。変数の種類に応じて、検定方法を選択します。
正規分布である連続変数 t test
正規分布でない連続変数 Wilcoxon runk sum test
カテゴリ変数(少数のカテゴリ無し) Pearson’s chi-squared test
カテゴリ変数(少数のカテゴリ有り) Fisher’s exact test