Loại bỏ thuật ngữ chặn có ý nghĩa thống kê làm tăng


101

Trong một mô hình tuyến tính đơn giản với một biến giải thích duy nhất,

αi=β0+β1δi+ϵi

Tôi thấy rằng việc loại bỏ thuật ngữ chặn giúp cải thiện sự phù hợp rất nhiều (giá trị của đi từ 0,3 đến 0,9). Tuy nhiên, thuật ngữ đánh chặn dường như có ý nghĩa thống kê.R2

Với đánh chặn:

Call:
lm(formula = alpha ~ delta, data = cf)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.72138 -0.15619 -0.03744  0.14189  0.70305 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.48408    0.05397    8.97   <2e-16 ***
delta        0.46112    0.04595   10.04   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.2435 on 218 degrees of freedom
Multiple R-squared: 0.316,    Adjusted R-squared: 0.3129 
F-statistic: 100.7 on 1 and 218 DF,  p-value: < 2.2e-16

Không có đánh chặn:

Call:
lm(formula = alpha ~ 0 + delta, data = cf)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.92474 -0.15021  0.05114  0.21078  0.85480 

Coefficients:
      Estimate Std. Error t value Pr(>|t|)    
delta  0.85374    0.01632   52.33   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.2842 on 219 degrees of freedom
Multiple R-squared: 0.9259,   Adjusted R-squared: 0.9256 
F-statistic:  2738 on 1 and 219 DF,  p-value: < 2.2e-16

Làm thế nào bạn sẽ giải thích những kết quả này? Có nên đưa một thuật ngữ chặn trong mô hình hay không?

Biên tập

Đây là tổng số còn lại của hình vuông:

RSS(with intercept) = 12.92305
RSS(without intercept) = 17.69277

14
Tôi nhớ là tỷ lệ được giải thích cho tổng phương sai CHỈ nếu bao gồm cả phần chặn. Nếu không, nó không thể được bắt nguồn và mất đi sự giải thích của nó. R2
Momo

@Momo: Điểm tốt. Tôi đã tính tổng số bình phương còn lại cho mỗi mô hình, dường như gợi ý rằng mô hình có thuật ngữ chặn là phù hợp hơn bất kể nói gì. R2
Ernest A

4
Vâng, RSS phải đi xuống (hoặc ít nhất là không tăng) khi bạn bao gồm một tham số bổ sung. Quan trọng hơn, phần lớn suy luận tiêu chuẩn trong các mô hình tuyến tính không áp dụng khi bạn triệt tiêu chặn (ngay cả khi nó không có ý nghĩa thống kê).
Macro

14
Những gì làm khi không có đánh chặn là nó tính (chú ý, không trừ đi giá trị trung bình trong các điều khoản mẫu số). Điều này làm cho mẫu số lớn hơn, đối với MSE tương tự hoặc tương tự làm cho tăng. R
R2=1i(yiy^i)2iyi2
R2
Đức hồng y

5
Các không phải là nhất thiết phải lớn hơn. Nó chỉ lớn hơn mà không bị chặn miễn là MSE của sự phù hợp trong cả hai trường hợp là tương tự nhau. Nhưng, lưu ý rằng như @Macro đã chỉ ra, tử số cũng lớn hơn trong trường hợp không có đánh chặn nên nó phụ thuộc vào cái nào thắng! Bạn đúng rằng họ không nên so sánh với nhau nhưng bạn cũng biết rằng SSE có khả năng đánh chặn sẽ luôn nhỏ hơn SSE mà không bị chặn. Đây là một phần của vấn đề với việc sử dụng các biện pháp trong mẫu để chẩn đoán hồi quy. Mục tiêu cuối cùng của bạn cho việc sử dụng mô hình này là gì? R2
Đức hồng y

Câu trả lời:


131

Trước hết, chúng ta nên hiểu Rphần mềm đang làm gì khi không có phần chặn nào được đưa vào mô hình. Hãy nhớ lại rằng tính toán thông thường của khi có một phần chặn là Sự bình đẳng đầu tiên chỉ xảy ra do sự bao gồm của phần chặn trong mô hình mặc dù điều này có lẽ là phổ biến hơn trong hai cách viết nó. Các thứ hai bình đẳng thực sự cung cấp những giải thích tổng quát hơn! Điểm này cũng là địa chỉ trong câu hỏi liên quan này .R2

R2=i(y^iy¯)2i(yiy¯)2=1i(yiy^i)2i(yiy¯)2.

Nhưng, điều gì xảy ra nếu không có đánh chặn trong mô hình?

Chà, trong trường hợp đó, R( âm thầm! ) Sử dụng mẫu đã sửa đổi

R02=iy^i2iyi2=1i(yiy^i)2iyi2.

Nó giúp nhớ lại những gì đang cố đo. Trong trường hợp trước, nó đang so sánh mô hình hiện tại của bạn với mô hình tham chiếu chỉ bao gồm một phần chặn (tức là thuật ngữ không đổi). Trong trường hợp thứ hai, không có đánh chặn, vì vậy sẽ rất ít khi so sánh nó với một mô hình như vậy. Vì vậy, thay vào đó, được tính toán, trong đó hoàn toàn sử dụng mô hình tham chiếu chỉ tương ứng với nhiễu .R 2 0R2R02

Trong phần tiếp theo dưới đây, tôi tập trung vào biểu thức thứ hai cho cả và vì biểu thức đó khái quát cho các bối cảnh khác và nói chung là tự nhiên hơn khi nghĩ về mọi thứ theo các phần dư.R 2 0R2R02

Nhưng, chúng khác nhau như thế nào, và khi nào?

Chúng ta hãy tìm hiểu sơ lược về một số đại số tuyến tính và xem liệu chúng ta có thể tìm ra điều gì đang xảy ra không. Trước hết, hãy gọi các giá trị được trang bị từ mô hình bằng hàm chặn và các giá trị được trang bị từ mô hình mà không chặn . y^y~

Chúng ta có thể viết lại các biểu thức cho và dưới dạng và tương ứng.R2R02

R2=1yy^22yy¯122,
R02=1yy~22y22,

Bây giờ, vì , sau đó khi và chỉ khi y22=yy¯122+ny¯2R02>R2

yy~22yy^22<1+y¯21nyy¯122.

Phía bên trái lớn hơn một vì mô hình tương ứng với được lồng trong phạm vi của . Thuật ngữ thứ hai ở phía bên tay phải là bình phương trung bình của các phản hồi chia cho lỗi bình phương trung bình của mô hình chỉ chặn. Vì vậy, giá trị trung bình của phản hồi so với biến thể khác càng lớn, chúng ta càng có nhiều "chùng" và cơ hội thống trị .y~y^R02R2

Lưu ý rằng tất cả các công cụ phụ thuộc vào mô hình nằm ở bên trái và các công cụ phụ thuộc không theo mô hình nằm ở bên phải.

Ok, vậy làm thế nào để chúng ta làm cho tỷ lệ bên trái nhỏ?

Hãy nhớ lại rằng và trong đó và là ma trận chiếu tương ứng với các không gian con và sao cho .y~=P0yy^=P1yP0P1S0S1S0S1

Vì vậy, để tỷ lệ gần với một, chúng ta cần các không gian con và rất giống nhau. Bây giờ và chỉ khác nhau bởi liệu có phải là vectơ cơ sở hay không, vì vậy điều đó có nghĩa là tốt hơn là một không gian con đã nằm rất gần với .S0S1S0S11S01

Về bản chất, điều đó có nghĩa là công cụ dự đoán của chúng ta có phần bù trung bình mạnh hơn và phần bù trung bình này sẽ chi phối sự thay đổi của công cụ dự đoán.

Một ví dụ

Ở đây chúng tôi cố gắng tạo ra một ví dụ với một đánh chặn rõ ràng trong mô hình và hành vi này gần với trường hợp trong câu hỏi. Dưới đây là một số Rmã đơn giản để chứng minh.

set.seed(.Random.seed[1])

n <- 220
a <- 0.5
b <- 0.5
se <- 0.25

# Make sure x has a strong mean offset
x <- rnorm(n)/3 + a
y <- a + b*x + se*rnorm(x)

int.lm   <- lm(y~x)
noint.lm <- lm(y~x+0)  # Intercept be gone!

# For comparison to summary(.) output
rsq.int <- cor(y,x)^2
rsq.noint <- 1-mean((y-noint.lm$fit)^2) / mean(y^2)

Điều này cho đầu ra sau. Chúng tôi bắt đầu với mô hình với đánh chặn.

# Include an intercept!
> summary(int.lm)

Call:
lm(formula = y ~ x)

Residuals:
      Min        1Q    Median        3Q       Max
-0.656010 -0.161556 -0.005112  0.178008  0.621790

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.48521    0.02990   16.23   <2e-16 ***
x            0.54239    0.04929   11.00   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.2467 on 218 degrees of freedom
Multiple R-squared: 0.3571,     Adjusted R-squared: 0.3541
F-statistic: 121.1 on 1 and 218 DF,  p-value: < 2.2e-16

Sau đó, xem những gì xảy ra khi chúng tôi loại trừ chặn.

# No intercept!
> summary(noint.lm)

Call:
lm(formula = y ~ x + 0)

Residuals:
     Min       1Q   Median       3Q      Max
-0.62108 -0.08006  0.16295  0.38258  1.02485

Coefficients:
  Estimate Std. Error t value Pr(>|t|)
x  1.20712    0.04066   29.69   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3658 on 219 degrees of freedom
Multiple R-squared: 0.801,      Adjusted R-squared: 0.8001
F-statistic: 881.5 on 1 and 219 DF,  p-value: < 2.2e-16

Dưới đây là một biểu đồ của dữ liệu với mô hình có chặn màu đỏ và mô hình không có chặn màu xanh lam.

Biểu đồ dữ liệu với các đường hồi quy


4
Điều này thực sự ngoạn mục, +1. Một câu hỏi: thông thường khi chúng tôi muốn phân xử các mô hình b / t 2, chúng tôi thực hiện một thử nghiệm mô hình lồng nhau, liệu điều này có loại trừ điều đó hay không, hoặc vẫn còn hiệu lực để kiểm tra một mô hình rút gọn với việc chặn mô hình đầy đủ với nó ?
gung

5
@gung: Không, tôi không tin có bất cứ điều gì ngăn cản chúng tôi từ -test điển hình . Thử nghiệm không phụ thuộc vào sự hiện diện của đánh chặn và thực sự, tôi tin rằng -statistic sẽ hoạt động trong trường hợp này là . Điều này cung cấp cho chúng tôi một chút thông tin định lượng trong đó, nếu thực sự , thì chúng tôi biết rằng tất nhiên, giả sử, tôi đã thực hiện đúng đại số. FF
F=(n2)(\y\ytilde22\y\yhat221)
R02>R12
F<(n2)y¯2n1\yy¯\one22,
Đức hồng y

1
Tôi thích biểu thứcR02=Y~2Y2
Stéphane Laurent

3
@ naught101: Tôi sẽ không nói nó đúng hơn , nhưng nói chung đó là một quan điểm hợp lý không kém. Đối với giải trình bày hiện tại, thật thuận tiện khi coi nó là vắng mặt theo nghĩa cuối cùng chúng ta quan tâm đến mối quan hệ giữa các không gian con và . Sự khác biệt giữa hai là sự hiện diện hoặc thiếu của vectơ cơ sở . S1S01
Đức hồng y

1
Tôi đang thiếu một cái gì đó. Là những gì R làm, đúng ? Ý tôi là giá trị R ^ 2 được báo cáo, thậm chí có thể so sánh từ xa giữa trường hợp có và không có trường hợp chặn?
Andy Clifton

1

Tôi sẽ quyết định dựa trên các tiêu chí thông tin như tiêu chí Akaike hoặc Bayes-Schwarz thay vì R ^ 2; thậm chí sau đó tôi sẽ không xem những điều này là tuyệt đối.

Nếu bạn có một quá trình trong đó độ dốc gần bằng 0 và tất cả dữ liệu nằm xa điểm gốc, thì R ^ 2 chính xác của bạn sẽ ở mức thấp vì hầu hết các biến thể trong dữ liệu sẽ là do nhiễu. Nếu bạn cố điều chỉnh dữ liệu đó cho một mô hình mà không bị chặn, bạn sẽ tạo ra một độ dốc lớn và sai và có khả năng trông R ^ 2 tốt hơn nếu sử dụng phiên bản miễn phí chặn.

Biểu đồ sau đây cho thấy những gì xảy ra trong trường hợp cực đoan này. Ở đây, quá trình tạo là x = 100.100.1, .... và y chỉ là 100 + nhiễu ngẫu nhiên với giá trị trung bình 0 và độ lệch chuẩn .1. Các điểm là các vòng tròn màu đen, phù hợp mà không có đánh chặn là đường màu xanh và phù hợp với đánh chặn (zeroing out the dốc) là đường màu đỏ:

[Xin lỗi, nó sẽ không cho phép tôi đăng biểu đồ; chạy mã R bên dưới để tạo ra nó. Nó cho thấy nguồn gốc ở góc dưới bên trái, cụm điểm ở góc trên bên phải. Sự phù hợp không bị chặn xấu đi từ phía dưới bên trái sang phía trên bên phải và sự phù hợp chính xác là một đường thẳng song song với trục x]

Mô hình chính xác cho điều này sẽ có R ^ 2 bằng 0 --- là một hằng số cộng với nhiễu ngẫu nhiên. R sẽ cung cấp cho bạn và R ^ 2 của 0,99 cho phù hợp mà không có đánh chặn. Điều này sẽ không quan trọng lắm nếu bạn chỉ sử dụng mô hình để dự đoán với các giá trị x trong phạm vi dữ liệu đào tạo, nhưng sẽ thất bại thảm hại nếu x đi ra ngoài phạm vi hẹp của tập huấn luyện hoặc bạn đang cố đạt được những hiểu biết thực sự ngoài dự đoán.

AIC cho thấy chính xác rằng mô hình với phần chặn được ưu tiên. Mã R cho điều này là:

 Nsamp=100
x=seq(1,100,1)*.1+100 # x=101.1,101.2,....
y=rnorm(n=length(x))+100 # random noise +100 (best model is constant)

model_withint=lm(y~x)
print(summary(model_withint))
flush.console()
model_noint=lm(y~x+0) 
print(summary(model_noint))
print (AIC(model_withint))
print(sprintf ('without intercept  AIC=%f',AIC(model_noint)))
print(sprintf ('with intercept  AIC=%f',AIC(model_withint)))
print(sprintf ('constant model  AIC=%f',AIC(lm(y~1))))
plot(x,y,ylim=c(0,105),xlim=c(0,105))
lines( c(0,105),c(0,105)*model_noint$coefficients['x'],col=c('blue'))
lines( c(0,105),c(1,1)*(lm(y~1)$coefficients['(Intercept)']),col=c('red'))

Đầu ra AIC là

   "without intercept  AIC=513.549626"
    "with intercept  AIC=288.112573"
    "constant model  AIC=289.411682"

Lưu ý rằng AIC vẫn nhận được mô hình sai trong trường hợp này, vì mô hình thực sự là mô hình không đổi; nhưng các số ngẫu nhiên khác sẽ mang lại dữ liệu mà AIC thấp nhất cho mô hình không đổi. Lưu ý rằng nếu bạn loại bỏ độ dốc, bạn nên chỉnh lại mô hình mà không có nó, không cố gắng sử dụng chức năng chặn từ mô hình và bỏ qua độ dốc.

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.