User Tools

Site Tools


twoway_repeated_measure_anova

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
twoway_repeated_measure_anova [2024/05/08 08:33] – old revision restored (2024/05/08 08:29) hkimsciltwoway_repeated_measure_anova [2024/05/08 08:33] (current) – removed hkimscil
Line 1: Line 1:
-====== E.g. 1 ====== 
-<code> 
-# rep.meas.anova.two.way.csv 
  
-df <- read.csv("http://commres.net/wiki/_media/r/rep.meas.anova.two.way.csv") 
-head(df) 
-tail(df) 
-str(df) 
- 
-df$group <- factor(df$group) 
-df$id<-1:196 
-df$id <- factor(df$id) 
-str(df) 
- 
-library(reshape2) 
-mltdf <- melt(df, id.var=c("id", "group")) 
-mltdf 
-colnames(mltdf) <- c("id", "group", "time", "value") 
- 
-mltdf.ftest <- aov(value ~ group * time + Error(id), data=mltdf) 
-summary(mltdf.ftest) 
- 
-attach(mltdf) 
-interaction.plot(time, group, value,  
-                 fun=mean, type="b", pch=c(2,4,6),  
-                 legend = F, col=c("red","blue","black"),  
-                 xlab="Time", ylab="Mean") 
-legend("topleft", legend=c("Group 1", "Group 2", "Group 3"), 
-       pch=c(2,4,6), col=c("red", "blue", "black")) 
- 
-pairwise.t.test(value, time,  
-                paired=T,  
-                p.adjust.method="bonferroni") 
- 
-</code> 
- 
-<code> 
-> # rep.meas.anova.two.way.csv 
- 
-> df <- read.csv("http://commres.net/wiki/_media/r/rep.meas.anova.two.way.csv") 
-> head(df) 
-  group baseline after_1hr after_2hr after_4hr 
-1         39.1      90.7      67.4      59.2 
-2         73.4     142.9      56.2     119.6 
-3         93.6     101.8      62.4     115.2 
-4        113.5     109.5     100.2     135.8 
-5         94.2     111.3     111.3     105.8 
-6         58.0     102.3     129.8      80.3 
-> tail(df) 
-    group baseline after_1hr after_2hr after_4hr 
-191         71.3     141.3     120.5      65.0 
-192         38.9     116.8     120.3     102.6 
-193         37.7      93.8      91.6      89.9 
-194        133.8      95.9     103.2     111.4 
-195        137.9     132.7     140.5      66.0 
-196        125.1      43.8     112.6      78.6 
-> str(df) 
-'data.frame': 196 obs. of  5 variables: 
- $ group    : int  1 3 3 2 1 1 2 1 2 1 ... 
- $ baseline : num  39.1 73.4 93.6 113.5 94.2 ... 
- $ after_1hr: num  90.7 142.9 101.8 109.5 111.3 ... 
- $ after_2hr: num  67.4 56.2 62.4 100.2 111.3 ... 
- $ after_4hr: num  59.2 119.6 115.2 135.8 105.8 ... 
- 
-> df$group <- factor(df$group) 
-> df$id<-1:196 
-> df$id <- factor(df$id) 
-> str(df) 
-'data.frame': 196 obs. of  6 variables: 
- $ group    : Factor w/ 3 levels "1","2","3": 1 3 3 2 1 1 2 1 2 1 ... 
- $ baseline : num  39.1 73.4 93.6 113.5 94.2 ... 
- $ after_1hr: num  90.7 142.9 101.8 109.5 111.3 ... 
- $ after_2hr: num  67.4 56.2 62.4 100.2 111.3 ... 
- $ after_4hr: num  59.2 119.6 115.2 135.8 105.8 ... 
- $ id       : Factor w/ 196 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ... 
- 
-> library(reshape2) 
-> mltdf <- melt(df, id.var=c("id", "group")) 
-> mltdf 
-     id group  variable value 
-1          baseline  39.1 
-2          baseline  73.4 
-3          baseline  93.6 
-4          baseline 113.5 
-5          baseline  94.2 
-6          baseline  58.0 
-7          baseline  90.2 
-8          baseline  94.0 
-9          baseline  52.4 
-10   10      baseline  61.6 
-11   11      baseline 116.1 
-12   12      baseline  95.8 
-13   13      baseline 130.7 
-14   14      baseline  34.6 
-15   15      baseline  72.9 
-16   16      baseline  64.5 
-17   17      baseline  76.1 
-18   18      baseline 118.6 
-19   19      baseline  46.5 
-20   20      baseline 124.6 
-21   21      baseline  50.3 
-22   22      baseline  67.7 
-23   23      baseline 100.5 
-24   24      baseline  66.4 
-25   25      baseline 129.7 
-26   26      baseline  92.2 
-27   27      baseline  49.1 
-28   28      baseline  89.3 
-29   29      baseline 101.5 
-30   30      baseline 110.5 
-31   31      baseline  95.4 
-32   32      baseline  59.6 
-33   33      baseline  87.6 
-34   34      baseline  42.3 
-35   35      baseline 110.0 
-36   36      baseline 133.6 
-37   37      baseline  36.8 
-38   38      baseline 106.9 
-39   39      baseline  32.1 
-40   40      baseline 118.9 
-41   41      baseline  70.3 
-42   42      baseline 105.2 
-43   43      baseline  55.2 
-44   44      baseline 103.4 
-45   45      baseline  55.9 
-46   46      baseline  93.3 
-47   47      baseline 113.0 
-48   48      baseline  44.8 
-49   49      baseline 125.4 
-50   50      baseline  91.5 
-51   51      baseline  46.8 
-52   52      baseline  46.9 
-53   53      baseline  88.4 
-54   54      baseline  83.1 
-55   55      baseline  72.7 
-56   56      baseline  78.3 
-57   57      baseline  73.1 
-58   58      baseline  69.9 
-59   59      baseline  94.2 
-60   60      baseline 133.1 
-61   61      baseline  69.7 
-62   62      baseline  95.9 
-63   63      baseline 122.1 
-64   64      baseline  46.4 
-65   65      baseline  62.3 
-66   66      baseline 134.0 
-67   67      baseline  66.9 
-68   68      baseline 109.1 
-69   69      baseline 100.1 
-70   70      baseline  54.9 
-71   71      baseline 118.9 
-72   72      baseline  79.7 
-73   73      baseline  85.2 
-74   74      baseline 133.5 
-75   75      baseline 125.6 
-76   76      baseline  70.3 
-77   77      baseline 133.0 
-78   78      baseline 132.7 
-79   79      baseline 134.6 
-80   80      baseline  97.2 
-81   81      baseline  70.9 
-82   82      baseline  99.3 
-83   83      baseline 131.4 
-84   84      baseline  88.9 
-85   85      baseline  77.2 
-86   86      baseline  62.7 
-87   87      baseline  49.0 
-88   88      baseline 125.1 
-89   89      baseline  94.8 
-90   90      baseline  61.0 
-91   91      baseline 132.9 
-92   92      baseline 109.5 
-93   93      baseline  53.6 
-94   94      baseline  80.4 
-95   95      baseline  48.5 
-96   96      baseline 129.1 
-97   97      baseline 119.3 
-98   98      baseline  74.1 
-99   99      baseline  59.2 
-100 100      baseline 115.5 
-101 101      baseline 125.4 
-102 102      baseline 111.0 
-103 103      baseline  63.5 
-104 104      baseline  60.8 
-105 105      baseline 107.9 
-106 106      baseline  69.2 
-107 107      baseline 133.7 
-108 108      baseline  45.1 
-109 109      baseline 108.4 
-110 110      baseline  69.6 
-111 111      baseline  94.0 
-112 112      baseline  34.2 
-113 113      baseline  41.6 
-114 114      baseline  46.7 
-115 115      baseline  97.2 
-116 116      baseline  70.5 
-117 117      baseline  97.9 
-118 118      baseline  39.6 
-119 119      baseline  39.1 
-120 120      baseline 128.9 
-121 121      baseline 132.5 
-122 122      baseline  71.3 
-123 123      baseline 130.5 
-124 124      baseline 106.9 
-125 125      baseline  84.5 
-126 126      baseline 118.1 
-127 127      baseline  38.0 
-128 128      baseline  51.2 
-129 129      baseline 107.8 
-130 130      baseline  56.8 
-131 131      baseline  71.9 
-132 132      baseline  90.1 
-133 133      baseline  81.4 
-134 134      baseline  88.5 
-135 135      baseline 119.5 
-136 136      baseline  58.2 
-137 137      baseline 109.0 
-138 138      baseline  97.0 
-139 139      baseline 132.0 
-140 140      baseline  35.8 
-141 141      baseline  96.0 
-142 142      baseline  35.9 
-143 143      baseline  65.2 
-144 144      baseline 121.0 
-145 145      baseline 122.8 
-146 146      baseline  51.1 
-147 147      baseline  51.5 
-148 148      baseline 108.7 
-149 149      baseline  89.5 
-150 150      baseline  86.8 
-151 151      baseline  49.2 
-152 152      baseline 119.1 
-153 153      baseline  86.7 
-154 154      baseline  39.9 
-155 155      baseline  46.9 
-156 156      baseline  64.5 
-157 157      baseline  39.1 
-158 158      baseline  70.9 
-159 159      baseline  84.0 
-160 160      baseline 105.2 
-161 161      baseline  46.0 
-162 162      baseline  98.6 
-163 163      baseline  87.3 
-164 164      baseline  52.5 
-165 165      baseline 125.4 
-166 166      baseline  73.7 
-167 167      baseline 101.2 
-168 168      baseline  97.1 
-169 169      baseline  44.9 
-170 170      baseline  39.1 
-171 171      baseline  80.3 
-172 172      baseline 107.5 
-173 173      baseline  67.6 
-174 174      baseline 126.5 
-175 175      baseline  97.8 
-176 176      baseline 132.4 
-177 177      baseline  39.3 
-178 178      baseline  36.1 
-179 179      baseline  30.6 
-180 180      baseline 110.8 
-181 181      baseline 124.5 
-182 182      baseline  78.5 
-183 183      baseline 110.0 
-184 184      baseline  72.2 
-185 185      baseline 121.1 
-186 186      baseline  47.8 
-187 187      baseline 125.6 
-188 188      baseline 116.2 
-189 189      baseline  85.7 
-190 190      baseline  94.5 
-191 191      baseline  71.3 
-192 192      baseline  38.9 
-193 193      baseline  37.7 
-194 194      baseline 133.8 
-195 195      baseline 137.9 
-196 196      baseline 125.1 
-197       1 after_1hr  90.7 
-198       3 after_1hr 142.9 
-199       3 after_1hr 101.8 
-200       2 after_1hr 109.5 
-201       1 after_1hr 111.3 
-202       1 after_1hr 102.3 
-203       2 after_1hr 112.4 
-204       1 after_1hr  76.8 
-205       2 after_1hr 147.1 
-206  10     1 after_1hr  88.9 
-207  11     2 after_1hr  69.7 
-208  12     1 after_1hr 127.5 
-209  13     2 after_1hr 108.3 
-210  14     3 after_1hr 107.1 
-211  15     2 after_1hr 112.6 
-212  16     1 after_1hr  61.5 
-213  17     2 after_1hr 118.2 
-214  18     1 after_1hr 108.8 
-215  19     2 after_1hr 136.3 
-216  20     3 after_1hr  91.7 
-217  21     3 after_1hr  79.0 
-218  22     1 after_1hr  55.7 
-219  23     1 after_1hr  67.3 
-220  24     1 after_1hr  86.5 
-221  25     2 after_1hr 123.9 
-222  26     1 after_1hr 126.2 
-223  27     1 after_1hr  41.3 
-224  28     2 after_1hr  62.1 
-225  29     1 after_1hr 102.6 
-226  30     1 after_1hr  62.9 
-227  31     1 after_1hr  68.9 
-228  32     1 after_1hr  77.8 
-229  33     2 after_1hr  92.8 
-230  34     3 after_1hr  56.8 
-231  35     3 after_1hr  87.0 
-232  36     3 after_1hr 126.3 
-233  37     2 after_1hr 115.2 
-234  38     1 after_1hr  80.5 
-235  39     3 after_1hr  75.9 
-236  40     1 after_1hr  85.5 
-237  41     2 after_1hr 125.5 
-238  42     1 after_1hr  93.6 
-239  43     1 after_1hr  99.9 
-240  44     3 after_1hr  70.8 
-241  45     2 after_1hr 111.9 
-242  46     2 after_1hr  60.5 
-243  47     3 after_1hr 132.6 
-244  48     2 after_1hr 137.5 
-245  49     1 after_1hr  95.9 
-246  50     2 after_1hr  59.0 
-247  51     2 after_1hr  62.5 
-248  52     3 after_1hr 138.2 
-249  53     1 after_1hr  40.5 
-250  54     1 after_1hr  55.7 
- [ reached 'max' / getOption("max.print") -- omitted 534 rows ] 
-> colnames(mltdf) <- c("id", "group", "time", "value") 
- 
-> mltdf.ftest <- aov(value ~ group * time + Error(id), data=mltdf) 
-> summary(mltdf.ftest) 
- 
-Error: id 
-           Df Sum Sq Mean Sq F value Pr(>F)   
-group         5283  2641.6   3.298 0.0391 * 
-Residuals 193 154611   801.1                  
---- 
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-Error: Within 
-            Df Sum Sq Mean Sq F value   Pr(>F)     
-time          58104   19368  20.747 8.85e-13 *** 
-group:time     8427    1405   1.505    0.174     
-Residuals  579 540521     934                      
---- 
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-> attach(mltdf) 
-The following objects are masked from mltdf (pos = 4): 
- 
-    group, id, time, value 
- 
-> interaction.plot(time, group, value,  
-+                  fun=mean, type="b", pch=c(2,4,6),  
-+                  legend = F, col=c("red","blue","black"),  
-+                  xlab="Time", ylab="Mean") 
-> legend("topleft", legend=c("Group 1", "Group 2", "Group 3"), 
-+        pch=c(2,4,6), col=c("red", "blue", "black")) 
- 
-> pairwise.t.test(value, time,  
-+                 paired=T,  
-+                 p.adjust.method="bonferroni") 
- 
- Pairwise comparisons using paired t tests  
- 
-data:  value and time  
- 
-          baseline after_1hr after_2hr 
-after_1hr 0.0008                   
-after_2hr 2.5e-06  0.7653    -         
-after_4hr 4.7e-13  0.0026    0.1005    
- 
-P value adjustment method: bonferroni  
- 
-</code> 
- 
-{{:pasted:20240508-082901.png}} 
-====== E.g. 2 ====== 
-{{:r:10_rmanova.csv}} 
-<code> 
- 
-acne <- read.csv("http://commres.net/wiki/_media/r/10_rmanova.csv") 
-str(acne) 
-acne 
- 
-# install.packages("reshape") 
-library(reshape) 
- 
-acne.re <- reshape(acne, direction="long", varying=3:6, sep="") 
- 
-str(acne.re) 
-acne.re$group <- factor(acne.re$group) 
-acne.re$id <- factor(acne.re$id) 
-acne.re$time <- factor(acne.re$time) 
-str(acne.re) 
- 
-acne.re 
- 
-attach(acne.re) 
-acne.re.anova <- aov(month~group*time+Error(id/time), data=acne.re) 
-summary(acne.re.anova) 
- 
-interaction.plot(acne.re$time, acne.re$group, acne.re$month) 
- 
-</code> 
- 
-{{:pasted:20220510-102845.png}} 
- 
-<code> 
-> acne <- read.csv("http://commres.net/wiki/_media/r/10_rmanova.csv") 
-> str(acne) 
-'data.frame': 14 obs. of  6 variables: 
- $ group : int  1 1 1 1 1 1 1 2 2 2 ... 
- $ id    : int  1 2 3 4 5 6 7 8 9 10 ... 
- $ month0: int  60 52 62 58 65 58 53 55 55 60 ... 
- $ month1: int  41 38 36 34 34 42 38 42 54 55 ... 
- $ month3: int  25 23 22 21 28 26 25 33 46 46 ... 
- $ month6: int  16 12 14 13 18 16 21 22 26 23 ... 
-> acne 
-   group id month0 month1 month3 month6 
-1      1  1     60     41     25     16 
-2      1  2     52     38     23     12 
-3      1  3     62     36     22     14 
-4      1  4     58     34     21     13 
-5      1  5     65     34     28     18 
-6      1  6     58     42     26     16 
-7      1  7     53     38     25     21 
-8      2  8     55     42     33     22 
-9      2  9     55     54     46     26 
-10     2 10     60     55     46     23 
-11     2 11     63     45     40     25 
-12     2 12     52     41     35     22 
-13     2 13     61     38     32     18 
-14     2 14     58     43     39     21 
- 
-> # install.packages("reshape") 
-> library(reshape) 
-Warning message: 
-패키지 ‘reshape’는 R 버전 4.1.3에서 작성되었습니다  
- 
-> acne.re <- reshape(acne, direction="long", varying=3:6, sep="") 
- 
-> str(acne.re) 
-'data.frame': 56 obs. of  4 variables: 
- $ group: int  1 1 1 1 1 1 1 2 2 2 ... 
- $ id   : int  1 2 3 4 5 6 7 8 9 10 ... 
- $ time : num  0 0 0 0 0 0 0 0 0 0 ... 
- $ month: int  60 52 62 58 65 58 53 55 55 60 ... 
- - attr(*, "reshapeLong")=List of 4 
-  ..$ varying:List of 1 
-  .. ..$ month: chr [1:4] "month0" "month1" "month3" "month6" 
-  .. ..- attr(*, "v.names")= chr "month" 
-  .. ..- attr(*, "times")= num [1:4] 0 1 3 6 
-  ..$ v.names: chr "month" 
-  ..$ idvar  : chr "id" 
-  ..$ timevar: chr "time" 
-> acne.re$group <- factor(acne.re$group) 
-> acne.re$id <- factor(acne.re$id) 
-> acne.re$time <- factor(acne.re$time) 
-> str(acne.re) 
-'data.frame': 56 obs. of  4 variables: 
- $ group: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 2 2 2 ... 
- $ id   : Factor w/ 14 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ... 
- $ time : Factor w/ 4 levels "0","1","3","6": 1 1 1 1 1 1 1 1 1 1 ... 
- $ month: int  60 52 62 58 65 58 53 55 55 60 ... 
- - attr(*, "reshapeLong")=List of 4 
-  ..$ varying:List of 1 
-  .. ..$ month: chr [1:4] "month0" "month1" "month3" "month6" 
-  .. ..- attr(*, "v.names")= chr "month" 
-  .. ..- attr(*, "times")= num [1:4] 0 1 3 6 
-  ..$ v.names: chr "month" 
-  ..$ idvar  : chr "id" 
-  ..$ timevar: chr "time" 
- 
-> acne.re 
-     group id time month 
-1.0      1  1    0    60 
-2.0      1  2    0    52 
-3.0      1  3    0    62 
-4.0      1  4    0    58 
-5.0      1  5    0    65 
-6.0      1  6    0    58 
-7.0      1  7    0    53 
-8.0      2  8    0    55 
-9.0      2  9    0    55 
-10.0     2 10    0    60 
-11.0     2 11    0    63 
-12.0     2 12    0    52 
-13.0     2 13    0    61 
-14.0     2 14    0    58 
-1.1      1  1    1    41 
-2.1      1  2    1    38 
-3.1      1  3    1    36 
-4.1      1  4    1    34 
-5.1      1  5    1    34 
-6.1      1  6    1    42 
-7.1      1  7    1    38 
-8.1      2  8    1    42 
-9.1      2  9    1    54 
-10.1     2 10    1    55 
-11.1     2 11    1    45 
-12.1     2 12    1    41 
-13.1     2 13    1    38 
-14.1     2 14    1    43 
-1.3      1  1    3    25 
-2.3      1  2    3    23 
-3.3      1  3    3    22 
-4.3      1  4    3    21 
-5.3      1  5    3    28 
-6.3      1  6    3    26 
-7.3      1  7    3    25 
-8.3      2  8    3    33 
-9.3      2  9    3    46 
-10.3     2 10    3    46 
-11.3     2 11    3    40 
-12.3     2 12    3    35 
-13.3     2 13    3    32 
-14.3     2 14    3    39 
-1.6      1  1    6    16 
-2.6      1  2    6    12 
-3.6      1  3    6    14 
-4.6      1  4    6    13 
-5.6      1  5    6    18 
-6.6      1  6    6    16 
-7.6      1  7    6    21 
-8.6      2  8    6    22 
-9.6      2  9    6    26 
-10.6     2 10    6    23 
-11.6     2 11    6    25 
-12.6     2 12    6    22 
-13.6     2 13    6    18 
-14.6     2 14    6    21 
- 
-> attach(acne.re) 
-The following objects are masked from acne.re (pos = 4): 
- 
-    group, id, month, time 
- 
-> acne.re.anova <- aov(month~group*time+Error(id/time), data=acne.re) 
-> summary(acne.re.anova) 
- 
-Error: id 
-          Df Sum Sq Mean Sq F value   Pr(>F)     
-group      1  707.2   707.2   19.71 0.000808 *** 
-Residuals 12  430.6    35.9                      
---- 
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-Error: id:time 
-           Df Sum Sq Mean Sq F value  Pr(>F)     
-time        3  11366    3789  308.78 < 2e-16 *** 
-group:time  3    396     132   10.77 3.4e-05 *** 
-Residuals  36    442      12                     
---- 
-Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
- 
-> interaction.plot(acne.re$time, acne.re$group, acne.re$month) 
- 
-</code> 
twoway_repeated_measure_anova.1715124782.txt.gz · Last modified: 2024/05/08 08:33 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki