1

以外の統計検定で対になった観測をどのように説明するのt-testですか? 以下では、混合効果アプローチでそうしようとして失敗した 2 つの例について説明します。

t.test(..., paired=T)例 1:での再現lm()方法

# simulate data
set.seed(66)
x1 <- rnorm(n=100, mean=30, sd=6)
x2 <- rnorm(n=100, mean=60, sd=6)

# arrange the data in a dataset
dd <- data.frame(ID=rep(paste("ID", seq(1,100, by=1), sep="_"),2),
                        response=c(x1,x2),
                        group=c(rep("A", 100), rep("B", 100))
                        )
t.test(x1,x2, paired=F)
summary(lm(response~group, data=dd)) # same outcome

観測値がペアになっている場合、それを説明できますが、 (可能であれば)t.test()どのように行うのですか?lm()混合効果モデルのアプローチを使用しようとしましたが、次のようになります。

summary(lmerTest::lmer(response~group + (1+group|ID), data=dd))

エラーが発生します:

Error: number of observations (=200) <= number of random effects (=200) for term (1 + group | ID);
the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable

その間:

summary(lmerTest::lmer(response~group + (1|ID), data=dd))

実行されますが、固定効果パラメーターの推定値と関連する標準。エラーと t 値は、 によって生成されるものと同じですlm()

例 2: 対応のある観測による線形回帰

私が作成したデータセットの観察が、30 日間隔で測定された被験者からのものであると想像してみましょう。つまり、100 人の被験者のそれぞれが 0 日目に測定され、次に 30 日目に測定されました。時間の経過に伴う変化率を推定したかったのです。

dd$time=c(rep(0,100), rep(30, 100)) # add "time" variable to dd

データは次のようになります (黒の線形回帰、赤い線で結ばれた対のデータ): ここに画像の説明を入力

lm1 <- lm(response~time, data=dd)

lm1観測のペアの性質を説明していません。データの各ペアの切片と勾配が異なることを可能にする混合効果モデルを実行することを考えましたが、R は、あまりにも多くのパラメーターを推定しようとしていることに再び抗議します。

lmerTest::lmer(response ~ time + (time | ID), data=dd)
# Error: number of observations (=200) <= number of random effects (=200) for term (time | ID);
# the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable

データ ペアの切片が異なるが勾配が異なることを可能にする単純なモデル。つまり、次のようになります。

lmer(response ~ time + (1 | ID), data=dd)

次のように訴えます。

boundary (singular) fit: see ?isSingular

しかし、 によって生成されるものと同一の固定効果推定値が実行され、生成されlm()ます。

[アップデート]

@Limey は、対応のある t 検定は、2 つのグループ間の対の差がゼロではないかどうかを評価する t 検定に他ならないことを思い出させてくれました。このような一対の差は、検定のほかに任意の対応のある統計的検定を実行するために使用できます。これを確認するために、3 つの異なる「応答」変数を作成しました。これらは、さまざまな方法で組み合わせx1x2順序付けされています (それぞれ、元のランダムな順序x1、昇順とx2降順、両方とも昇順)。

dd$response2 <- c(sort(x1, decreasing = FALSE), sort(x2, decreasing = T))
dd$response3 <- c(sort(x1, decreasing = FALSE), sort(x2, decreasing = F))

ここに画像の説明を入力

対応する違いを計算しました:

dd$diff1 <- c((dd$response[1:100]-dd$response[1:100]), 
                (dd$response[101:200]-dd$response[1:100]))
dd$diff2 <- c((dd$response2[1:100]-dd$response2[1:100]), 
                (dd$response2[101:200]-dd$response2[1:100]))
dd$diff3 <- c((dd$response3[1:100]-dd$response3[1:100]), 
                (dd$response3[101:200]-dd$response3[1:100]))

ここに画像の説明を入力 そして、それらを使用して線形モデルを実行しました。

lm2.diff1 <- lm(diff1~time, data=dd)
lm2.diff2 <- lm(diff2 ~time, data=dd)
lm2.diff3 <- lm(diff3 ~time, data=dd)

勾配の推定値が異なると予想していましたが、すべて同じでした。

summary(lm2.diff1)$coeff[2] # 0.9993754
summary(lm2.diff2)$coeff[2] # 0.9993754
summary(lm2.diff3)$coeff[2] # 0.9993754

それらの傾きの推定値は、対応する「対応のない」線形モデル ( lm(response~time)lm(response2~time)、およびlm(response3~time)) から推定されたものと同じです。私は何が欠けていますか?

4

3 に答える 3