직교 다항식 회귀 분석에서 원시 계수 및 분산 복구


14

y i ~ β 0 + β 1 x i + β 2 x 2 i + β 3 x 3 i 와 같은 회귀 모형이있는 경우yiβ0+β1xi+β2xi2+β3xi3나는 원시 다항식에 적합하고 신뢰할 수없는 결과를 얻거나 직교 다항식에 적합하며 직접적인 물리적 해석이없는 계수를 얻을 수 있습니다 (예 : 원래 척도에서 극한의 위치를 ​​찾는 데 사용할 수 없음). 내가 두 세계를 모두 최대한 활용할 수 있고 적합 직교 계수와 분산을 다시 원시 스케일로 변환 할 수 있어야합니다. 응용 선형 회귀 (Kutner, 5ed 사용)에서 대학원 과정을 밟았고 Draper (3ed, Kutner가 참조)의 다항 회귀 장을 살펴 보았지만이를 수행하는 방법에 대한 토론은 찾지 못했습니다. 에 대한 도움말 텍스트poly()R의 함수는 그렇지 않습니다. 여기를 포함하여 웹 검색에서 아무것도 찾지 못했습니다. 직교 다항식에 적합한 계수에서 원시 계수를 재구성하고 (분산을 얻음) ...

  1. 할 수없고 나는 시간을 낭비하고 있습니다.
  2. 아마도 가능하지만 일반적인 경우에는 어떻게 알지 못합니다.
  3. "누가 원 할까?"
  4. 가능하지만 "명백하다"고 논의되지 않았습니다.

대답이 3 또는 4이면 누군가가 이것을하는 방법을 설명하거나 그렇게하는 출처를 지적하는 인내심을 가지고 있다면 매우 감사 할 것입니다. 그것이 1 또는 2 인 경우, 나는 여전히 장애물이 무엇인지 궁금합니다. 이 글을 읽어 주셔서 감사합니다. 분명한 것을 간과하면 미리 사과드립니다.


1
당신의 요점을 이해하지 못합니다. x, x 2 및 x 3 은 직교하지 않습니다. 따라서 상관 관계가 있고 회귀 매개 변수가 불안정 할 수 있지만 자동으로 신뢰할 수없는 것은 아닙니다. 직교 다항식으로의 변환이 더 안정적 일 수 있습니다. 그러나 x의 원래 거듭 제곱의 계수가 직교 다항식의 계수보다 더 해석하기 쉬운 것은 무엇입니까? x가 모형 y = a + bx에서와 같이 유일한 변수이면 ∆y = yi-yi-1 = b∆x이고 b는 x의 단위 변화 당 y의 변화로 해석 할 수 있습니다. 그러나 관련된 힘으로 그러한 해석은 상실됩니다. 23
Michael R. Chernick

단순화를 위해 변수로 x를 사용하는 모델을 사용했지만 실제로는 처리 그룹 간의 곡선을 비교하고 있습니다. 따라서 중요한 항과 크기에 따라 위 / 아래로 전체 이동 또는 초기 /보다 작은 기울기와 같이 해석 할 수 있습니다 . 또한 내 질문에서 알 수 있듯이 곡선 사이를 자연스럽게 비교하는 것은 최대 / 최소의 위치이며, 원래 배율에 있는지 이해하기 쉽습니다. 그래서 당신의 투표는 선택 3입니다.
f1r3br4nd

아니요, 아직 가능 여부를 파악하지 못했습니다. 나는 왜 당신이 그것을하고 싶어하는지 이해했습니다.
Michael R. Chernick

4
직교 다항식에 적합 하는 모형은 원시 다항식 항에 적합한 모형과 정확히 동일한 피팅 (즉, 동일한 , 동일한 피팅 된 값 등)을 갖습니다. 따라서이 데이터를 원래 데이터와 다시 연관시키려는 경우 원시 항에 대한 계수를 볼 수 있지만 직교 다항식을 사용하여 개별 항에 대한 추론을 수행하여 개별 항에 대한 추론을 수행 할 수 있습니다. . R2
매크로

1
결과적으로 입방 스플라인과 B 스플라인은 모두 한 클래스에 속하며 두 세계 중 최고입니다.
Carl

답변:


6

네 가능합니다.

x i 에서 계산 된 직교 다항식의 일정하지 않은 부분 이라고합시다 . (각 열은 열 벡터입니다.) x i 에 대해 이들을 회귀 분석 하면 완벽하게 맞아야합니다. 직교 다항식을 계산하는 절차를 문서화하지 않은 경우에도 소프트웨어를 사용하여이 작업을 수행 할 수 있습니다 . z j 의 회귀는 다음과 같은 계수 γ i j 를 산출 합니다.1,2,엑스나는엑스나는제이γ나는제이

나는제이=γ제이0+엑스나는γ제이1+엑스나는2γ제이2+엑스나는γ제이.

결과는 오른쪽 곱셈시 설계 행렬 X = ( 1 ; x ; x 2 ; x 3 )Z = ( 1 ; z 1 ; z 2 ; z 3 ) = X Γ 로 변환 하는 행렬 Γ 입니다 . .4×4Γ엑스=(1;엑스;엑스2;엑스)

(1)=(1;1;2;)=엑스Γ.

모델을 장착 한 후

이자형(와이)=β

추정 된 계수 취득 β (네 요소 열 벡터)를 대체 할 수는 ( 1 ) 수득β^(1)

Y^=β^=(엑스Γ)β^=엑스(Γβ^).

따라서 원래의 관점에서 모델의 추정 계수 벡터의 파워 (원시, 유엔 - 직교 화)되고 , X를 .Γβ^엑스

다음 R코드는 이러한 절차를 보여주고 합성 데이터로 테스트합니다.

n <- 10        # Number of observations
d <- 3         # Degree
#
# Synthesize a regressor, its powers, and orthogonal polynomials thereof.
#
x <- rnorm(n)
x.p <- outer(x, 0:d, `^`); colnames(x.p) <- c("Intercept", paste0("x.", 1:d))
z <- poly(x, d)
#
# Compute the orthogonal polynomials in terms of the powers via OLS.
#
xform <- lm(cbind(1, z) ~ x.p-1)
gamma <- coef(xform)
#
# Verify the transformation: all components should be tiny, certainly
# infinitesimal compared to 1.
#
if (!all.equal(as.vector(1 + crossprod(x.p %*% gamma - cbind(1,z)) - 1), 
    rep(0, (d+1)^2)))
  warning("Transformation is inaccurate.")
#
# Fit the model with orthogonal polynomials.
#
y <- x + rnorm(n)
fit <- lm(y ~ z)
#summary(fit)
#
# As a check, fit the model with raw powers.
#
fit.p <- lm(y ~ .-1, data.frame(x.p))
#summary(fit.p)
#
# Compare the results.
#
(rbind(Computed=as.vector(gamma %*% coef(fit)), Fit=coef(fit.p)))

if (!all.equal(as.vector(gamma %*% coef(fit)), as.vector(coef(fit.p))))
  warning("Results were not the same.")

Γ

110161

2 년 후 ... @whuber, 이것을 계수의 95 % CI로 확장 할 수 있습니까?
user2602640

@ user2602640 예. 당신은 (사용 계수의 분산 - 공분산 행렬을 추출 할 필요가 vcov있는 R새로운 기준의 차이에 하나 개의 단위로 계산 차이 변환하는) 한 다음 일반적인 방법으로 수동의 CI를 계산한다.
whuber

@whuber 나는 중도에 대한 당신의 의견을 따랐고, 당신을 완전히 잃어 버렸습니다 ... 수학에 어려움을 겪은 생물학자를 불쌍히 여기고 코드로 작성할 수 있습니까?
user2602640
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.