황유미 선생님의 데이타를 repeated measure ANOVA를 이용하여 분석하였다. 먼저 data의 preprocessing을 거쳤다.

require(readxl)
require(moonBook)
require(reshape)
require(stringr)
require(ggplot2)
source("friedman1.R")

data=read_excel("통계분석preliminary.xlsx")
#tail(data)
data$ECG0=as.numeric(data$baseECG)

#str(data)
#summary(data)
data1=cbind(data[,c(1:19,25,26)],data[,c(36,20:24)],data[,27:35])
data=melt(data1,id=1:21)
#head(data)
data$fu=str_sub(data$variable,-1)
data$obs=str_sub(data$variable,1,-2)

temp=unique(data$obs)

먼저 Repeated Measure ANOVA를 이용하여 검사해본다.

for(i in 1:length(temp)){
  p<-ggplot(data[data$obs==temp[i],],aes(x=fu,y=value))+geom_boxplot()+ggtitle(temp[i])
  print(p)
  cat("\n###### ",temp[i]," #####\n")
  data1=data[data$obs==temp[i],]
  with(data1,tapply(value,fu,mean))
  fit=aov(value~fu,data=data1)
  print(summary(fit))
 
  if(summary(fit)[[1]][1,5]<0.1) 
  print(pairwise.t.test(data1$value,data1$fu,p.adjust.method="holm",paired=T))
}


######  ECG  #####
             Df Sum Sq Mean Sq F value Pr(>F)
fu            2   0.92  0.4622   1.168  0.312
Residuals   447 176.85  0.3956               
Warning in loop_apply(n, do.ply): Removed 26 rows containing non-finite
values (stat_boxplot).


######  PR  #####
             Df Sum Sq Mean Sq F value Pr(>F)  
fu            2   9653    4826   3.862 0.0218 *
Residuals   421 526086    1250                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
26 observations deleted due to missingness

    Pairwise comparisons using paired t tests 

data:  data1$value and data1$fu 

  0      1      
1 0.0378 -      
2 0.0015 5.8e-07

P value adjustment method: holm 


######  QRS  #####
             Df Sum Sq Mean Sq F value Pr(>F)
fu            2   1199   599.3   1.588  0.206
Residuals   447 168718   377.4               


######  BBB  #####
             Df Sum Sq Mean Sq F value Pr(>F)  
fu            2   1.48  0.7400   2.827 0.0603 .
Residuals   447 117.02  0.2618                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

    Pairwise comparisons using paired t tests 

data:  data1$value and data1$fu 

  0     1    
1 0.013 -    
2 0.036 0.150

P value adjustment method: holm 


######  QTc  #####
             Df Sum Sq Mean Sq F value   Pr(>F)    
fu            2  37477   18738   16.45 1.28e-07 ***
Residuals   447 509148    1139                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

    Pairwise comparisons using paired t tests 

data:  data1$value and data1$fu 

  0       1      
1 2e-11   -      
2 0.00011 0.00093

P value adjustment method: holm 

PR과 QTC는 의미있게 나왔고 BBB의 경우 p값이 0.06이었다.

누락된 값이 있는 PR을 제외하고 비모수통계인 friedman test 및 post-hoc analysis를 실시했다.

for(i in c(1,3,4,5)){
    cat("\n###### ",temp[i]," #####\n")
    data1=data[data$obs==temp[i],]
    friedman.test.with.post.hoc(value~fu|ID,data=data1) 
}

######  ECG  #####
Loading required package: coin
Loading required package: survival
Loading required package: multcomp
Loading required package: mvtnorm
Loading required package: TH.data
Loading required package: colorspace

$Friedman.Test

    Asymptotic General Independence Test

data:  value by fu (0, 1, 2) 
     stratified by ID
maxT = 2.5526, p-value = 0.02879


$PostHoc.Test
                
1 - 0 0.02872675
2 - 0 0.34835312
2 - 1 0.47303695


######  QRS  #####

$Friedman.Test

    Asymptotic General Independence Test

data:  value by fu (0, 1, 2) 
     stratified by ID
maxT = 2.8618, p-value = 0.01169


$PostHoc.Test
                
1 - 0 0.91895110
2 - 0 0.03597942
2 - 1 0.01178290


######  BBB  #####

$Friedman.Test

    Asymptotic General Independence Test

data:  value by fu (0, 1, 2) 
     stratified by ID
maxT = 3.2733, p-value = 0.003029


$PostHoc.Test
                 
1 - 0 0.003156328
2 - 0 0.121238527
2 - 1 0.389939373


######  QTc  #####

$Friedman.Test

    Asymptotic General Independence Test

data:  value by fu (0, 1, 2) 
     stratified by ID
maxT = 6.6899, p-value = 6.308e-11


$PostHoc.Test
                  
1 - 0 3.696532e-11
2 - 0 1.269896e-05
2 - 1 1.037135e-01

모두 의미있게 나오는데 과연 해석을 어떻게 해야 할지? 뭔가 잘못했나?