Açık bir şeyi kaçırıp kaçırmadığımı merak ediyorum, ancak bunu ANCOVA kullanarak istatistiksel olarak yapamaz mıydınız? Önemli bir konu iki regresyonlarında yamaçlar tahmini olmasıdır ile hata. Bunlar, genel olarak popülasyonlardaki eğimlerin tahminidir. Endişe, iki regresyon çizgileri paralel olup olmadığı ise nüfusta o zaman karşılaştırmak mantıklı değil ile doğrudan kesin denklik için; her ikisi de dikkate alınması gereken hata / belirsizliğe tabidir.bir1bir2
Bunu istatistiksel bir bakış açısıyla düşünürsek ve her iki veri kümesi için ve verileri anlamlı bir şekilde birleştirebilirsek (yani her iki kümedeki ve , ikisi için benzer aralıklara sahip iki popülasyondan çizilir) değişkenler sadece iki popülasyonda farklı olan aralarındaki ilişkidir), aşağıdaki iki modele uyabiliriz:xyxy
y^=b0+b1x +b2g
ve
y^=b0+b1x +b2g+b3x g
Burada model katsayılarıdır ve , her bir gözlemin hangi veri kümesine ait olduğunu gösteren bir gruplama değişkeni / faktörüdür.bbeng
İkinci, daha karmaşık modelin verilere daha basit modelden daha iyi uyup uymadığını test etmek için bir ANOVA tablosu veya F-oranı kullanabiliriz. Daha basit model, iki çizginin eğimlerinin aynı olduğunu ( ), ancak çizgilerin birbirinden miktarıyla .b1b2
Daha karmaşık model, hattın eğimi ile gruplama değişkeni arasındaki etkileşimi içerir. Bu etkileşim terimi için katsayı sıfırdan önemli ölçüde farklıysa veya ANOVA / F oranı daha karmaşık model verilere daha iyi uyduğunu gösteriyorsa, iki çizginin paralel olduğu Null hipotezini reddetmeliyiz.
Burada kukla veriler kullanan R'deki bir örnek. İlk olarak, eşit eğimli veriler:
set.seed(2)
samp <- factor(sample(rep(c("A","B"), each = 50)))
d1 <- data.frame(y = c(2,5)[as.numeric(samp)] + (0.5 * (1:100)) + rnorm(100),
x = 1:100,
g = samp)
m1 <- lm(y ~ x * g, data = d1)
m1.null <- lm(y ~ x + g, data = d1)
anova(m1.null, m1)
Hangi verir
> anova(m1.null, m1)
Analysis of Variance Table
Model 1: y ~ x + g
Model 2: y ~ x * g
Res.Df RSS Df Sum of Sq F Pr(>F)
1 97 122.29
2 96 122.13 1 0.15918 0.1251 0.7243
Bu veri örneğindeki eşit eğimlerin sıfır hipotezini reddetmediğimizi gösterir. Tabii ki, gerçekten bir tane varsa, bir farkı tespit etmek için yeterli güce sahip olduğumuzu garanti etmek isteriz, böylece örnek boyutumuz beklenen etki için çok küçük olduğu için yanlışlıkla boşluğu reddetmemize yol açmadık.
Şimdi farklı yamaçlarla.
set.seed(42)
x <- seq(1, 100, by = 2)
d2 <- data.frame(y = c(2 + (0.5 * x) + rnorm(50),
5 + (1.5 * x) + rnorm(50)),
x = x,
g = rep(c("A","B"), each = 50))
m2 <- lm(y ~ x * g, data = d2)
m2.null <- lm(y ~ x + g, data = d2)
anova(m2.null, m2)
Hangi verir:
> anova(m2.null, m2)
Analysis of Variance Table
Model 1: y ~ x + g
Model 2: y ~ x * g
Res.Df RSS Df Sum of Sq F Pr(>F)
1 97 21132.0
2 96 103.8 1 21028 19439 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Burada sıfır hipotezine karşı önemli kanıtlarımız var ve bu yüzden alternatif lehine reddedebiliriz (başka bir deyişle, iki çizginin eğimlerinin eşit olduğu hipotezini reddediyoruz).
iki modeldeki etkileşim terimleri ( ), iki grup için eğimlerde tahmini farkı verir. İlk model için, eğimlerdeki farkın tahmini küçüktür (~ 0.003)b3x g
> coef(m1)
(Intercept) x gB x:gB
2.100068977 0.500596394 2.659509181 0.002846393
ve bunun üzerine bir testi, eğimlerdeki bu farkın 0 olduğu yönündeki sıfır hipotezini reddedemez:t
> summary(m1)
Call:
lm(formula = y ~ x * g, data = d1)
Residuals:
Min 1Q Median 3Q Max
-2.32886 -0.81224 -0.01569 0.93010 2.29984
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.100069 0.334669 6.275 1.01e-08 ***
x 0.500596 0.005256 95.249 < 2e-16 ***
gB 2.659509 0.461191 5.767 9.82e-08 ***
x:gB 0.002846 0.008047 0.354 0.724
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.128 on 96 degrees of freedom
Multiple R-squared: 0.9941, Adjusted R-squared: 0.9939
F-statistic: 5347 on 3 and 96 DF, p-value: < 2.2e-16
İki grup için eğimleri farklı kıldığımız ikinci veri setine takılan modele dönersek, iki çizginin eğimlerindeki tahmini farkın ~ 1 birim olduğunu görürüz.
> coef(m2)
(Intercept) x gB x:gB
2.3627432 0.4920317 2.8931074 1.0048653
"A" grubu için eğim ~ 0.49'dur ( x
yukarıdaki çıktıda), "B" grubu için eğimi elde ederken, "A" grubunun eğimine fark eğimleri (hatırlama etkileşim terimiyle verin) eklememiz gerekir. ; ~ 0.49 + ~ 1 = ~ 1.49. Bu 1.5'in "B" grubu için belirtilen eğime oldukça yakındır. Bu eğim farkına ilişkin bir testi, fark için tahminin 0'dan uzakta olduğunu gösterir:t
> summary(m2)
Call:
lm(formula = y ~ x * g, data = d2)
Residuals:
Min 1Q Median 3Q Max
-3.1962 -0.5389 0.0373 0.6952 2.1072
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.362743 0.294220 8.031 2.45e-12 ***
x 0.492032 0.005096 96.547 < 2e-16 ***
gB 2.893107 0.416090 6.953 4.33e-10 ***
x:gB 1.004865 0.007207 139.424 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.04 on 96 degrees of freedom
Multiple R-squared: 0.9994, Adjusted R-squared: 0.9994
F-statistic: 5.362e+04 on 3 and 96 DF, p-value: < 2.2e-16