Statistics: T-valuesとP-valuesを学ぶ, r ver. 3

Last Updated on September 21, 2020 by shibatau

赤字部分を追加しました。

I. 何を学ぶ

 

統計のレポートには、t値やp値が書かれていて、統計学を学んだことがないと読み飛ばしてしまいますが、これらの意味は意外に簡単です。簡単なサンプルで説明します。

 

II.サンプル

 

次に解説にしたがい、Rのサンプルデータでt値とp値を集計します。

 

How to Do a T-test in R: Calculation and Reporting

 

データ

 

10匹のネズミの体重のデータです。

 

  name weight
1 M_1 18.9
2 M_2 19.5
3 M_3 23.1
4 M_4 20.1
5 M_5 20.3
6 M_6 23.4
7 M_7 20.9
8 M_8 17.5
9 M_9 18.6
10 M_10 19.1

 

要約

 

variable  n    mean   sd  
weight   10   20.1    1.90

 

サンプル数10、平均20.1、標準偏差1.9です。

 

スクリプト

 

install.packages(“ggpubr”)
install.packages(“rstatix”)
install.packages(“datarium”)
library(tidyverse)
library(ggpubr)
library(rstatix)
library(datarium)
# load the data
data(mice, package = “datarium”)
head(mice)
# summary
mice %>% get_summary_stats(weight, type = “mean_sd”)

 

III.t値を集計

 

1.ベースを使って

 

Rの基本的な関数(ライブラリを使わない)で集計します。

 

res <- t.test(mice$weight, mu = 25)
res

 

次の結果を得ます。

 

One Sample
t-test data: mice$weight t = -8.1045, df = 9, p-value = 1.995e-05 alternative hypothesis: true mean is not equal to 25
95 percent confidence interval:
 18.78346 21.49654
sample estimates:
mean of x
 20.14

 

t値が -8.1045、p値が 1.995e-05 であることがわかります。p値はe-05、つまり、1/100000を乗じるので非常に小さいということがわかります。

 

2.rstatixを使って

 

> stat.test <- mice %>% t_test(weight ~ 1, mu = 25)
> stat.test
# A tibble: 1 x 7
  .y.    group1 group2         n statistic    df       p
* <chr>  <chr>  <chr>      <int>     <dbl> <dbl>   <dbl>
1 weight 1      null model    10     -8.10     9 0.00002

 

IV.Effect sizeを測定

 

Effect sizeは違いの大きさを示すものです。

スクリプト

 

mice %>% cohens_d(weight ~ 1, mu = 25) 

 

計算結果

 

# A tibble: 1 x 6
  .y.    group1 group2     effsize     n magnitude
* <chr>  <chr>  <chr>        <dbl> <int> <ord>    
1 weight 1      null model   -2.56    10 large

 

計算式は次です。

 

$$d = {m-mu \over s}$$

 

Effect sizeについては、次に説明されています。

 

Effect Size (Measures of Association) Definition and Use in Research

 

V.わかったこと

 

無作為抽出した10匹の平均体重は20.14g(標準偏差1.90)でした。

これは、母集団の正規の平均体重25gに対して、統計的有意に低いことが明らかになった。T-testの結果は次である。

 

t(9) = -8.1, p < o.ooo1, d = 2.56

((9)は尤度9、つまり、サンプル数が10件であることを意味している。)

 

VI.Box plotの作成

 

スクリプト

 

# Create the box-plot
bxp <- ggboxplot(
mice$weight, width = 0.5, add = c("mean", "jitter"),
ylab = "Weight (g)", xlab = FALSE
)
# Add significance levels
bxp + labs(subtitle = get_test_label(stat.test, detailed = TRUE))
 

 

大きいドットは平均をしましています。

 

 

VII.密度グラフの作成

 

スクリプト

 

ggdensity(mice, x = "weight", rug = TRUE, fill = "lightgray") +
  scale_x_continuous(limits = c(15, 27)) +
  stat_central_tendency(type = "mean", color = "red", linetype = "dashed") +
  geom_vline(xintercept = 25, color = "blue", linetype = "dashed") + 
  labs(subtitle = get_test_label(stat.test,  detailed = TRUE))

 

赤のラインは、サンプルの平均値です。青のラインは、理論上の平均値です。

 

 

 

続く

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.