top of page

R: t検定とマン-ホイットニーのU検定 (ウィルコクソンの順位和検定)

更新日:2024年12月10日

2つのグループを比較します。

パラメトリック検定であるt検定と、ノンパラメトリック検定であるマン-ホイットニーのU検定があるので、データに応じて選択します。

①t検定

#検定に用いる項目を選択
col_t <- c("A", "B", "C")

#空のリストを作成:初期化
t_result <- list()
for (col in col_t){ #col_tの要素を1つずつ取り出しループ
#t検定の実施:2つのグループの平均値の差を比較
 t <- t.test(data[[col]] ~ data $ "比較条件のカテゴリー") #dataの列を指定、~で数式を表す
 t_result[[col]] <- list( #t_resultに列を追加
  "t_statistic" = t $ statistic, #t値
  "p_value" = t $ p.value, #p値
  "mean_"比較条件1"" = mean(data[[col]][data $ "比較条件のカテゴリー" == "比較条件1"], na.rm = TRUE), #比較条件1の平均値
  "mean_"比較条件2"" = mean(data[[col]][data $ "比較条件のカテゴリー" == "比較条件2"], na.rm = TRUE) #比較条件2の平均値
)
}
t_df <- do.call(rbind, #do.callでrbindをリストに適用
 lapply(names(t_result), function(col){ #lapplyでリストの要素に関数を適用:項目を取得(names)して操作(function)
 cbind(measurement = col,
 t_result[[col]])
}))
print(as.data.frame(t_df)) #as.data.frame()でデータフレーム形式に変換して出力

②マン-ホイットニーのU検定(ウィルコクソンの順位和検定)

col_u <- c("D", "E", "F")

u_result <- list()
for(col in col_u){
 u <- wilcox.test(data[[col]] ~ data $ "比較条件のカテゴリー, exact = TRUE) #exactは計算の正確性、サンプルサイズが大きい場合はFALSEにして近似的に計算することで効率的に計算する事が出来る
 u_result[[col]] <- list(
  "u_statistic" = u $ statistic,
  "p_palue" = u $ p.value,
  "mean_"比較条件1"" = mean(data[[col]][data $ "比較条件のカテゴリー" == "比較条件1"], na.rm = TRUE),
  "mean_"比較条件2"" = mean(data[col]][data $ "比較条件のカテゴリー" == "比較条件2"], na.rm = TRUE)
)
}
u_df <- do.call(rbind, lapply(names(u_result), function(col){
 cbind(measurement = col, u_result[[col]])
}))
print(as.data.frame(u_df))

 
 
 

最新記事

すべて表示
R: 幾何平均による体サイズ除去 (正規化)

ある骨形態測定項目を全測定項目の幾何平均で除算することで、体サイズの影響を除去します。 #R package "dplyr"をインストール library(dplyr) #"dplyr"を読み込み #幾何平均を計算する関数を用意 geometric_mean <-...

 
 
 

コメント


bottom of page