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

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")
########

#&#21508;&#31278;one_sample_test:one_sample_test&#12467;&#12510;&#12531;&#12489;
#&#32048;&#12363;&#12356;&#35373;&#23450;&#12399;one_sample_test?&#12434;&#21442;&#29031;
#&#25968;&#20516;&#12487;&#12540;&#12479;&#12398;&#25351;&#23450;:x&#12458;&#12503;&#12471;&#12519;&#12531;
#&#26908;&#23450;&#25163;&#27861;:type&#12458;&#12503;&#12471;&#12519;&#12531;;&#26908;&#23450;&#25163;&#27861;&#12362;&#12424;&#12403;&#21442;&#29031;&#20351;&#29992;&#12467;&#12510;&#12531;&#12489;
#"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()
#&#26082;&#30693;&#12398;&#27597;&#24179;&#22343;:test.value&#12458;&#12503;&#12471;&#12519;&#12531;
#&#20001;&#20596;/&#29255;&#20596;&#26908;&#23450;:alternative&#12458;&#12503;&#12471;&#12519;&#12531;;"two.sided","greater","less"
#&#20449;&#38972;&#21306;&#38291;:conf.level&#12458;&#12503;&#12471;&#12519;&#12531;
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

#&#20363;&#12360;&#12400;&#12371;&#12435;&#12394;&#20351;&#12356;&#26041;:&#32080;&#26524;&#19968;&#35239;&#12399;$expression[[1]]&#12395;&#21454;&#37682;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12434;&#21033;&#29992;&#12375;&#12390;
#ggplot2::labs&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;&#12377;&#12427;
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 &#36196;&#32218;&#12399;&#26082;&#30693;&#12398;&#27597;&#24179;&#22343;",
       x = NULL,
       subtitle = Result_OneSample_Test$expression[[1]])
               

#&#21508;&#31278;two_sample_test:two_sample_test&#12467;&#12510;&#12531;&#12489;
#&#32048;&#12363;&#12356;&#35373;&#23450;&#12399;two_sample_test?&#12434;&#21442;&#29031;
#&#26908;&#23450;&#25163;&#27861;:type&#12458;&#12503;&#12471;&#12519;&#12531;;&#26908;&#23450;&#25163;&#27861;&#12362;&#12424;&#12403;&#21442;&#29031;&#20351;&#29992;&#12467;&#12510;&#12531;&#12489;
#"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()
#&#34987;&#39443;&#32773;&#20869;/&#34987;&#39443;&#32773;&#38291;:paired&#12458;&#12503;&#12471;&#12519;&#12531;;TRUE/FALSE
#&#31561;&#20998;&#25955;&#12363;&#12393;&#12358;&#12363;:var.equal&#12458;&#12503;&#12471;&#12519;&#12531;;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

#&#20363;&#12360;&#12400;&#12371;&#12435;&#12394;&#20351;&#12356;&#26041;:&#32080;&#26524;&#19968;&#35239;&#12399;$expression[[1]]&#12395;&#21454;&#37682;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12434;&#21033;&#29992;&#12375;&#12390;
#ggplot2::labs&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;&#12377;&#12427;
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]])


#&#21508;&#31278;oneway_anova:oneway_anova&#12467;&#12510;&#12531;&#12489;
#&#32048;&#12363;&#12356;&#35373;&#23450;&#12399;oneway_anova?&#12434;&#21442;&#29031;
#&#26908;&#23450;&#25163;&#27861;:type&#12458;&#12503;&#12471;&#12519;&#12531;;&#26908;&#23450;&#25163;&#27861;&#12362;&#12424;&#12403;&#21442;&#29031;&#20351;&#29992;&#12467;&#12510;&#12531;&#12489;
#"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

#&#20363;&#12360;&#12400;&#12371;&#12435;&#12394;&#20351;&#12356;&#26041;:&#32080;&#26524;&#19968;&#35239;&#12399;$expression[[1]]&#12395;&#21454;&#37682;&#12373;&#12428;&#12390;&#12356;&#12427;&#12398;&#12434;&#21033;&#29992;&#12375;&#12390;
#ggplot2::labs&#12467;&#12510;&#12531;&#12489;&#12434;&#21033;&#29992;&#12377;&#12427;
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コマンド


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

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました