Rで解析:各種検定を「ggplot2」で表示するのが楽々です!「statsExpressions」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

one_sample_test、two_sample_test、oneway_anovaの各種検定方法が可能なだけでなく、結果を「ggplot2」で表示するのが簡単なパッケージの紹介です。

本パッケージの結果は「tibble」形式で出力されているので必要な情報を抽出するのが簡単です。「ggplot2」での表示は「ggplot2::labs」コマンドを使用していますが、この内容で充分すぎると思います。

パッケージバージョンは1.3.3。実行コマンドはwindows 11のR version 4.2.1で確認しています。

スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("statsExpressions")

2サイズのケトルベルとダンベルのAmazonアソシエイトの紹介

パフォーマンスを発揮するには体が資本です。ケトルベルとダンベルは多くの筋トレのメニュが可能です。ケトルベルやダンベルも「からだにいいもの」です。実験的な紹介です。

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("statsExpressions")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
set.seed(1234)
n <- 30
TestData <- tibble(Group = sample(paste0("Group_",
                                         formatC(1:4, width = 2, flag = "0")),
                                  n, replace = TRUE),
                   A_Data = sample(c(1:50), n, replace = TRUE),
                   B_Data = sample(c(51:100), n, replace = TRUE),
                   C_Data = sample(c(51:100), n, replace = TRUE)) %>%
  rowid_to_column("ID")
########

#各種one_sample_test:one_sample_testコマンド
#細かい設定はone_sample_test?を参照
#数値データの指定:xオプション
#検定手法:typeオプション;検定手法および参照使用コマンド
#"parametric":One-sample_Student's_t-test;stats::t.test()
#"nonparametric":One-sample_Wilcoxon_test;stats::wilcox.test()
#"robust":Bootstrap-t_method for_one-sample_test;WRS2::trimcibt()
#"bayes":One-sample_Student's_t-test;BayesFactor::ttestBF()
#既知の母平均:test.valueオプション
#両側/片側検定:alternativeオプション;"two.sided","greater","less"
#信頼区間:conf.levelオプション
one_sample_test(data = TestData %>% filter(Group == "Group_01"),
                x = A_Data,
                test.value = TestData %>%
                  summarize(mean(A_Data)) %>%
                  as.numeric(),
                type = "parametric") -> Result_OneSample_Test

#例えばこんな使い方:結果一覧は$expression[[1]]に収録されているのを利用して
#ggplot2::labsコマンドを利用する
ggplot(data = TestData %>% filter(Group == "Group_01"),
       aes(x = Group, y = A_Data, fill = Group)) +
  geom_boxplot() +
  geom_boxplot(aes(y = TestData %>%
                     summarize(mean(A_Data)) %>%
                     as.numeric()), col = "red", size = 3) +
  labs(title = "One-sample_Student's_t-test 赤線は既知の母平均",
       x = NULL,
       subtitle = Result_OneSample_Test$expression[[1]])
               

#各種two_sample_test:two_sample_testコマンド
#細かい設定はtwo_sample_test?を参照
#検定手法:typeオプション;検定手法および参照使用コマンド
#"parametric":Student's(paired/var.equal=TRUE)
#Welch's_t-test(paired/var.equal=FALSE);stats::t.test();
#"nonparametric":Mann-Whitney_U_test;stats::wilcox.test()
#"robust":Yuen's_test_for_trimmed_means;WRS2::WRS2::yuen()
#"bayes":Student's_t-test;BayesFactor::ttestBF()
#被験者内/被験者間:pairedオプション;TRUE/FALSE
#等分散かどうか:var.equalオプション;TRUE/FALSE
two_sample_test(data = TestData %>%
                  select(-C_Data) %>%
                  pivot_longer(cols = c(A_Data, B_Data),
                               names_to = "Point",
                               values_to = "Value"),
                x = Point, y = Value,
                paired = FALSE, var.equal = FALSE,
                type = "parametric") -> Result_TwoSample_Test

#例えばこんな使い方:結果一覧は$expression[[1]]に収録されているのを利用して
#ggplot2::labsコマンドを利用する
ggplot(data = TestData %>% select(c(A_Data, B_Data)) %>%
         pivot_longer(cols = c(A_Data, B_Data),
                      names_to = "Point",
                      values_to = "Value"),
       aes(x = Point, y = Value)) +
  stat_summary(aes(fill = Point), fun = "mean", geom = "bar")  +
  labs(title = "two_sample_Welch's t-test",
       x = NULL,
       subtitle = Result_TwoSample_Test$expression[[1]])


#各種oneway_anova:oneway_anovaコマンド
#細かい設定はoneway_anova?を参照
#検定手法:typeオプション;検定手法および参照使用コマンド
#"parametric":Fisher's_or_Welch's_one-way_ANOVA;stats::oneway.test()
#"nonparametric":Kruskal-Wallis_one-way_ANOVA;stats::kruskal.test()
#"robust":Heteroscedastic_one-way_ANOVA_for_trimmed_means;WRS2::t1way()
#"bayes":Fisher's_ANOVA;BayesFactor::anovaBF()
oneway_anova(TestData, Group,
             A_Data, type = "nonparametric") -> Result_OneWayAnova

#例えばこんな使い方:結果一覧は$expression[[1]]に収録されているのを利用して
#ggplot2::labsコマンドを利用する
ggplot(data = TestData,
       aes(x = Group, y = A_Data, fill = Group)) +
  geom_boxplot() +
  labs(title = "Oneway_anova_Kruskal-Wallis",
       x = NULL,
       subtitle = Result_OneWayAnova$expression[[1]])

出力例

・one_sample_testコマンド

・two_sample_testコマンド

・oneway_anovaコマンド


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました