최대 가능성을 사용하여 다변량 정규 모형을 피팅 할 때 공분산 행렬의 속성을 보장하는 방법은 무엇입니까?


22

다음 모델이 있다고 가정하십시오.

yi=f(xi,θ)+εi

여기서 yiRK , xi 는 설명 변수로 구성된 벡터이고, θ 는 비선형 함수 f 의 매개 변수입니다 εiN(0,Σ). 여기서 Σ 자연스럽게 K×K 행렬입니다.

목표는 일반적으로 θ 를 추정하는 것입니다 Σ. 확실한 선택은 최대 가능성 방법입니다. 이 모델에 대한 로그 우도 (우리는 샘플을 가정 (yi,xi),i=1,...,n 모양)

l(θ,Σ)=n2log(2π)n2logdetΣi=1n(yif(xi,θ))Σ1(yf(xi,θ)))

이제 이것은 단순 해 보입니다. 로그 우도는 지정되고 데이터를 넣고 비선형 최적화를 위해 일부 알고리즘을 사용합니다. 문제는 Σ 가 양의 명확한 지 확인하는 방법 입니다. 예를 들어 optimR (또는 다른 비선형 최적화 알고리즘)에서 사용한다고 Σ 가 양의 한정임을 보증하지는 않습니다 .

그렇다면 문제는 확실하게 긍정적으로 유지 하는 방법입니다 . 두 가지 가능한 해결책이 있습니다.Σ

  1. R R ' 로 재 파라미터 ( 여기서, R 은 상부 삼각 또는 대칭 매트릭스이다). 그러면 Σ 는 항상 양의 한정이며 R 은 구속되지 않습니다.ΣRRRΣR

  2. 프로필 가능성을 사용하십시오. 의 공식을 유도 θ ( Σ )Σ ( θ ) . 일부 시작 θ 0 과 반복 처리 Σ J = Σ ( θ J - 1 ) , θ J = θ을 ( Σ J - 1 ) 까지 수렴.θ^(Σ)Σ^(θ)θ0Σ^j=Σ^(θ^j1)θ^j=θ^(Σ^j1)

다른 방법이 있습니까? 그리고이 두 가지 접근 방식은 어떤가요? 표준입니까? 이것은 꽤 표준적인 문제인 것 같지만 빠른 검색으로 포인터를 얻지 못했습니다. 나는 베이지안 추정도 가능하다는 것을 알고 있지만, 지금은 그것에 참여하고 싶지 않습니다.


칼만 알고리즘에서 같은 문제가 있지만 문제는 훨씬 복잡하고 해밀턴 트릭을 사용하기 쉽지 않습니다. 그렇다면 더 간단한 일이 단순히 를 사용하는지 궁금합니다 . 이렇게하면 코드에 오류가 발생하지 않도록하고 솔루션을 변경하지 마십시오. 이것은 또한이 용어가 우도의 마지막 부분과 동일한 부호를 갖도록하는 이점이 있습니다. 어떤 아이디어? log(detΣ+1)
econ_pipo

답변:


6

당신은 자동으로 대칭 문제의 돌보는 공분산 행렬을 구성에서, 로그 우도가 될 것이라고 가정 Σ이 때문에의 긍정적 인 명확한 아닌 로그 D 전자 t의 Σ의 모델 오른쪽 용어? 수치 오류를 방지하기 위해 경우 D 전자 t Σ < 0 내가 미리 계산 것 D E t Σ 하고, 그렇지 않은 긍정적 인 경우, 다음, 그렇지 않으면 계속 -Inf 동일 로그 가능성을 확인하십시오. 어쨌든 결정자를 계산해야하므로 추가 계산에 비용이 들지 않습니다. Σlogdet Σdet Σ<0det Σ


5

결과적으로 프로필 최대 가능성을 사용하여 필요한 속성을 보장 할 수 있습니다. 주어진 입증 할 수 θ , L ( θθ^ 에 의해 극대화l(θ^,Σ)

Σ^=1ni=1nε^iε^i,

어디에

ε^i=yif(xi,θ^)

Then it is possible to show that

i=1n(yif(xi,θ^))Σ^1(yf(xi,θ^)))=const,

따라서 우리는 최대화해야합니다

lR(θ,Σ)=n2logdetΣ^.

Naturally in this case Σ will satisfy all the necessary properties. The proofs are identical for the case when f is linear which can be found in Time Series Analysis by J. D. Hamilton page 295, hence I omitted them.


3

An alternative parameterization for the covariance matrix is in terms of eigenvalues λ1,...,λp and p(p1)/2 "Givens" angles θij.

That is, we can write

Σ=GTΛG

where G is orthonormal, and

Λ=diag(λ1,...,λp)

with λ1...λp0.

Meanwhile, G can be parameterized uniquely in terms of p(p1)/2 angles, θij, where i=1,2,...,p1 and j=i,...,p1.[1]

(details to be added)

[1]: Hoffman, Raffenetti, Ruedenberg. "Generalization of Euler Angles to N‐Dimensional Orthogonal Matrices". J. Math. Phys. 13, 528 (1972)


The matrix G is actually orthogonal, because Σ is a symmetric matrix. This is the approach I was going to recommend - Basically amounts to rotating the yi vector and the model function f(xi,θ) so that the errors are independent, then applying OLS to each of the rotated components (I think).
probabilityislogic

2

Along the lines of charles.y.zheng's solution, you may wish to model Σ=Λ+CC, where Λ is a diagonal matrix, and C is a Cholesky factorization of a rank update to Λ. You only then need to keep the diagonal of Λ positive to keep Σ positive definite. That is, you should estimate the diagonal of Λ and the elements of C instead of estimating Σ.


Can below diagonal elements in this settings be anything I want as long as the diagonal is positive? When simulate matrices this way in numpy not all of them are positive definite.
sztal

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