Lỗi tiêu chuẩn của độ dốc trong hồi quy tuyến tính piecewise với các điểm dừng đã biết


9

Tình huống

Tôi có một tập dữ liệu với một biến phụ thuộc và một biến độc lập . Tôi muốn điều chỉnh hồi quy tuyến tính từng phần liên tục với điểm dừng cố định / đã biết xảy ra tại (a_ {1}, a_ {2}, \ ldots, a_ {k}) . Các breakpoins được biết mà không có sự không chắc chắn, vì vậy tôi không muốn ước tính chúng. Sau đó, tôi phù hợp với hồi quy (OLS) có dạng y_ {i} = \ beta_ {0} + \ beta_ {1} x_ {i} + \ beta_ {2} \ operatorname {max} (x_ {i} -a_ { 1}, 0) + \ beta_ {3} \ operatorname {max} (x_ {i} -a_ {2}, 0) + \ ldots + \ beta_ {k + 1} \ operatorname {max} (x_ {i} - a_ {k}, 0) + \ epsilon_ {i} Đây là một ví dụ trongx k ( một 1 , một 2 , ... , một k ) y i = β 0 + β 1 x i + β 2 max ( x i - một 1 , 0 ) + β 3 max ( x i - một 2 , 0 ) + ... + β k + 1 max ( xyxk(một1,một2,Giáo dục,mộtk)

yTôi= =β0+β1xTôi+β2tối đa(xTôi-một1,0)+β3tối đa(xTôi-một2,0)+Giáo dục+βk+1tối đa(xTôi-mộtk,0)+εTôi
R
set.seed(123)
x <- c(1:10, 13:22)
y <- numeric(20)
y[1:10] <- 20:11 + rnorm(10, 0, 1.5)
y[11:20] <- seq(11, 15, len=10) + rnorm(10, 0, 2)

Giả sử rằng điểm dừng k1 xảy ra ở 9,6 :

mod <- lm(y~x+I(pmax(x-9.6, 0)))
summary(mod)

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          21.7057     1.1726  18.511 1.06e-12 ***
x                    -1.1003     0.1788  -6.155 1.06e-05 ***
I(pmax(x - 9.6, 0))   1.3760     0.2688   5.120 8.54e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Phần chặn và độ dốc của hai đoạn lần lượt là: và cho phần thứ nhất và và cho phần thứ hai.21,7-1.18,50,27

Điểm dừng


Câu hỏi

  1. Làm thế nào để dễ dàng tính toán đánh chặn và độ dốc của từng đoạn? Mô hình có thể được sửa lại để làm điều này trong một phép tính không?
  2. Làm thế nào để tính sai số chuẩn của từng độ dốc của từng đoạn?
  3. Làm thế nào để kiểm tra xem hai sườn liền kề có cùng độ dốc hay không (nghĩa là điểm dừng có thể được bỏ qua không)?

Câu trả lời:


7
  1. Làm thế nào để dễ dàng tính toán đánh chặn và độ dốc của từng đoạn?

Độ dốc của mỗi phân đoạn được tính bằng cách chỉ cần thêm tất cả các hệ số lên đến vị trí hiện tại. Vì vậy, ước tính độ dốc tại là .x= =15-1.1003+1.3760= =0,277

Việc đánh chặn khó hơn một chút, nhưng đó là sự kết hợp tuyến tính của các hệ số (liên quan đến các nút thắt).

Trong ví dụ của bạn, dòng thứ hai gặp dòng đầu tiên tại , vì vậy điểm màu đỏ nằm trên dòng đầu tiên ở . Do đường thứ hai đi qua điểm có độ dốc , nên phần chặn của nó là . Tất nhiên, bạn có thể đặt các bước đó lại với nhau và nó đơn giản hóa ngay đến phần chặn cho phân đoạn thứ hai = .x= =9,621,7057-1.1003×9,6= =11.1428(9,6,11.428)0,27711.1428-0,277×9,6= =8.496β0-β2k1= =21,7057-1.3760×9,6

Mô hình có thể được xác định lại để làm điều này trong một phép tính không?

Vâng, vâng, nhưng nói chung có lẽ dễ dàng hơn để tính toán nó từ mô hình.

2. Làm thế nào để tính sai số chuẩn của từng độ dốc của từng đoạn?

Kể từ khi ước tính là sự kết hợp tuyến tính của các hệ số hồi quy , nơi bao gồm 1 và 0s, phương sai là . Lỗi tiêu chuẩn là căn bậc hai của tổng các phương sai và hiệp phương sai.mộtβ^mộtmộtVar(β^)một

ví dụ: trong ví dụ của bạn, lỗi tiêu chuẩn về độ dốc của đoạn thứ hai là:

Sb <- vcov(mod)[2:3,2:3]
sqrt(sum(Sb))

cách khác ở dạng ma trận:

Sb <- vcov(mod)
a <- matrix(c(0,1,1),nr=3)
sqrt(t(a) %*% Sb %*% a)

3. Làm thế nào để kiểm tra xem hai sườn liền kề có cùng độ dốc hay không (nghĩa là điểm dừng có thể được bỏ qua không)?

Điều này được kiểm tra bằng cách xem xét hệ số trong bảng của phân khúc đó. Xem dòng này:

I(pmax(x - 9.6, 0))   1.3760     0.2688   5.120 8.54e-05 ***

Đó là sự thay đổi độ dốc ở 9.6. Nếu thay đổi đó khác 0, hai độ dốc không giống nhau. Vì vậy, giá trị p cho một bài kiểm tra rằng đoạn thứ hai có cùng độ dốc với đoạn thứ nhất nằm ngay cuối dòng đó.


(+1) Cảm ơn Glen vì câu trả lời của bạn. Chỉ một câu hỏi nhỏ liên quan đến # 2: Trong ví dụ của tôi, tôi sẽ cần ma trận phương sai hiệp phương sai của xI(pmax(x-9.6,0)), điều đó có đúng không?
COOLSerdash

Không. Tôi đã chỉnh sửa một ví dụ rõ ràng dựa trên ví dụ của bạn. Nếu bạn muốn biết thêm chi tiết, xin vui lòng hỏi.
Glen_b -Reinstate Monica

Cảm ơn rất nhiều cho việc chỉnh sửa, điều đó làm rõ nó một chút cho tôi. Vì vậy, tôi có hiểu đúng không: lỗi tiêu chuẩn là giống nhau cho mỗi độ dốc?
COOLSerdash

1
Không. Thủ tục là như nhau nhưng giá trị thì không. Lỗi tiêu chuẩn về độ dốc của đoạn đầu tiên nằm trong bảng hồi quy của bạn (0,1788). Sai số chuẩn của độ dốc của đoạn thứ hai là 0,1160. Nếu chúng ta có một phân khúc thứ ba, nó sẽ liên quan đến các thuật ngữ hiệp phương sai nhiều hơn trong tổng của nó (trước khi căn bậc hai được thực hiện).
Glen_b -Reinstate Monica

6

Cách tiếp cận ngây thơ của tôi, mà trả lời câu hỏi 1:

mod2 <- lm(y~I((x<9.6)*x)+as.numeric((x<9.6))+
             I((x>=9.6)*x)+as.numeric((x>=9.6))-1)
summary(mod2)

#                        Estimate Std. Error t value Pr(>|t|)    
# I((x < 9.6) * x)        -1.1040     0.2328  -4.743 0.000221 ***
# as.numeric((x < 9.6))   21.7188     1.3099  16.580 1.69e-11 ***
# I((x >= 9.6) * x)        0.2731     0.1560   1.751 0.099144 .  
# as.numeric((x >= 9.6))   8.5442     2.6790   3.189 0.005704 ** 

Nhưng tôi không chắc liệu các số liệu thống kê (cụ thể là mức độ tự do) có được thực hiện chính xác hay không, nếu bạn làm theo cách này.


(+1) Cảm ơn bạn rất nhiều vì câu trả lời của bạn. Nó cung cấp một cách rất thuận tiện để tính toán trực tiếp các phần chặn và độ dốc, cảm ơn!
COOLSerdash
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.