2群間の時系列データの解析
友人に2群間の時系列データの解析、検定を尋ねられたので
改めて勉強してみたので、健忘録として。
まず、練習用のデータを作成していきます。
症例は30例ずつの2群で、計測は3時点、処置の有無で層別化します。
id = c(1:60)
result0 = rnorm(30,40,10)
result1 = rnorm(30,25,7)
result2 = rnorm(30,20,5)
result3 = rnorm(30,41,9)
result4 = rnorm(30,23,6)
result5 = rnorm(30,19,4)
treat0 = rep("n" ,30)
treat1 = rep("t" ,30)
# データフレームに変換しています。
dat = data.frame(id = id, treat= c(treat0,treat1), res0 = c(result0,result3),
res1 = c(result1,result4), res2 = c(result2,result5))
# 確認します。
# 縦のカラムには患者間要因、横のカラムには患者内要因が配列されています。
View(dat)
解析していきます。
library(car)
time = factor(c("res0","res1","res2"), levels = c("res0","res1","res2"))
idata = as.data.frame(time)
model = lm(cbind(res0,res1,res2) ~ treat,data=dat,contrasts = list(treat = contr.sum))
fit = Anova(model, idata = idata, idesign = ~time, type = 3)
summary(fit, multivariate = FALSE)
Univariate Type III Repeated-Measures ANOVA Assuming Sphericity
Sum Sq num Df Error SS den Df F value Pr(>F)
(Intercept) 144669 1 3147.4 58 2665.9775 <2e-16 ***
treat 25 1 3147.4 58 0.4651 0.4980
time 13532 2 5436.3 116 144.3696 <2e-16 ***
treat:time 201 2 5436.3 116 2.1448 0.1217
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Mauchly Tests for Sphericity
Test statistic p-value
time 0.89911 0.048266
treat:time 0.89911 0.048266
Greenhouse-Geisser and Huynh-Feldt Corrections
for Departure from Sphericity
GG eps Pr(>F[GG])
time 0.90835 <2e-16 ***
treat:time 0.90835 0.1268
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
HF eps Pr(>F[HF])
time 0.9360954 2.597244e-30
treat:time 0.9360954 1.252772e-01
Mauchly球面性で有意差を認めるので前半部分を確認して
treatはp=0.4980で有意差はなし、timeはp<0.001で有意差あり、
treat:time(交互作用)はp=0.1217で有意差なしです。
時間経過で変化はあるが、処置による差はなく、交互作用もない。
グラフにするのは大変なので、後日。
EZRパッケージを使用するのがおすすめです。
この記事が気に入ったらサポートをしてみませんか?