2012-02-23 4 views
0

나는 이항 분산 함수에 대해 negativ max likelihood model을 위해 Matlab-fminsearch를 사용했다. 나는 어떤 에러 통지도받지 못한다. 그러나 내가 추정하기를 원하는 파라미터는 항상 시작 값을 취한다. 분명히, 실수가 있습니다. 나는 완전히 일반적인 질문을한다. 그러나 누구나 똑같은 실수를 감수하고 그것을 어떻게 다룰 줄 아는 것이 가능한가? 고마워,max likelihood fminsearch

@ 우드 칩, 정말 고마워. 단계별로, 나는 당신이 나에게 권고 한 것을하려고 노력했습니다. 우선, 실제로 최대화했습니다 (-log (우도)). 이것은 문제가 아닙니다. 나는 문제를 발견했다고 생각하지만, 당신을 괴롭히지 않으면 몇 가지 질문을합니다. paramstart = p1에서 최대화 할 모델 (param)이 있습니다. 이 모델은 (-log (likelihood (F))에 대해 작성되었으며 F는 F (t, Z, X, T, param, m2, m3, k, l)와 같은 벡터화 된 함수입니다. 나는 (tdata, kdata, ldata)와 같은 데이터를 가지고 있고, X, T는 격자이고 Z는이 격자의 함수이고 (m1, m2, m3) 매개 변수가 주어진다. 나는 F의 값을보고 싶을 때 (tdata, Z, X, T, m1, m2, m3, kdata, ldata), 나는 좋은 결과를 얻는다. 하지만 fminsearch는 상수와 같은 F (tdata, Z, X, T, p, m2, m3, kdata, ldata)를 허용한다고 생각합니다. 당신이 그것을 조정할 충고가 있다면 나는 행복 할 것이다.

+0

여러분은 데모를 읽고 fminsearch를 도와야한다고 생각합니다. IT에는이를 사용하는 방법에 대한 많은 예제가 있습니다. 이 경우 fminsearch는 최적화 할 매개 변수를 알지 못합니다. 다시, 예제를보고 따라하십시오. –

+0

@ woodchips, 다시 한 번 감사드립니다. – user1018331

답변

2

몇 가지 옵션을 조정할 수 있습니다. 나는 알고리즘으로 시작할 것입니다.

사실 함수 값이 시작점 주변에서 변경되지 않으면 문제가 발생합니다. 어쩌면 log-likelyhood로 전환하는 것이 도움이 될 것입니다.

나는 항상 fminunc 또는 fmincon을 사용합니다. 그들은 또한 헤 시안 (heessian) (일반적으로 "추정 된 것"보다 낫다) 또는 "전형적인 값"을 제공하여 알고리즘이 실행 불가능한 지역에서 시간을 소비하지 않도록합니다.

+0

답변 해 주셔서 감사합니다. 나는 너의 힌트를 시도 할 것이다. – user1018331

1

우도 함수를 최대화하지 않아야하지만 항상 해당 함수의 로그를 최대화해야한다는 것은 사실입니다. 부동 소수점 문제는 거의 항상 문제를 부패시킵니다. 같은 시점에 최적화가 시작되고 중지된다는 것이 문제가되는 좋은 지표입니다.

위의 내용보다 조금 더 깊게 조사해야 할 수도 있지만, 그렇다고하더라도 다음 테스트는 최적화 도구의 모든 사용자가 문제를 해결하기 전에 모든 기능을 수행하도록 권장하는 테스트입니다. 최적화 도구. 주변의 여러 지점에 대한 당신의 목표를 평가하십시오. 현저하게 다른 값을 산출합니까? 그렇지 않다면 왜 안 보이는지보십시오. 최적화를위한 비 매끄러운 목표 또는 제로 목표를 만들고 있습니까? 즉, 제공된 공차 내에서 제로까지?

다른 값을 산출하지만 여전히 수렴하지 않으면 최적화 프로그램을 올바르게 호출하는 방법을 알고 있어야합니다. 그래, 맞아. 전에 아무도 이런 실수를 한 적이 없어. 이것은 실제로 최적화 프로그램 실패의 매우 일반적인 원인입니다.

값이 다양하고 옵티마이 저를 올바르게 호출하는 경우 최적화 프로그램이 분기하려고하는 영역이 있으면 가비지 결과를 산출합니다. 객관적인 결과가 복잡하거나 상상적인 결과를 만들어 내는가?

+0

감사합니다. 너를 괴롭히지 않는다면, 내 스택을 위해 나를 도울 수 있겠 니? 나는 같은 질문으로 그것을 썼다. – user1018331