Tôi tự hỏi nếu tôi thiếu một cái gì đó rõ ràng, nhưng bạn không thể làm điều này một cách thống kê bằng ANCOVA? Một vấn đề quan trọng là độ dốc trong hai hồi quy được ước tính có lỗi. Chúng là ước tính của các sườn trong quần thể lớn. Nếu mối quan tâm là liệu hai dòng hồi quy là song song hay không trong dân số thì nó không có ý nghĩa để so sánh với trực tiếp cho tương đương chính xác; cả hai đều có lỗi / không chắc chắn cần phải được tính đến.a 2một1một2
Nếu chúng ta nghĩ về điều này theo quan điểm thống kê và chúng ta có thể kết hợp dữ liệu trên và cho cả hai tập dữ liệu theo một cách có ý nghĩa (nghĩa là và trong cả hai tập hợp được rút ra từ hai quần thể có phạm vi tương tự cho hai tập hợp các biến đó chỉ là mối quan hệ giữa chúng khác nhau trong hai quần thể), sau đó chúng ta có thể phù hợp với hai mô hình sau:y x yxyxy
y^= b0+ b1x + b2g
và
y^= =b0+b1x +b2g+ b3x g
Trong đó là các hệ số mô hình và g là biến / yếu tố nhóm, cho biết tập dữ liệu nào mà mỗi quan sát thuộc về.bTôig
Chúng ta có thể sử dụng bảng ANOVA hoặc tỷ lệ F để kiểm tra xem mô hình thứ hai phức tạp hơn có phù hợp với dữ liệu hơn mô hình đơn giản hơn không. Mô hình đơn giản hơn nói rằng độ dốc của hai đường thẳng là ( ) nhưng các đường được bù với nhau bằng một lượng b 2 .b1b2
Mô hình phức tạp hơn bao gồm sự tương tác giữa độ dốc của đường và biến nhóm. Nếu hệ số cho thuật ngữ tương tác này khác đáng kể so với 0 hoặc tỷ lệ ANOVA / F chỉ ra mô hình phức tạp hơn phù hợp với dữ liệu hơn thì chúng ta phải loại bỏ giả thuyết Null rằng hai đường thẳng song song.
Dưới đây là một ví dụ trong R sử dụng dữ liệu giả. Đầu tiên, dữ liệu có độ dốc bằng nhau:
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)
Mà cho
> 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
Chỉ ra rằng chúng ta không bác bỏ giả thuyết khống về độ dốc bằng nhau trong mẫu dữ liệu này. Tất nhiên, chúng tôi muốn đảm bảo với bản thân rằng chúng tôi có đủ sức mạnh để phát hiện sự khác biệt nếu thực sự có một điều đó để chúng tôi không dẫn đến thất bại trong việc từ chối null vì kích thước mẫu của chúng tôi quá nhỏ so với hiệu quả mong đợi.
Bây giờ với các độ dốc khác nhau.
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)
Cung cấp cho:
> 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
Ở đây chúng tôi có bằng chứng đáng kể chống lại giả thuyết null và do đó chúng tôi có thể từ chối nó theo hướng thay thế (nói cách khác, chúng tôi bác bỏ giả thuyết rằng độ dốc của hai đường bằng nhau).
b3x g
> coef(m1)
(Intercept) x gB x:gB
2.100068977 0.500596394 2.659509181 0.002846393
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
Nếu chúng ta chuyển sang mô hình phù hợp với tập dữ liệu thứ hai, ở đó chúng ta tạo độ dốc cho hai nhóm khác nhau, chúng ta sẽ thấy rằng sự khác biệt ước tính về độ dốc của hai đường là ~ 1 đơn vị.
> coef(m2)
(Intercept) x gB x:gB
2.3627432 0.4920317 2.8931074 1.0048653
x
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