Як забезпечити властивості коваріаційної матриці при встановленні багатоваріантної нормальної моделі з максимальною ймовірністю?


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,θ)))

Тепер це здається простим, імовірність журналу задається, вводиться в дані та використовується якийсь алгоритм для нелінійної оптимізації. Проблема полягає в тому, як забезпечити, що є позитивним. Використання, наприклад, R (або будь-якого іншого алгоритму нелінійної оптимізації) не гарантує мені, що Σ є позитивно визначеним.ΣoptimΣ

Тож питання полягає в тому, як забезпечити, щоб залишався позитивним? Я бачу два можливі рішення:Σ

  1. Репараметрія як R R ', де R - верхня трикутна або симетрична матриця. Тоді Σ завжди буде позитивно-визначеним, а R може бути необмеженим.ΣRRRΣR

  2. Використовуйте ймовірність профілю. Вивести формули для & thetas ( Е ) і Е ( & thetas ; ) . Почнемо з деякого & thetas 0 і ітерація Σ J = Σ ( θ J - 1 ) , θ J = θ ( Σ J - 1 ) до збіжності.θ^(Σ)Σ^(θ)θ0Σ^j=Σ^(θ^j1)θ^j=θ^(Σ^j1)

Чи є якийсь інший спосіб, і як щодо цих двох підходів, чи вони працюватимуть, чи є вони стандартними? Це здається досить стандартною проблемою, але швидкий пошук не дав мені ніяких покажчиків. Я знаю, що оцінка Байєса також була б можливою, але на даний момент я не хотів би цим займатися.


У мене така ж проблема в алгоритмі Калмана, але проблема набагато складніша і не так проста у використанні хитрості Гамільтона. Тоді мені цікаво, чи простішою річчю було б просто використовувати . Таким чином я змушую код не помилитися і не змінювати рішення. Це також має вигоду змусити цей термін мати той самий знак, що і заключна частина ймовірності. Будь-які ідеї? log(detΣ+1)
econ_pipo

Відповіді:


6

Якщо припустити, що будуючи матрицю коваріації, ви автоматично піклуєтесь про проблему симетрії, ваша ймовірність журналу буде коли Σ не є позитивно визначеним через термін log d e t Σ в моделі правильно? Щоб запобігти числовій помилці, якщо d e t Σ < 0, я б перерахував d e t Σ, а якщо вона не є додатною, то зробить вірогідність журналу рівним -Inf, інакше продовжуйте. Ви завжди повинні обчислити визначник, тому це не коштуватиме вам додаткових розрахунків. Σlogdet Σdet Σ<0det Σ


5

Як виявилося, ви можете використовувати максимальну ймовірність профілю, щоб забезпечити необхідні властивості. Ви можете довести , що для даного & thetas , л ( & thetas , Σ ) максимізуєθ^l(θ^,Σ)

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

де

ε^i=yif(xi,θ^)

Тоді це можна показати

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

hence we only need to maximise

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.