sm.ancova関数の形式は以下。
sm.ancova(x, y, group, h, model = "none", h.alpha = NA, weights=NA, covar = diag(1/weights), ...)
引数modelは"none", "equal", "parallel"のいずれかのオプションが選べる。
- "none":各グループが完全に独立した回帰直線を持つことを仮定する。各グループは独自の傾き(slope)と切片(intercept)を持ちます。
- "equal":すべてのグループが共通の回帰直線を持つことを仮定する。すべてのグループにおいて傾きと切片が同じ。
- "parallel":このオプションは、すべてのグループが共通の傾きを持つが、異なる切片を持つことを仮定する。つまり共変量の影響(傾き)はすべてのグループで同じたが、切片(基本レベル)は異なる可能性があるという仮定。
ダミーデータの生成
library(dplyr) set.seed(0) group1_scores <- sample(70:100, 50, replace = TRUE) group2_scores <- sample(60:90, 50, replace = TRUE) Covariate_Variable <- sample(80:140, 100, replace = TRUE)
> group1_scores [1] 83 94 73 76 70 71 98 92 80 83 87 96 88 70 90 90 79 91 83 79 76 78 84 90 74 78 94 83 74 74 71 79 99 94 81 84 70 89 72 75 79 79 75 84 89 97 89 95 81 94 > group2_scores [1] 82 65 84 67 71 84 82 83 65 85 66 78 69 65 83 73 61 72 77 81 73 65 60 78 78 67 65 82 90 71 65 67 66 70 76 63 72 67 84 75 84 82 73 79 66 88 72 87 81 88 > Covariate_Variable [1] 107 123 127 112 124 100 110 117 96 88 118 102 98 133 129 105 127 122 109 121 111 118 139 130 108 113 89 80 122 138 105 94 137 108 103 121 127 132 91 118 103 [42] 132 107 101 119 112 98 105 114 122 80 108 93 101 85 107 131 120 116 140 125 128 82 101 114 86 125 114 130 123 128 120 139 129 135 133 128 129 134 126 106 86 [83] 126 99 136 103 130 132 95 98 115 81 127 80 123 118 120 139 137 92
データの変形
Score <- c(group1_scores, group2_scores) Group <- factor(c(rep("Group1", 50), rep("Group2", 50)))
> Score [1] 83 94 73 76 70 71 98 92 80 83 87 96 88 70 90 90 79 91 83 79 76 78 84 90 74 78 94 83 74 74 71 79 99 94 81 84 70 89 72 75 79 79 75 84 89 97 89 95 81 94 82 65 84 67 71 [56] 84 82 83 65 85 66 78 69 65 83 73 61 72 77 81 73 65 60 78 78 67 65 82 90 71 65 67 66 70 76 63 72 67 84 75 84 82 73 79 66 88 72 87 81 88 > Group [1] Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 [24] Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 Group1 [47] Group1 Group1 Group1 Group1 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 [70] Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 [93] Group2 Group2 Group2 Group2 Group2 Group2 Group2 Group2 Levels: Group1 Group2
sm.ancova関数を使用したノンパラメトリックANCOVA
library(sm) sm.ancova(x = Covariate_Variable, y = Score, group = Group, model = "parallel")
Test of parallelism : h = 5.36634 p-value = 0.9192