كيفية القيام بذلك:العلاقة مع "كتل" (أو "تدابير المتكررة" ?!)?

StackOverflow https://stackoverflow.com/questions/2336056

  •  22-09-2019
  •  | 
  •  

سؤال

يجب الإعداد التالية لتحليل:لدينا حوالي 150 مواضيع و كل موضوع أجرينا زوج من الاختبارات (في ظل ظروف مختلفة) 18 مرة.18 ظروف مختلفة من اختبار متكاملان ، في مثل هذه الطريقة بحيث إذا نحن أين المتوسط خلال الاختبارات (لكل مادة) ، سوف نحصل على أي ارتباط بين الاختبارات (بين المواضيع).ما نود أن نعرف ما هي العلاقة (و قيمة P) بين الاختبارات في داخل المواضيع, ولكن على كل المواضيع.

الطريقة التي فعلت هذا من قبل الآن أن تقوم العلاقة لكل موضوع ، وبعد ذلك ننظر في توزيع الارتباطات الواردة حتى لمعرفة ما اذا كان يعني مختلفة ثم 0.ولكن أظن أن هناك قد يكون أفضل طريقة للإجابة على نفس السؤال (شخص ما قال لي شيئا عن "جغرافية الارتباط" ، ولكن الضحلة البحث لم يساعد).

p.s:أنا أفهم قد يكون هناك مكان هنا إلى القيام ببعض النوع من خلط نموذج, ولكن أود أن تفضل هذا "الارتباط" ، وأنا غير متأكد من كيفية استخراج مثل هذا الإخراج من نموذج مختلط.

أيضا هنا هو القصير وهمية رمز لإعطاء فكرة عن ما أتحدث عنه:

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...)

أي الأفكار سيكون موضع ترحيب.

أفضل ، Tal

هل كانت مفيدة؟

المحلول

أنا أتفق مع تريستان - كنت تبحث عن المحكمة الجنائية الدولية.والفرق الوحيد من معيار التنفيذ هو أن اثنين من المقيمين (الاختبارات) تقييم كل الموضوع مرارا وتكرارا.قد يكون هناك التنفيذ التي تسمح بذلك.في هذه الأثناء هنا هو نهج آخر على العلاقة.

يمكنك استخدام "العامة النماذج الخطية" ، والتي هي التعميمات من النماذج الخطية التي تسمح صراحة العلاقة بين المخلفات.رمز أدناه تطبق هذا باستخدام gls وظيفة nlme الحزمة.أنا متأكد من أن هناك طرق أخرى كذلك.لاستخدام هذه الوظيفة علينا أولا إعادة تشكيل البيانات إلى "طويلة" تنسيق.أنا أيضا تغيير أسماء المتغيرات إلى x و 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

نصائح أخرى

إذا فهمت سؤالك بشكل صحيح ، كنت مهتما في الحوسبة intraclass الارتباط بين اختبارات متعددة.هناك تطبيق في psy حزمة ، على الرغم من أنني لم تستخدم.

إذا كنت ترغب في إجراء الاستدلال على علاقة تقدير ، يمكن التمهيد المواضيع.فقط تأكد من أن تبقي الاختبارات معا لكل عينة.

أنا لست خبيرا ولكن هذا يبدو لي ما تريد.إنها آلية, قصيرة إلى الرمز ، يعطي نفس الارتباطات مثل المثال أعلاه ، وتنتج 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top