2

分析するためのセットアップは次のとおりです。約 150 人の被験者がいて、被験者ごとに (異なる条件下で) 1 組のテストを 18 回実行しました。テストの 18 の異なる条件は補完的であるため、テストのどこを平均化すると (被験者ごとに)、テスト間 (被験者間) の相関関係は得られません。私たちが知りたいのは、被験者内ではあるが、すべての被験者にわたるテスト間の相関 (および P 値) です。

これまでに私がこれを行った方法は、各被験者の相関を実行し、受信した相関の分布を調べて、平均が0ではないかどうかを確認することでした.しかし、同じ答えを出すためのより良い方法があると思います質問(誰かが「地理的相関」について何か言ったが、浅い検索では役に立たなかった)。

ps: ある種の混合モデルを実行する場所がここにある可能性があることは理解していますが、「相関」を提示することを好み、混合モデルからそのような出力を抽出する方法がわかりません。

また、ここに私が話していることのアイデアを与える短いダミーコードがあります:

attach(longley)
N <- length(Unemployed)
block <- c(
        rep( "a", N),
        rep( "b", N),
        rep( "c", N)
        )

Unemployed.3 <- c(Unemployed + rnorm(1),
                    Unemployed + rnorm(1),
                    Unemployed + rnorm(1))

GNP.deflator.3 <- c(GNP.deflator + rnorm(1),
                    GNP.deflator + rnorm(1),
                    GNP.deflator + rnorm(1))

cor(Unemployed, GNP.deflator)
cor(Unemployed.3, GNP.deflator.3)
cor(Unemployed.3[block == "a"], GNP.deflator.3[block == "a"])
cor(Unemployed.3[block == "b"], GNP.deflator.3[block == "b"])
cor(Unemployed.3[block == "c"], GNP.deflator.3[block == "c"])
(I would like to somehow combine the last three correlations...)

どんなアイデアでも歓迎します。

ベスト、タル

4

3 に答える 3

4

ICC を探している Tristan に同意します。標準的な実装との唯一の違いは、2 人の評価者 (テスト) が各被験者を繰り返し評価することです。それを可能にする実装があるかもしれません。その間、相関関係を取得するための別のアプローチを次に示します。

残差間の相関を明示的に許可する線形モデルの一般化である「一般線形モデル」を使用できます。以下のコードは、パッケージのgls関数を使用してこれを実装します。nlme他の方法もあると確信しています。この関数を使用するには、まずデータを「長い」形式に再形成する必要があります。また、簡単にするために、変数名をxandに変更しました。それがあなたの意図したことだと思うので、私はあなたのコードの代わりにy使用しました。+rnorm(N)+rnorm(1)

library(reshape)
library(nlme)
dd <- data.frame(x=Unemployed.3, y=GNP.deflator.3, block=factor(block))
dd$occasion <- factor(rep(1:N, 3))  # variable denoting measurement occasions
dd2 <- melt(dd, id=c("block","occasion"))  # reshape

# fit model with the values within a measurement occasion correlated
#   and different variances allowed for the two variables
mod <- gls(value ~ variable + block, data=dd2, 
           cor=corSymm(form=~1|block/occasion), 
           weights=varIdent(form=~1|variable))  
# extract correlation
mod$modelStruct$corStruct

モデリング フレームワークでは、尤度比検定を使用して p 値を取得できます。nlme信頼区間も提供できます。

mod2 <- gls(value ~ variable + block, data=dd2, 
           weights=varIdent(form=~1|variable))  
anova(mod, mod2)   # likelihood-ratio test for corr=0

intervals(mod)$corStruct  # confidence interval for the correlation
于 2010-02-26T15:11:10.513 に答える
1

私があなたの質問を正しく理解していれば、あなたは複数のテスト間のクラス内相関を計算することに興味があります。私は使用していませんが、 psyパッケージに実装があります。

相関推定で推論を実行したい場合は、被験者をブートストラップできます。サンプルごとにテストをまとめてください。

于 2010-02-25T23:54:12.257 に答える
0

私は専門家ではありませんが、これはあなたが望むもののように見えます。自動化されており、コードが短く、上記の例と同じ相関関係が得られ、p 値が生成されます。

> df = data.frame(block=block, Unemployed=Unemployed.3,
+ GNP.deflator=GNP.deflator.3)
> require(plyr)
Loading required package: plyr
> ddply(df, "block", function(x){
+   as.data.frame(
+     with(x,cor.test(Unemployed, GNP.deflator))[c("p.value","estimate")]
+ )})
  block    p.value  estimate
1     a 0.01030636 0.6206334
2     b 0.01030636 0.6206334
3     c 0.01030636 0.6206334

すべての詳細を表示するには、次のようにします。

> dlply(df, "block", function(x){with(x,cor.test(Unemployed, GNP.deflator))})
$a

    Pearson's product-moment correlation

data:  Unemployed and GNP.deflator 
t = 2.9616, df = 14, p-value = 0.01031
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval:
 0.1804410 0.8536976 
sample estimates:
      cor 
0.6206334 


$b

    Pearson's product-moment correlation

data:  Unemployed and GNP.deflator 
t = 2.9616, df = 14, p-value = 0.01031
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval:
 0.1804410 0.8536976 
sample estimates:
      cor 
0.6206334 


$c

    Pearson's product-moment correlation

data:  Unemployed and GNP.deflator 
t = 2.9616, df = 14, p-value = 0.01031
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval:
 0.1804410 0.8536976 
sample estimates:
      cor 
0.6206334 


attr(,"split_type")
[1] "data.frame"
attr(,"split_labels")
  block
1     a
2     b
3     c
于 2010-02-25T18:09:03.253 に答える