twoway_repeated_measure_anova
This is an old revision of the document!
E.g. 1
# 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")
> # 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 1 39.1 90.7 67.4 59.2 2 3 73.4 142.9 56.2 119.6 3 3 93.6 101.8 62.4 115.2 4 2 113.5 109.5 100.2 135.8 5 1 94.2 111.3 111.3 105.8 6 1 58.0 102.3 129.8 80.3 > tail(df) group baseline after_1hr after_2hr after_4hr 191 1 71.3 141.3 120.5 65.0 192 3 38.9 116.8 120.3 102.6 193 2 37.7 93.8 91.6 89.9 194 1 133.8 95.9 103.2 111.4 195 2 137.9 132.7 140.5 66.0 196 1 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 1 1 baseline 39.1 2 2 3 baseline 73.4 3 3 3 baseline 93.6 4 4 2 baseline 113.5 5 5 1 baseline 94.2 6 6 1 baseline 58.0 7 7 2 baseline 90.2 8 8 1 baseline 94.0 9 9 2 baseline 52.4 10 10 1 baseline 61.6 11 11 2 baseline 116.1 12 12 1 baseline 95.8 13 13 2 baseline 130.7 14 14 3 baseline 34.6 15 15 2 baseline 72.9 16 16 1 baseline 64.5 17 17 2 baseline 76.1 18 18 1 baseline 118.6 19 19 2 baseline 46.5 20 20 3 baseline 124.6 21 21 3 baseline 50.3 22 22 1 baseline 67.7 23 23 1 baseline 100.5 24 24 1 baseline 66.4 25 25 2 baseline 129.7 26 26 1 baseline 92.2 27 27 1 baseline 49.1 28 28 2 baseline 89.3 29 29 1 baseline 101.5 30 30 1 baseline 110.5 31 31 1 baseline 95.4 32 32 1 baseline 59.6 33 33 2 baseline 87.6 34 34 3 baseline 42.3 35 35 3 baseline 110.0 36 36 3 baseline 133.6 37 37 2 baseline 36.8 38 38 1 baseline 106.9 39 39 3 baseline 32.1 40 40 1 baseline 118.9 41 41 2 baseline 70.3 42 42 1 baseline 105.2 43 43 1 baseline 55.2 44 44 3 baseline 103.4 45 45 2 baseline 55.9 46 46 2 baseline 93.3 47 47 3 baseline 113.0 48 48 2 baseline 44.8 49 49 1 baseline 125.4 50 50 2 baseline 91.5 51 51 2 baseline 46.8 52 52 3 baseline 46.9 53 53 1 baseline 88.4 54 54 1 baseline 83.1 55 55 1 baseline 72.7 56 56 1 baseline 78.3 57 57 1 baseline 73.1 58 58 1 baseline 69.9 59 59 2 baseline 94.2 60 60 3 baseline 133.1 61 61 1 baseline 69.7 62 62 1 baseline 95.9 63 63 1 baseline 122.1 64 64 2 baseline 46.4 65 65 3 baseline 62.3 66 66 2 baseline 134.0 67 67 2 baseline 66.9 68 68 3 baseline 109.1 69 69 1 baseline 100.1 70 70 3 baseline 54.9 71 71 2 baseline 118.9 72 72 2 baseline 79.7 73 73 1 baseline 85.2 74 74 3 baseline 133.5 75 75 1 baseline 125.6 76 76 2 baseline 70.3 77 77 3 baseline 133.0 78 78 2 baseline 132.7 79 79 3 baseline 134.6 80 80 2 baseline 97.2 81 81 1 baseline 70.9 82 82 1 baseline 99.3 83 83 3 baseline 131.4 84 84 3 baseline 88.9 85 85 2 baseline 77.2 86 86 1 baseline 62.7 87 87 1 baseline 49.0 88 88 3 baseline 125.1 89 89 3 baseline 94.8 90 90 3 baseline 61.0 91 91 1 baseline 132.9 92 92 2 baseline 109.5 93 93 3 baseline 53.6 94 94 2 baseline 80.4 95 95 2 baseline 48.5 96 96 1 baseline 129.1 97 97 2 baseline 119.3 98 98 2 baseline 74.1 99 99 2 baseline 59.2 100 100 2 baseline 115.5 101 101 2 baseline 125.4 102 102 2 baseline 111.0 103 103 2 baseline 63.5 104 104 2 baseline 60.8 105 105 3 baseline 107.9 106 106 3 baseline 69.2 107 107 3 baseline 133.7 108 108 3 baseline 45.1 109 109 3 baseline 108.4 110 110 2 baseline 69.6 111 111 2 baseline 94.0 112 112 3 baseline 34.2 113 113 2 baseline 41.6 114 114 1 baseline 46.7 115 115 3 baseline 97.2 116 116 1 baseline 70.5 117 117 1 baseline 97.9 118 118 1 baseline 39.6 119 119 2 baseline 39.1 120 120 2 baseline 128.9 121 121 3 baseline 132.5 122 122 3 baseline 71.3 123 123 3 baseline 130.5 124 124 1 baseline 106.9 125 125 2 baseline 84.5 126 126 1 baseline 118.1 127 127 2 baseline 38.0 128 128 3 baseline 51.2 129 129 2 baseline 107.8 130 130 1 baseline 56.8 131 131 2 baseline 71.9 132 132 2 baseline 90.1 133 133 2 baseline 81.4 134 134 3 baseline 88.5 135 135 3 baseline 119.5 136 136 2 baseline 58.2 137 137 1 baseline 109.0 138 138 3 baseline 97.0 139 139 1 baseline 132.0 140 140 2 baseline 35.8 141 141 1 baseline 96.0 142 142 1 baseline 35.9 143 143 1 baseline 65.2 144 144 3 baseline 121.0 145 145 2 baseline 122.8 146 146 2 baseline 51.1 147 147 2 baseline 51.5 148 148 1 baseline 108.7 149 149 1 baseline 89.5 150 150 1 baseline 86.8 151 151 3 baseline 49.2 152 152 3 baseline 119.1 153 153 1 baseline 86.7 154 154 2 baseline 39.9 155 155 1 baseline 46.9 156 156 3 baseline 64.5 157 157 2 baseline 39.1 158 158 1 baseline 70.9 159 159 2 baseline 84.0 160 160 3 baseline 105.2 161 161 2 baseline 46.0 162 162 3 baseline 98.6 163 163 1 baseline 87.3 164 164 2 baseline 52.5 165 165 1 baseline 125.4 166 166 1 baseline 73.7 167 167 1 baseline 101.2 168 168 2 baseline 97.1 169 169 1 baseline 44.9 170 170 1 baseline 39.1 171 171 1 baseline 80.3 172 172 2 baseline 107.5 173 173 3 baseline 67.6 174 174 3 baseline 126.5 175 175 1 baseline 97.8 176 176 1 baseline 132.4 177 177 2 baseline 39.3 178 178 3 baseline 36.1 179 179 3 baseline 30.6 180 180 1 baseline 110.8 181 181 1 baseline 124.5 182 182 3 baseline 78.5 183 183 1 baseline 110.0 184 184 3 baseline 72.2 185 185 1 baseline 121.1 186 186 1 baseline 47.8 187 187 1 baseline 125.6 188 188 1 baseline 116.2 189 189 2 baseline 85.7 190 190 2 baseline 94.5 191 191 1 baseline 71.3 192 192 3 baseline 38.9 193 193 2 baseline 37.7 194 194 1 baseline 133.8 195 195 2 baseline 137.9 196 196 1 baseline 125.1 197 1 1 after_1hr 90.7 198 2 3 after_1hr 142.9 199 3 3 after_1hr 101.8 200 4 2 after_1hr 109.5 201 5 1 after_1hr 111.3 202 6 1 after_1hr 102.3 203 7 2 after_1hr 112.4 204 8 1 after_1hr 76.8 205 9 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 2 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 3 58104 19368 20.747 8.85e-13 *** group:time 6 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 >
twoway_repeated_measure_anova.1715124750.txt.gz · Last modified: 2024/05/08 08:32 by hkimscil