통계적으로 유의 한 절편 항을 제거하면 선형 모형에서


101

단일 설명 변수가 포함 된 간단한 선형 모형에서

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

절편 항을 제거하면 적합도가 크게 향상됩니다 ( R 2 값).R2 0.3에서 0.9로 이동). 그러나 절편 항은 통계적으로 유의 한 것으로 보입니다.

가로 채기 :

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

가로 채지 않고 :

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

이 결과를 어떻게 해석 하시겠습니까? 절편 항이 모형에 포함되어야합니까?

편집하다

잔차 제곱합은 다음과 같습니다.

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

14
절편이 포함 된 경우에만 를 설명 된 총 분산에 대한 비율로 회상 합니다. 그렇지 않으면 파생 될 수없고 해석이 손실됩니다. 아르 자형2
Momo

@ 모모 : 좋은 지적입니다. 각 모델에 대한 잔차 제곱합을 계산했는데, 이는 절편 항이있는 모델이 의 내용에 관계없이 더 적합하다는 것을 시사하는 것 같습니다 . R2
어니스트 A

4
글쎄, 추가 매개 변수를 포함하면 RSS가 내려가거나 최소한 증가하지 않아야합니다. 더 중요한 것은 선형 모델의 표준 유추는 통계적으로 유의하지 않더라도 절편을 억제 할 때 적용되지 않는다는 것입니다.
매크로

14
어떤 어떤 절편이 없을 때 계산한다는 것이다 않는 R 2 = 1 - Σ I ( Y I - y를 I ) (2)아르 자형대신에i y 2 i (분모 항의 평균을 빼지 않음). 이로 인해 분모가 커지므로 동일하거나 유사한 MSE의 경우R2가 증가합니다.
아르 자형2=1나는(와이나는와이^나는)2나는와이나는2
아르 자형2
추기경

5
아닙니다 반드시 큰. 두 경우 모두 적합치의 MSE가 유사한 한 절편없이 더 큽니다. 그러나 @ 매크로가 지적했듯이 분자 인터셉트가없는 경우 에도 커지기 때문에 어느 것이 승리하는지에 달려 있습니다! 당신은 그들이 서로 비교해서는 안 맞아요하지만 당신은 또한 요격와 SSE는 것을 알고 항상 차단하지 않고 SSE보다 작아야. 회귀 진단에 샘플 내 측정을 사용하는 데 문제가 있습니다. 이 모델을 사용하기위한 최종 목표는 무엇입니까? 아르 자형2
추기경

답변:


131

우선 R, 모델에 절편이 포함되지 않은 경우 소프트웨어가 수행하는 작업을 이해해야 합니다. 통상의 연산 리콜 절편이 존재이며 R 2 = Σ를 I ( Y I - ˉ Y ) (2)아르 자형2 첫 번째 평등에만때문에 모델의 절편을 포함 발생하더라도이 아마를 작성하는 두 가지 방법 중 더 인기가있다. 두번째평등은 실제로 더 일반적인 해석을 제공합니다! 이 점은이 관련 질문에서도다루어집니다.

아르 자형2=나는(와이^나는와이¯)2나는(와이나는와이¯)2=1나는(와이나는와이^나는)2나는(와이나는와이¯)2.

그러나 모델에 절편이 없으면 어떻게됩니까?

R

아르 자형02=나는와이^나는2나는와이나는2=1나는(와이나는와이^나는)2나는와이나는2.

아르 자형2아르 자형02 .

아르 자형2아르 자형02

그러나 그것들은 어떻게 다르며 언제입니까?

와이^와이~

아르 자형2아르 자형02

아르 자형2=1와이와이^22와이와이¯122,
아르 자형02=1와이와이~22와이22,

와이22=와이와이¯122+와이¯2아르 자형02>아르 자형2

와이와이~22와이와이^22<1+와이¯21와이와이¯122.

와이~와이^아르 자형02아르 자형2

모든 모델 종속 항목은 왼쪽에 있고 비 모델 종속 항목은 오른쪽에 있습니다.

그렇다면 왼쪽의 비율을 어떻게 작게 만드나요?

와이~=0와이와이^=1와이01에스0에스1에스0에스1

따라서 비율이 1에 가까우려면 부분 공간이 필요합니다. 에스0에스1에스0에스11에스01 .

본질적으로, 이는 우리 예측 변수가 강한 평균 오프셋 자체를 가졌으며이 평균 오프셋이 예측 변수의 변동을 지배해야한다는 것을 의미합니다.

여기서 우리는 모델에서 명시 적으로 인터셉트를 사용하고 질문의 경우에 가까운 동작을하는 예제를 생성하려고 시도합니다. 아래는 간단한 R코드입니다.

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)

결과는 다음과 같습니다. 우리는 절편으로 모델 시작합니다 .

# 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

그런 다음 절편 을 제외 하면 어떻게되는지 확인하십시오 .

# 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

다음은 절편이없는 모델과 절편이없는 모델이 파란색 인 데이터의 도표입니다.

회귀선이있는 데이터 플롯


4
정말 대단합니다, +1 질문 : 종종 b / t 2 모델을 조정하고 싶을 때 중첩 모델 테스트를 수행하거나이를 배제하거나 전체 모델에 대한 인터셉트가없는 축소 모델을 테스트하는 것이 여전히 유효합니까? ?
gung

5
에프에프
에프=(2)(\와이\ ytilde22\와이\ yhat221)
아르 자형02>아르 자형12
에프<(2)와이¯21\와이와이¯\하나22,

1
나는 표현 선호한다아르 자형02=와이~2와이2

3
에스1에스01

1
뭔가 빠졌습니다. , R은 무엇인가 올바른 ? 나는 R ^ 2 값이보고되고, 요격과 유무에 관계없이 원격으로 비교할 수 있습니까?
Andy Clifton

1

저는 R ^ 2가 아닌 Akaike 또는 Bayes-Schwarz 기준과 같은 정보 기준에 따라 결정을 내립니다. 그럼에도 불구하고 나는 이것을 절대적인 것으로 보지 않을 것입니다.

기울기가 0에 가까우면서 모든 데이터가 원점에서 멀어 질 경우, 데이터의 변동이 대부분 노이즈로 인해 올바른 R ^ 2가 낮아야합니다. 절편없이 이러한 데이터를 모형에 맞추려고하면 절편이없는 버전을 사용하는 경우 크고 잘못된 기울기 항이 생성되고 R ^ 2가 더 잘 보입니다.

다음 그래프는이 극단적 인 경우에 어떤 일이 발생하는지 보여줍니다. 여기서 생성 과정은 x = 100,100.1, ....이고 y는 평균 0이고 표준 편차 .1 인 100 + 랜덤 노이즈입니다. 점은 검은 색 원이고 절편이없는 적합은 파란색 선이고 절편이있는 적합 (경사를 0으로 함)은 빨간색 선입니다.

[죄송합니다. 그래프를 게시 할 수 없습니다. 아래의 R 코드를 실행하여 생성하십시오. 왼쪽 하단에 원점, 오른쪽 상단에 포인트 클러스터가 표시됩니다. 절편이없는 절편 맞춤은 왼쪽 아래에서 오른쪽 상단으로 가고 올바른 맞춤은 x 축에 평행 한 선입니다.]

이를위한 올바른 모델은 R ^ 2가 0이어야합니다. 상수 + 랜덤 노이즈입니다. R은 절편이없는 적합치에 대해 .99의 R ^ 2를 제공합니다. 훈련 데이터 범위 내에서 x- 값으로 예측하는 데 모델을 사용하는 경우에는 중요하지 않지만 x가 훈련 세트의 좁은 범위를 벗어나거나 진정한 통찰력을 얻으려고하면 비참하게 실패합니다. 단순한 예측 이상.

AIC는 절편이있는 모형이 선호됨을 올바르게 보여줍니다. 이에 대한 R 코드는 다음과 같습니다.

 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'))

AIC 출력은

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

실제 모델은 상수 모델이므로이 경우 AIC는 여전히 잘못된 모델을 얻습니다. 그러나 다른 임의의 숫자는 상수 모델에 대해 AIC가 가장 낮은 데이터를 생성합니다. 경사를 버릴 경우 경사없이 모델을 다시 장착해야하며 모델의 절편을 사용하지 말고 경사를 무시하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.