GAM에서 텐서 제품 상호 작용의 직관 (R의 MGCV 패키지)


30

일반화 된 첨가제 모델은 예를 들어

y=α+f1(x1)+f2(x2)+ei
입니다. 기능은 매끄럽고 추정됩니다. 일반적으로 페널티 스플라인에 의해. MGCV는 R에 포함 된 패키지이며, 저자 (Simon Wood)는 R 예제와 함께 그의 패키지에 관한 책을 씁니다. Ruppert 등 (2003) 같은 버전의 더 간단한 버전에 대해 훨씬 더 접근하기 쉬운 책을 작성하십시오.

내 질문은 이러한 종류의 모델 내에서의 상호 작용에 관한 것입니다. 내가는 다음과 같이 수행하려는 경우 :

y=α+f1(x1)+f2(x2)+f3(x1×x2)+ei
우리가 OLS의 땅에 인 경우에 (어디 f ) 단지 베타, 내가 통역에는 문제가 없을 것 f를 3 . 우리가 불이익을받은 스플라인을 통해 추정한다면, 나는 부가적인 맥락에서 해석하는 데 아무런 문제가 없습니다. f^3

그러나 GAM의 MGCV 패키지에는 "tensor product smooths"가 있습니다. 나는 구글 "텐서 제품"과 내가 찾은 설명을 읽으려고 노력하면서 눈이 immediately 다. 내가 충분히 똑똑하지 않거나 수학이 잘 설명되지 않았거나 둘 다입니다.

코딩 대신

normal = gam(y~s(x1)+s(x2)+s(x1*x2))

텐서 제품은 다음과 같은 (?) 작업을 수행합니다.

what = gam(y~te(x1,x2))

내가 할 때

plot(what)

또는

vis.gam(what)

정말 멋진 출력을 얻습니다. 그러나 나는 블랙 박스 안에서 무슨 일이 일어나고 te()있는지, 또는 위에서 언급 한 멋진 출력을 해석하는 방법을 모른다 . 바로 다른 날 밤에 세미나를 주겠다는 악몽이있었습니다. 나는 모두에게 멋진 그래프를 보여 주었고, 그것이 무엇을 의미하는지 물었고 나는 몰랐다. 그런 다음 옷을 입지 않은 것을 발견했습니다.

여기 후드 아래에서 일어나는 일에 대해 약간의 역학과 직관을 제공함으로써 저와 후손 모두를 도울 수 있습니까? 이상적인 첨가제 상호 작용 사례와 텐서 사례의 차이점에 대해 조금 말하면 이상적입니까? 수학으로 넘어 가기 전에 간단한 영어로 모든 것을 말하는 보너스 포인트.


패키지 작성자의 책에서 가져온 간단한 예 : library (mgcv) data (trees) ct5 <-gam (Volume ~ te (Height, Girth, k = 5), family = Gamma (link = log), data = trees) ct5 vis.gam (ct5) plot (ct5, too.far = 0.15)
generic_user

답변:


30

나는 이것을 3 단계로 대답하려고 시도 할 것이다 : 먼저, 일 변량 스무스에 의해 우리가 의미하는 바를 정확히 식별 해 보자. 다음으로 다변량 스무드 (특히 두 변수의 스무드)에 대해 설명합니다. 마지막으로, 텐서 제품을 부드럽게 설명하기 위해 최선을 다할 것입니다.

1) 일 변량 부드러운

우리가 추측 한 예측 데이터 변수 x 와 약간의 오차 ε 의 알려지지 않은 함수 f 라는 응답 데이터 가 있다고 가정 해 봅시다 . 모델은 다음과 같습니다.yfxε

y=f(x)+ε

이제이 모델에 적합하려면 의 기능적 형태를 식별해야합니다 . 이를 수행하는 방법은 함수 f 를 전체적으로 나타 내기 위해 중첩 된 기본 함수를 식별하는 것 입니다. 매우 간단한 예는 선형 회귀이며, 기본 함수는 단지 β 2 xβ 1 이며 절편입니다. 기초 확장을 적용하면ffβ2xβ1

y=β1+β2x+ε

행렬 형태로, 우리는 다음을 가질 것입니다 :

Y=Xβ+ε

여기서 는 nx1 열 벡터, Xnx2 모델 행렬, β 는 모델 계수의 2x1 열 벡터, ε 는 오류의 nx1 열 벡터입니다. . 기본 확장에는 선형 항과 절편의 두 항이 있으므로 X 에는 두 개의 열이 있습니다.YXβεX

기본 기능은 훨씬 더 정교하지만 MGCV의 기본 확장에도 동일한 원칙이 적용됩니다. 특히, 개별 기본 함수는 독립 변수 의 전체 도메인에 대해 정의 될 필요가 없습니다 . 매듭 기반을 사용하는 경우가 종종 있습니다 ( "매듭 기반 예"참조).x). 그런 다음 모델은 기본 함수의 합계로 표시되며 각 함수는 독립 변수의 모든 값에서 평가됩니다. 그러나 앞에서 언급했듯이 이러한 기본 함수 중 일부는 주어진 간격을 벗어난 0의 값을 취하므로 해당 간격 외부의 기본 확장에 기여하지 않습니다. 예를 들어, 각 기저 함수가 독립 변수의 다른 값 (노트)에 대해 대칭 인 3 차 스플라인 기초를 고려하십시오. 즉, 모든 기저 함수는 동일하게 보이지만 독립 변수의 축을 따라 이동 됩니다. (실제적인 기초에는 절편과 선형 용어도 포함되지만 아이디어를 얻을 수 있기 때문에 이것은 지나치게 단순화 된 것입니다).

명확하게 말하면 차원 의 기본 확장은 다음과 같습니다.i2

y=β1+β2x+β3f1(x)+β4f2(x)+...+βifi2(x)+ε

여기서 각 함수 는 아마도 독립 변수 x 의 3 차 함수입니다 .fx

행렬 방정식 은 여전히 ​​우리의 모델을 나타내는 데 사용될 수 있습니다. 유일한 차이점은 X 는 이제 nxi 행렬이라는 것입니다. 즉, 기본 확장 (절편 및 선형 항 포함)의 모든 항에 대한 열이 있습니다. 기저 확장 과정을 통해 모델을 행렬 방정식의 형태로 표현할 수 있으므로 선형 최소 제곱을 사용하여 모델에 적합하고 계수 β를 찾을 수 있습니다.Y=Xβ+εXβ

이것은 비정형 회귀의 예이며, MGCV의 주요 장점 중 하나는 페널티 매트릭스 및 스무딩 매개 변수를 통한 스무딩 추정입니다. 다시 말해,

β=(XTX)1XTY

우리는 :

β=(XTX+λS)1XTY

여기서 는 2 차 i x i 페널티 매트릭스이고 λ 는 스칼라 스무딩 매개 변수입니다. 여기서는 페널티 매트릭스의 스펙에 들어 가지 않겠지 만, 어떤 독립 변수의 주어진 기본 확장과 2 차 "가발 성"페널티의 정의 (예를 들어, 2 차 파생 페널티)에 대해서는 충분하다고 말할 수 있습니다. 페널티 매트릭스 S를 계산할 수 있습니다 .SiiλS

MGCV는 최적의 평활 파라미터 를 추정하는 다양한 수단을 사용할 수 있습니다 . 여기서 목표는 내가 한 것으로 생각되는 일 변량 스무스가 어떻게 구성되는지에 대한 광범위한 개요를 제공하는 것이기 때문에 그 주제에 들어 가지 않을 것입니다.λ

2) 다변량 부드러운

위의 설명은 여러 차원으로 일반화 할 수 있습니다. 응답 를 예측 변수 xz 의 함수 f 로 제공하는 모델로 돌아가 봅시다 . 두 개의 독립 변수에 대한 제한은 비전 표기법으로 설명을 어지럽히는 것을 방지합니다. 모델은 다음과 같습니다.yfxz

y=f(x,z)+ε

이제 우리는 위 의 f ( x ) 의 일 변량의 경우와 마찬가지로 기본 확장 (즉, 기본 함수의 중첩 ) 으로 를 나타낼 것이라는 점을 직관적으로 명백해야합니다 . 또한 이러한 기본 함수 중 적어도 하나 이상, 거의 확실히 더 많은 함수가 xz 의 함수 여야 함이 분명해야합니다 (이 경우가 아니라면 암시 적으로 ff ( x , z ) 와 같이 분리 가능함 ). = f x ( x ) + ff(x,z)f(x)xzf ). 다차원 스플라인 기준의 시각적 설명은여기에서 찾을 수있습니다. 차원 i - 3 의 전체 2 차원 기반 확장은다음과 같습니다.f(x,z)=fx(x)+fz(z)i3

y=β1+β2x+β3z+β4f1(x,z)+...+βifi3(x,z)+ε

나는 이것을 여전히 행렬 형식으로 나타낼 수 있음이 분명하다고 생각합니다.

Y=Xβ+ε

z 의 모든 고유 한 조합에서 각 기본 함수를 간단히 평가하면됩니다 . 해결책은 여전히 ​​다음과 같습니다.xz

β=(XTX)1XTY

2 차 도함수 페널티 행렬을 계산하는 것은 단일 변수에 대해 각 기본 함수의 2 차 도함수를 통합하는 대신 모든 2 차 도함수 (부분 포함)의 합을 통합한다는 점을 제외하고 일 변량 경우와 매우 유사합니다. 모든 독립 변수에. 앞서 말한 세부 사항은 특별히 중요하지 않습니다. 요점은 여전히 ​​페널티 매트릭스 구성 하고 동일한 방법을 사용하여 평활화 매개 변수 λ 의 최적 값을 얻을 수 있으며 평활화 매개 변수가 주어지면 계수 벡터는 여전히 다음과 같습니다.Sλ

β=(XTX+λS)1XTY

이제이 2 차원 스무딩은 등방성 패널티를가집니다. 이는 단일 값 가 양방향에 적용됨을 의미합니다 . 이것은 공간 응용 프로그램과 같이 xz 가 모두 거의 동일한 규모 일 때 잘 작동합니다 . 그러나 공간 변수 z 를 시간 변수 t로 바꾸면 어떻게 될까요? 의 단위는 t은 의 단위보다 크거나 작을 수있다 X , 이것은 그 파생 상품의 일부 (예를 들어 전체 통합 불균형 기여할 것 때문에 우리가 측정 할 경우, 두 번째 파생 상품의 통합을 던질 수 t 나노초 및 엑스λxzzttxtx광년에서, 에 대한 제 2 도함수의 적분은 x에 대한 제 2 도함수의 적분보다 훨씬 클 수 있으며 , 따라서 x 방향을 따른 "가발 성 (wiggliness)" 은 크게 처벌되지 않을 수있다). 내가 링크 한 "부드러운 도구 상자"의 슬라이드 15에이 주제에 대한 자세한 내용이 있습니다.txx

우리는 기본 함수를 z 의 한계 기준으로 분해하지 않았다는 점에 주목할 가치가 있습니다. 여기서 다변량 평활은 여러 변수를 지원하는 염기로 구성되어야 함을 의미합니다. 텐서 제품은 아래에서 설명하는 것처럼 일 변량 한계 기반에서 다변량 기반의 구성을 원활하게 지원합니다.xz

3) 텐서 제품 스무딩

텐서 제품은 여러 입력과 서로 다른 단위의 상호 작용에 대한 모델링 응답 문제를 해결합니다. 공간 변수 x 와 시간 변수 t 의 함수 f 인 응답 가 있다고 가정 합니다. 우리의 모델은 다음과 같습니다.yfxt

y=f(x,t)+ε

우리가하고 싶은 것은 변수 t에 대한 2 차원 기반을 만드는 것 입니다. f 를 다음과 같이 나타낼 수 있다면 훨씬 쉬울 것입니다 .xtf

f(x,t)=fx(x)ft(t)

대수적 / 분석적 의미에서 이것이 반드시 가능하지는 않습니다. 그러나 "진정한"함수 f 가 기본 함수의 중첩으로 표시되도록 t 의 도메인 ( xt 축의 매듭 위치로 정의 된 2 차원 "격자"을 상상)을 이산하고 있음을 기억하십시오. . 매우 복잡한 일 변량 함수가 도메인의 특정 구간에서 간단한 입방 함수로 근사 될 수 있다고 가정 한 것처럼, 분리 할 수없는 함수 f ( x , t ) 는 단순한 함수의 곱으로 근사 될 수 있다고 가정 할 수 있습니다. f x ( xxtxtff(x,t) f t ( t ) — 기본 치수를 선택하면 이러한 간격이 충분히 작아집니다!fx(x)ft(t)

주어진 우리의 기준으로 확장, 의 차원으로 XJ 의 차원으로 t은 다음과 같을 것이다 :ixjt

y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i3)(x)++βijft(j3)(t)fx(i3)(x)+ε

Which may be interpreted as a tensor product. Imagine that we evaluated each basis function in x and t, thereby constructing n-by-i and n-by-j model matrices X and T, respectively. We could then compute the n2-by-ij tensor product XT of these two model matrices and reorganize into columns, such that each column represented a unique combination ij. Recall that the marginal model matrices had i and j columns, respectively. These values correspond to their respective basis dimensions. Our new two-variable basis should then have dimension ij, and therefore the same number of columns in its model matrix.

NOTE: I'd like to point out that since we explicitly constructed the tensor product basis functions by taking products of marginal basis functions, tensor product bases may be constructed from marginal bases of any type. They need not support more than one variable, unlike the multivariate smooth discussed above.

In reality, this process results in an overall basis expansion of dimension ijij+1 because the full multiplication includes multiplying every t basis function by the x-intercept βx1 (so we subtract j) as well as multiplying every x basis function by the t-intercept βt1 (so we subtract i), but we must add the intercept back in by itself (so we add 1). This is known as applying an identifiability constraint.

So we can represent this as:

y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βijij+1fijij2(x,t)+ε

Where each of the multivariate basis functions f is the product of a pair of marginal x and t basis functions. Again, it's pretty clear having constructed this basis that we can still represent this with the matrix equation:

Y=Xβ+ε

Which (still) has the solution:

β=(XTX)1XTY

Where the model matrix X has ijij+1 columns. As for the penalty matrices Jx and Jt, these are are constructed separately for each independent variable as follows:

Jx=βTIjSxβ

and,

Jt=βTStIiβ

This allows for an overall anisotropic (different in each direction) penalty (Note: the penalties on the second derivative of x are added up at each knot on the t axis, and vice versa). The smoothing parameters λx and λt may now be estimated in much the same way as the single smoothing parameter was for the univariate and multivariate smooths. The result is that the overall shape of a tensor product smooth is invariant to rescaling of its independent variables.

I recommend reading all the vignettes on the MGCV website, as well as "Generalized Additive Models: and introduction with R." Long live Simon Wood.


Nice answer. I've since learned quite a lot more than I knew three years ago. But I'm not sure that I would have understood 3 years ago what you wrote today. Or maybe I would have. I think the place to start is to think of a basis expansion in many dimensions as a "net" across the variable space. I suppose tensors can be described as a net with rectangular patterns... And maybe different "shear" forces pulling from each direction.
generic_user

On another note, I would caution you against thinking of the tensor product as representing something spatial. This is because the actual tensor product of marginal x and t basis functions will include tons of zeros which represent the evaluation of basis functions outside of their defined range. The actual tensor product will usually be very sparse.
Josh

1
Thanks for this great summary! Just one remark: The equation after "Our basis expansion," is not completely correct. It does give the correct basis functions, but it gives a parametrization where the corresponding parameters are of product form (βxiβtj).
jarauh

1
@Josh Ok, I tried. It's not easy to have it correct and easy to understand at the same time (and to follow someone else's notation). By the way, the link to smooth-toolbox.pdf seems to be broken.
jarauh

1
Looks good. Apparently your edit was rejected, but I overrode the rejection and approved it. When I started writing this answer I didn't realize just how confusing the expansions would look. I should probably go back and rewrite it with pi (product) notation one of these days.
Josh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.