井出草平の研究ノート

ノンパラメトリックANCOVA

rdrr.io

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