統計ソフトR:2群間比較

 
けい
Rで2群間の比較をしたい

今回は2群間の比較を行います。

連続変数
・t検定
・ウィルコクソン順位和検定

離散変数
・フィッシャーの正確検定
・カイ二乗検定

 

スポンサーリンク

連続変数

t検定

t検定を行う上で、対応があるデータか、対応がないデータかを考慮する必要があります。

対応がないデータは、例えばAクラスとBクラスのテストの点数で、異なる標本から抽出されたデータです。

対応があるデータは、例えばCさんが薬を飲む前の血圧と飲んだ後の血圧で、同一被験者からセットで得られるデータです。

t検定対応

RにExcelファイルを読み込みます。

読み込ませ方はこちらから↓

table(データ名$項目)でnを確認します。

Maleを1としているので男性5人、女性5人のデータです。

summary(データ名)を使うと4分位や平均、中央値を確認できます。

画像2

renshuに入れたデータで性別で身長に差があるかを評価します。

箱ひげ図を確認します。

boxplot (縦軸, 横軸)で箱ひげ図を作成します。

画像4

Male(1)がFemale(0)より身長が高そうです。

t検定はt.test()で行います。

renshuに入れたデータで性別により身長に差があるかを評価します。

画像3

p-value = 0.0001533で有意水準が0.05の時には、MaleはFemaleより有意に身長が高いと判断します。

また、TableoneパッケージのCreateTableOneを使用すると平均や標準偏差も同時に求められ便利です。

library(tableone)
print(CreateTableOne(vars = ” “, strata = ” “, data = )
vars = 評価する連続変数
strata = 群分けする変数
data = データフレーム名

 

ウィルコクソン順位和検定

サンプル数が小さかったり、正規分布していないとき(ノンパラメトリック)に使用します。

wilcox.test()で求めることができます。

・wilcox.test(データフレーム$連続変数 ~ データフレーム$群分けする変数)
・wilcox.test(連続変数 ~ 群分けする変数, data = データフレーム)

いずれかで入力します。

スクリーンショット (13)

p = 0.09524ですのでMale(性別)によるBMIの差はなさそうです。

また、TableoneパッケージのCreateTableOneを使用すると平均や標準偏差も同時に求められ便利です。

library(tableone)
print(CreateTableOne(vars = ” “, strata = ” “, data = ), nonnormal = ” “)
vars = 評価する連続変数
strata = 群分けする変数
data = データフレーム名
nonnormal = 評価する連続変数

 

離散変数

フィッシャーの正確検定

次は離散変数での2群比較です。

フィッシャーの正確検定はサンプル数が小さくても検定でき、第一選択として使用します。

fisher.test(データフレーム$変数, データフレーム$群分けする変数)
で求められます。

スクリーンショット (14)

Male(性別)によるDM(糖尿病)の罹患に差があるかを評価しました。

p = 0.5238で性別による糖尿病罹患に有意差はありませんでした。

ちなみに、

95%信頼区間は0.218~390.56です。

オッズ比は4.918と記載されています。

また、TableoneパッケージのCreateTableOneを使用すると平均や標準偏差も同時に求められ便利です。

library(tableone)
print(CreateTableOne(vars = ” “, strata = ” “, factorvars = ” “, data = ), exact = ” “)
vars = 評価する離散変数
strata = 群分けする変数
factorVars = 評価する離散変数
data = データフレーム名
exact = 評価する離散変数

 

カイ二乗検定

カイ二乗検定はサンプル数が多いときに使用します。

chisq.test(離散変数, 群分けする変数)で求められます。

chisq.test(データフレーム$変数, データフレーム$群分けする変数)と入力します。

スクリーンショット (15)

p = 0.5186で性別(Male)によるDM(糖尿病)罹患に有意差はありませんでした。

また、TableoneパッケージのCreateTableOneを使用すると平均や標準偏差も同時に求められ便利です。

library(tableone)
print(CreateTableOne(vars = ” “, strata = ” “, factorvars = ” “, data = )
vars = 評価する離散変数
strata = 群分けする変数
factorVars = 評価する離散変数
data = データフレーム名

 

Tableoneパッケージはこちらで解説されており、最初に知ったときは感動しました。

Tableoneで作成した表をcsvファイルで出力することで、手作業で表を作成する手間が大幅に省けます。

 

スポンサーリンク
最新情報をチェックしよう!

お役立ち情報の最新記事8件