トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

ggstatsplot

*disclaimer
777327

R
ggplot2

ggstatsplot


Patil, I. (2021). Visualizations with statistical details: The 'ggstatsplot' approach.
     Journal of Open Source Software, 6(61), 3167, doi:10.21105/joss.03167

https://indrajeetpatil.github.io/ggstatsplot/articles/ggstatsplot.html
https://indrajeetpatil.github.io/ggstatsplot/


# ggstatsplot
install.packages("ggstatsplot")
library(ggstatsplot)

 例えばヒストグラム

  • サンプルのデータは、languageR内のlexdec

普通はこのように↓

hist(lexdec$RT)

gghistostatsを使うとこのように↓

gghistostats(lexdec, x=RT)

グループ分けして見ることも

grouped_gghistostats(lexdec, x=RT, 
                     grouping.var=NativeLanguage, 
                     plotgrid.args=list(nrow=2))

 二群の差

ggbetweenstats

ggbetweenstats(lexdec,
                      x=Complex,
                      y=RT
                       )
  • 語の複雑さにより反応時間に、違いがあるとは言えない。
  • しかし、母語話者と非母語話者のデータが混ざっている、、、

grouped_ggbetweenstats

grouped_ggbetweenstats(lexdec,
                       x=Complex,
                       y=RT,
                       grouping.var=NativeLanguage,
                       #pairwise.display = "significant",
                       #p.adjust.method = "fdr",
                       plotgrid.args=list(nrow=2))
  • 英語母語話者は、p=0.76で、複雑な語と単純な語の差は、有意ではない。
  • 非母語話者は、p=0.03で、有意。


 二群の差(対応あり)

サンプルデータは、杉浦・岩崎 (2003)



ggwithinstats

  • 事前、事後、遅延での正答率の差
ggwithinstats(
  data    = sugi_iwa.dat2,
  x       = time,
  y       = score

grouped_ggwithinstats

  • 統制項目(学習しなかった項目)と実験項目(学習した項目)を分けてみる
grouped_ggwithinstats(
  data    = sugi_iwa.dat2,
  x       = time,
  y       = score,
  grouping.var    = cond,
  #outlier.tagging = TRUE,
  #outlier.label   = ID
  )
  • オプションのoutlierをつけると、外れ値を表示
  • 外れ値のラベルを指定すれば、値ではなく、外れていた人を表示
  • 学習しなかった項目は、スコアは変化が見られない。
  • 学習した項目は、学習直後にスコアが上がり、遅延テストではスコアが下がる。
    • 下がるといっても学習前よりはスコアは高い。

 ノンパラメトリックな場合

type = "nonparametric",

を入れるだけ!



 散布図

ggscatterstats

ggscatterstats(english,
               x=WrittenFrequency,
               y=RTlexdec
                 )
  • 相関係数は -0.43
  • しかし、どうも反応時間に二つ山があるみたい

年齢(AgeSubject)が、oldとyoungとある。ひょっとして、年齢で反応時間が違うかも。

g <- ggplot(english)
g <- g + aes(RTlexdec, fill=AgeSubject)
g <- g + geom_density(alpha=.7)
plot(g)

二群の差は、ggbetweenstats

ggbetweenstats(english,
                       x=AgeSubject,
                       y=RTlexdec)

grouped_ggscatterstats

  • 二つのグループに分けてみる
grouped_ggscatterstats(english,
               x=WrittenFrequency,
               y=RTlexdec,
               grouping.var=AgeSubject,
               plotgrid.args=list(ncol=2)
                 )