LoginSignup
0
0

More than 1 year has passed since last update.

Rで分散分析するためのCSVファイルと実行コード

Last updated at Posted at 2021-10-14

概要

anovakunを用いて分散分析をする際に、どのようなデータ構造でどのような処理をすれば良いかまとめます。

データ

ここでは下記のデータ構造を前提に進めます。

これは、5つのtype条件が参加者間6つのsize条件が参加者内の実験計画のデータになります。

各実験参加者はユニークなidを振られ「1つのtype条件」で「6つのsize条件」ごとにスコアを集計され、1人辺り6行分のデータが蓄積されます。

R

ここでは分散分析を行うためにanovakunを用い、データを整形するためにtidyverseを用います。

2要因混合(参加者間+参加者内)分散分析

library(tidyverse)
source("anovakun_485.txt")

#データ読み込み
csv = read.csv("result.csv", header = T, encoding = "UTF-8")

#使うデータだけに絞り込む
src = csv %>% select(, c("id", "type", "size", "score.a"))

#データを整形する
dat_AsB = src %>% 
  #データをtype, id, sizeの順にソート
  arrange(type, id, size) %>% 
  #データを各idのtype毎にsizeのスコアを横並びにする
  pivot_wider(c(id, type), names_from = "size", values_from = "score.a") %>% 
  #idは不要なので削除
  select(, -c("id"))

#anovakunで分散分析
#dat_AsBデータを渡し、2要因混合(参加者間:A、参加者内:B)を意味する"AsB"を指定
#第5,6引数に分析結果の各値のラベルを指定
anovakun(dat_AsB, "AsB", auto = T, eta = T,
         type = c("東京","神奈川","千葉","埼玉","茨城"),
         size = c("24cm","25cm","26cm","27cm","28cm","29cm"))

arrange()pivot_wider()する際に、各実験参加者のデータを同じsize順に並ばせる為に行います。

1要因参加者内分散分析

library(tidyverse)
source("anovakun_485.txt")

#データ読み込み
csv = read.csv("result.csv", header = T, encoding = "UTF-8")

#使うデータだけに絞り込む
src = csv %>% select(, c("id", "type", "size", "score.a"))

#データを整形する
dat_sA = src %>% 
  #type条件を1つに絞る
  filter(type == "2") %>% 
  #データをtype, id, sizeの順にソート
  arrange(type, id, size) %>% 
  #データを各id毎にsizeのスコアを横並びにする
  pivot_wider(c(id, size), names_from = "size", values_from = "score.a") %>%
  #idは不要なので削除
  select(, -c("id"))

#anovakunで分散分析
#dat_sAデータを渡し、1要因参加者内を意味する"sA"を指定、sizeのデータ個数を指定
anovakun(dat_sA, "sA", 6, auto = T, eta = T)

1要因参加者間分散分析

#データを整形する
dat_As = src %>% 
  #size条件を1つに絞る
  filter(size=="24") %>% 
  #データをtype, idの順にソート
  arrange(type, id) %>% 
  #元データが縦構造なのでここではpivotは不要
  #id、sizeは不要なので削除
  select(, -c("id", "size"))

#anovakunで分散分析
#dat_Asデータを渡し、1要因参加者間を意味する"As"を指定、typeのデータ個数を指定
anovakun(dat_As, "As", 5, eta = T)

まとめ

anovakunを用いて分散分析するためのデータ構造と処理についてまとめました。

どの条件を参加者間/参加者内にするかよく検討し、後の分析を考慮してデータ構造の設計を行うようにしましょう(自戒) 

おまけ

#pipe演算子は command⌘ + shift⇧ + m がショートカット
%>%
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0