Tại sao tôi nhận được kết quả tương tự cho OLS và GLS trong R?


8

Khi tôi chạy mã này:

require(nlme)

a <- matrix(c(1,3,5,7,4,5,6,4,7,8,9))

b <- matrix(c(3,5,6,2,4,6,7,8,7,8,9))

res <- lm(a ~ b)

print(summary(res))

res_gls <- gls(a ~ b)

print(summary(res_gls))

Tôi nhận được các hệ số tương tự và cùng một ý nghĩa thống kê về các hệ số:

Loading required package: nlme

Call:
lm(formula = a ~ b)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.7361 -1.1348 -0.2955  1.2463  3.8234 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)   2.0576     1.8732   1.098   0.3005  
b             0.5595     0.2986   1.874   0.0937 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 2.088 on 9 degrees of freedom
Multiple R-squared: 0.2807, Adjusted R-squared: 0.2007 
F-statistic: 3.512 on 1 and 9 DF,  p-value: 0.09371 

Generalized least squares fit by REML
  Model: a ~ b 
  Data: NULL 
      AIC      BIC    logLik
  51.0801 51.67177 -22.54005

Coefficients:
                Value Std.Error  t-value p-value
(Intercept) 2.0576208 1.8731573 1.098477  0.3005
b           0.5594796 0.2985566 1.873948  0.0937

 Correlation: 
  (Intr)
b -0.942

Standardized residuals:
       Min         Q1        Med         Q3        Max 
-1.3104006 -0.5434780 -0.1415446  0.5968911  1.8311781 

Residual standard error: 2.087956 
Degrees of freedom: 11 total; 9 residual

Tại sao chuyện này đang xảy ra? Trong trường hợp nào thì ước tính OLS giống với ước tính GLS?


5
Một mô hình GLS cho phép các lỗi tương quan và / hoặc có phương sai không bằng nhau. Nếu bạn không chỉ định mối tương quan hoặc khác biệt của phương sai dư với các tùy chọn correlationhoặc weightstrong glshàm, kết quả từ GLS bằng với kết quả từ lm.
COOLSerdash

2
OK, Cảm ơn điều này có ý nghĩa. Vì vậy, về cơ bản tôi đã có kết quả tương tự vì tôi đã nói glsđể hành động như thế lm. Một câu hỏi khác là những gì tôi nên đặt cho correlationweights.
Akavall

Câu trả lời:


13

Bạn nhận được kết quả tương tự vì bạn không chỉ định cấu trúc phương sai hoặc tương quan đặc biệt trong glshàm. Không có các tùy chọn như vậy, GLS hoạt động như một OLS. Ưu điểm của mô hình GLS so với hồi quy bình thường là khả năng chỉ định cấu trúc tương quan (tùy chọn correlation) hoặc cho phép phương sai dư khác nhau (tùy chọn weights). Hãy để tôi chỉ ra điều này với một ví dụ.

library(nlme)

set.seed(1500)

x <- rnorm(10000,100,12) # generate x with arbitrary values

y1 <- 10 + 15*x + rnorm(10000,0,5) # the first half of the dataset

y2 <-  -2 - 5*x + rnorm(10000,0,15) # the 2nd half of the data set with 3 times larger residual SD (15 vs. 5)

y <- c(y1, y2)
x.new <- c(x, x)

dummy.var <- c(rep(0, length(y1)), rep(1, length(y2))) # dummy variable to distinguish the first half of the dataset (y1) from the second (y2)

# Calculate a normal regression model   

lm.mod <- lm(y~x.new*dummy.var)

summary(lm.mod)

Coefficients:
                 Estimate Std. Error   t value Pr(>|t|)    
(Intercept)      10.27215    0.94237    10.900   <2e-16 ***
x.new            14.99691    0.00935  1603.886   <2e-16 ***
dummy.var       -12.07076    1.33272    -9.057   <2e-16 ***
x.new:dummy.var -19.99891    0.01322 -1512.387   <2e-16 ***

# Calculate a GLS without any options

gls.mod.1 <- gls(y~x.new*dummy.var)

summary(gls.mod.1)

Coefficients:
                    Value Std.Error    t-value p-value
(Intercept)      10.27215 0.9423749    10.9003       0
x.new            14.99691 0.0093504  1603.8857       0
dummy.var       -12.07076 1.3327194    -9.0572       0
x.new:dummy.var -19.99891 0.0132234 -1512.3868       0

# GLS again, but allowing different residual variance for y1 and y2

gls.mod.2 <- gls(y~x.new*dummy.var, weights=varIdent(form=~1|dummy.var))

summary(gls.mod.2)

 Parameter estimates:
       0        1 
1.000000 2.962565 

Coefficients:
                    Value Std.Error   t-value p-value
(Intercept)      10.27215 0.4262268    24.100       0
x.new            14.99691 0.0042291  3546.144       0
dummy.var       -12.07076 1.3327202    -9.057       0
x.new:dummy.var -19.99891 0.0132234 -1512.386       0

# Perform a likelihood ratio test

anova(gls.mod.1, gls.mod.2)

          Model df      AIC      BIC    logLik   Test  L.Ratio p-value
gls.mod.1     1  5 153319.4 153358.9 -76654.69                        
gls.mod.2     2  6 143307.2 143354.6 -71647.61 1 vs 2 10014.15  <.0001

Mô hình GLS đầu tiên ( gls.mod.1) và mô hình hồi quy tuyến tính bình thường ( lm.mod) mang lại kết quả chính xác như nhau. Mô hình GLS cho phép các độ lệch chuẩn còn lại khác nhau ( gls.mod.2) ước tính SD dư của y2nó lớn hơn khoảng 3 lần so với SD còn lại y1, chính xác là những gì chúng tôi đã chỉ định khi chúng tôi tạo dữ liệu. Các hệ số hồi quy trên thực tế là như nhau, nhưng các lỗi tiêu chuẩn đã thay đổi. Thử nghiệm tỷ lệ khả năng (và AIC) cho thấy mô hình GLS với các phương sai dư khác nhau ( gls.mod.2) phù hợp với dữ liệu tốt hơn mô hình bình thường ( lm.modhoặc gls.mod.1).


Cấu trúc phương sai và tương quan trong gls

Bạn có thể chỉ định một số cấu trúc phương sai trong glshàm và tùy chọn weights. Xem ở đây để xem danh sách. Để biết danh sách các cấu trúc tương quan cho tùy chọn correlationxem tại đây .


Điều gì quyết định cấu trúc phương sai được chọn?
Rafael

@Rafael Trong trường hợp này, tôi đã mô phỏng dữ liệu và biết, nên sử dụng cấu trúc phương sai nào. Trong thực tế, tôi sẽ thử các cấu trúc phương sai khác nhau dựa trên kiến ​​thức chủ đề và đồ họa khám phá. Các mô hình khác nhau với các cấu trúc phương sai khác nhau sau đó có thể được so sánh bằng cách sử dụng các thử nghiệm tỷ lệ khả năng. Tôi không biết nếu có một quy trình được đề xuất "tiêu chuẩn vàng" để chọn cấu trúc phương sai.
COOLSerdash

Xin chào COOLSerdash, cảm ơn câu trả lời của bạn. Tôi sẽ thử các cấu trúc và so sánh mô hình khác nhau bằng cách sử dụng thử nghiệm LR.
Rafael

1

và để làm rõ, trong trường hợp tương quan nối tiếp của phần dư, bạn chỉ cần sử dụng ước lượng OLS của nó, ví dụ gls(..., cor=corAR1(0.6)), ở đây là 0,6, cũng như thứ tự đến từ OLS, bạn có thể tính toán chúng bằng cách sử dụng arhàm cho phần dư của OLS

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.