2015-02-06 7 views
3

저는 VGAM 라이브러리의 vglm 패키지와 비슷한 방식으로 데이터를 베타 이항 분포에 맞추고 알파와 베타를 추정하는 방법을 찾고있었습니다. 파이썬에서이 작업을 수행하는 방법을 찾을 수 없었습니다. scipy.stats.beta.fit()가 있지만 베타 이항 분포에는 아무 것도 없습니다. 이것을 할 수있는 방법이 있습니까?Fit beta binomial

답변

3

파이썬에서 beta-binomial에 대한 예측을 보지 못했습니다.

매개 변수를 계산하려면 scipy.optimize를 사용하여 인터넷 검색 후 자신을 작성하거나 코드를 복사 할 수있는 로그 가능성 함수를 최소화 할 수 있습니다.

rv_discrete의 하위 클래스로 scipy.stats.distributions의 프레임 워크를 사용할 수 있지만 scipy의 개별 배포에는 fit 메소드가 없습니다.

statsmodels를 사용하려는 경우 GenericLikelihoodModelhttp://statsmodels.sourceforge.net/devel/dev/generated/statsmodels.base.model.GenericLikelihoodModel.html은 scipy.optimize를 사용하지만 Maximum Likelihood Estimate에 필요한 대부분의 항목을 정의 할 수 있습니다. 그러나 log-likelihood 함수에 대한 코드를 작성해야합니다. 이것은 매개 변수에 대한 표준 오류 및 다양한 테스트와 같은 일반적인 최대 우도 결과를 제공합니다.

베타 2 항 회귀가 필요한 경우 R 패키지 gamlss에 사용 된 평균 분산 매개 변수화가 더 많이 사용되며 link 함수를 다시 사용하여 매개 변수가 유효한 도메인에 속하도록 제한 할 수 있습니다. 관련된 예로서

는 : http://gist.github.com/brentp/089c7d6d69d78d26437f

+1

scipy가 scipy.stats을 가지고 제공이 statsmodels 베타 - 회귀 풀 요청으로 이어질 GenericLikelihoodModel 원형으로 요지이다. beta.fit(). 이것의 알파와 베타 매개 변수와 베타 이항을 위해 만들어진 무언가의 차이점은 무엇입니까? – user3266890

+0

나는 결코 시도하지 않았다. 그래서 나는 베타와 베타 이항의 위키 피 디아 (wikipedia) 기술을 비교하는 것에 기초하고있다. 제 생각에'n'이 일정하다면, 알파와 베타 추정치는 같아야합니다. 'n'이 변동하는 경우 베타 - 이항식을 추정하는 것은 베타를 추정하는 것보다 관측치의 다른 가중치를 가지며 여기서 가중치는 n의 크기에 따라 달라집니다. 더 큰 n을 기반으로 한 비율은 더 작은 분산을 가지며 더 작은 n을 기반으로 한 비율보다 더 많은 가중치를가집니다. – user333700

+0

베타 분포 (scipy.stats.beta에서 구현 됨)는 [0,1] 범위에서 지원되지만 베타 - 바이너리 분포는 정수에서 지원됩니다. 두 가지 전혀 다른 유형의 데이터에 대해 완전히 다른 두 가지 분포입니다. 베타 버전을 사용하여 베타 이항 데이터에 적합하지 않습니다. (베타 - 이항 분포를 이항 분포로 생각하면 성공 확률을 정확하게 알 수 없습니다.) – Danny