회귀에서 선형성을 테스트하기 어려움


21

에서 통계 모델링 : 두 문화 레오 브레이 만 쓴다

현재 적용되는 관행은 적합도 검정 및 잔차 분석을 사용하여 데이터 모델 적합을 확인하는 것입니다. 몇 년 전 한 시점에서 제어 된 양의 비선형 성으로 7 차원으로 시뮬레이션 된 회귀 문제를 설정했습니다. 적합도에 대한 표준 테스트는 비선형 성이 극단적 일 때까지 선형성을 거부하지 않았습니다.

Breiman은 시뮬레이션에 대한 세부 사항을 제공하지 않습니다. 그는 자신의 관찰에 대한 이론적 타당성을 제시하는 논문을 언급하지만 논문은 출판되지 않았다.

브 리먼의 주장을 뒷받침하는 출판 된 시뮬레이션 결과 나 이론 논문을 본 사람이 있습니까?


1
극단적 인 판단은 어렵습니다. 모든 기능은 일정 범위에서 선형으로 접근합니다. 테일러 시리즈 분해에서 알 수 있듯이 모델 선택에 대한 Burnham과 Anderson의 정보 기준 접근 방식이이 문제를 해결하지 못하는 이유는 무엇입니까?
Patrick McCann

답변:


11

나는 Breiman의 설명에 답할 수있는 시뮬레이션을 만들었고 명백한 것만 발견 했습니다. 결과는 상황과 "극단적"의 의미에 달려 있습니다.

끔찍한 일이 많지만 R관심있는 독자가 자신의 조사에 사용할 수 있도록 쉽게 수정 된 코드를 사용하여 수행 된 하나의 예제로 제한하겠습니다 . 이 코드는 대략 직교 인 대략 균일하게 분포 된 독립 값으로 구성된 설계 행렬을 설정하는 것으로 시작합니다 (따라서 다중 공선 성 문제가 발생하지 않음). 처음 두 변수 사이의 단일 2 차 (즉, 비선형) 상호 작용을 계산합니다. 이는 연구 할 수있는 많은 종류의 "비선형 성"중 하나 일 뿐이지 만, 일반적으로 잘 이해되고있는 것입니다. 그런 다음 계수를 비교할 수 있도록 모든 것을 표준화합니다.

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

비선형 성이없는 기본 OLS 모델의 경우 잔차 오차의 일부 계수와 표준 편차를 지정해야합니다. 다음은 단위 계수 세트와 이에 상응하는 SD입니다.

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

상황을 설명하기 위해 시뮬레이션의 하드 코딩 된 반복이 있습니다. 종속 변수를 생성하고 값을 요약하며 모든 변수 (상호 작용 포함)의 전체 상관 행렬을 표시하고 산점도 행렬을 표시합니다. 그런 다음 OLS 회귀를 수행합니다. 다음에서, 상호 작용 계수 는 다른 계수들 (모두 또는 과 동일)보다 실질적으로 작으므로 이를 "익스트림"이라고 부르기가 어렵습니다.1 - 11/411

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
     upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))

여기에서 모든 출력을 살펴 보지 말고 plot명령 출력을 사용하여 이러한 데이터를 살펴 보겠습니다 .

SPM

아래쪽 삼각형의 lowess 트레이스는 본질적으로 교호 작용 ( x.12)과 종속 변수 ( y) 사이에 선형 관계가 없으며 다른 변수와와 사이에 적당한 선형 관계를 보여줍니다 y. OLS 결과는 다음을 확인합니다. 상호 작용은 거의 중요하지 않습니다.

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

비선형 성의 테스트로 교호 작용 항의 p- 값을 사용할 것입니다.이 p- 값이 충분히 낮은 경우 (얼마나 낮을지를 선택할 수 있는지) 비선형 성을 감지합니다.

(우리가 정확히 찾고있는 것에 대해서는 미묘한 부분이 있습니다. 실제로 우리는 단일 항에 초점을 맞추기보다는 7 * 6/2 = 21 가능한 2 차 상호 작용뿐만 아니라 7 개의 2 차 항을 검토해야 할 수도 있습니다. 우리는이 28 개의 상호 관련 테스트에 대한 수정을 원할 것입니다 p- 값의 시뮬레이트 된 분포를 표시하기 때문에 여기서는이 수정을 명시 적으로 작성하지 않습니다. 가에 따라 마지막에 히스토그램 당신의 중요성 임계 값.)

그러나이 분석을 한 번만 수행하지 마십시오. y동일한 모델과 동일한 디자인 매트릭스에 따라 각 반복에서 새로운 값을 생성하여 여러 번 수행합시다 . 이를 달성하기 위해 함수를 사용하여 한 번의 반복을 수행하고 교호 작용 항의 p- 값을 반환합니다.

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

시뮬레이션 결과를 p- 값의 히스토그램으로 제시 gamma하고 상호 작용 항의 표준화 된 계수 를 변경합니다 . 먼저 히스토그램 :

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

이제 작업을 수행하십시오. 시뮬레이션 당 1000 회 시행 (몇 번의 상호 작용 항 값에서 시작하여 매번 연속적으로 절반 씩 중단)하는 데 몇 초가 걸립니다.

temp <- sapply(2^(-3:0) * gamma, h)

결과 :

히스토그램

오른쪽 아래부터 거꾸로 읽기, 이러한 플롯에 대한 것을 보여 디자인 매트릭스 x에 대해 오류의 표준 편차 sd, 그리고에 대한 이러한 표준화 계수 beta, OLS가의 표준화 된 상호 작용을 검출 할 수있다 (한 분기 다른 계수의 크기를 ) 안정적으로 시간의 80 % 이상 (p- 값에 5 % 임계 값 사용) (현재 무시하고있는 다중 비교 수정에 대한 간단한 설명을 기억하십시오); 그것은 종종 (시간의 약 20 %)의 상호 작용 크기를 탐지 할 수 있습니다 . 때로는 크기의 상호 작용을 감지합니다1 / 8 1 / 16 1 / 21/41/81/16더 작은 상호 작용을 식별 할 수 없습니다. 에 gamma해당 하는 히스토그램은 여기에 표시되어 있지 않습니다 . 이는 여러 비교를 수정하더라도 2 차 상호 작용이 거의 확실하게 감지됨을 보여줍니다.1/2

당신 여부에서 크기가 다양 이러한 상호 작용 취할 에 "극단적 인"으로, 또는하지 (표현으로 회귀 상황에, 당신의 관점에 따라 달라집니다 , 그리고 얼마나 많은 독립적 인 테스트에) 비선형 성의 당신은 행동 을 상상하고, 내가 크게 존경하는 Breiman에게 페이스를 맞출 것입니다. OLS가 비선형 성을 감지하는 것을 확실히 어렵게 만들 수 있습니다. 팽창 하여 비선형 성을 늪으로 돌리고 동시에 적합도에 대한 다양한 테스트를 수행합니다.1 / 41/321/4xsdbetasd

요컨대, 이와 같은 시뮬레이션은 방금 설정하고 올바르게 해석하면 원하는 것을 증명할 수 있습니다. 그것은 통계 학자들이 그들이 사용하고있는 절차의 능력과 약점에 대한 개인적이고 깊은 이해를 얻기 위해 그들이 직면 한 특정 문제에 적합한 자체 탐사를 수행해야 함을 시사한다.


+1, 참고로, 데이터 표준화를위한 자체 기능을 작성 하는 것으로 나타났습니다. 스케일이 도움 이 될 수 있습니다.
복원

감사합니다, @gung. 나는 그러한 기능이 주변에 있다고 확신했지만 그 이름을 생각할 수 없었습니다. 나는 R그런 포인터를 처음 접했고 항상 감사합니다.
whuber

1

그것이 질문에 대한 최종 답변을 제공하는지 확실하지 않지만, 이것에 대해 살펴볼 것 입니다. 특히 포인트 2.이 문서의 부록 A2에 대한 설명도 참조하십시오 .


찾아 주셔서 감사하지만 이것들은 OLS 회귀가 아닌 배포에 적합한 응용 프로그램 인 것 같습니다.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.