R의 glm 계열 인수에 로그 정규 분포를 지정하는 방법은 무엇입니까?


17

간단한 질문 : R의 GLM 패밀리 인수에 로그 정규 분포를 지정하는 방법은 무엇입니까? 이것이 어떻게 달성 될 수 있는지 찾을 수 없었습니다. 대수 인수에서 로그 정규 (또는 지수) 옵션이 아닌 이유는 무엇입니까?

R-Archives의 어딘가에서 로그 노멀을 지정하기 위해 GLM에서 가우시안으로 설정된 패밀리에 대해 로그 링크를 사용해야한다는 것을 읽었습니다. 그러나 이것은 비선형 회귀에 적합하고 R은 시작 값을 요구하기 때문에 넌센스입니다.

아무도 GLM에 대해 로그 정규 (또는 지수) 분포를 설정하는 방법을 알고 있습니까?


1
이것은 [r] 태그와 함께 SO에 있어야합니다.
DWin

4
@DWin-한 번 동의하지 않음-종종 Q를 SO로 마이그레이션하기 위해 투표하지만이 질문에는 통계적인 내용이 많이 있습니다.
onestop

답변:


8

gamlss 패키지를 사용하면 대수 정규 분포와 지수 분포를 포함한 일반화 된 가법 모형과 다양한 링크 기능을 사용하고 원하는 경우 불완전한 스플라인을 기반으로 하는 반모 수 또는 비모수 적 모델을 사용하여 일반화 된 가산 모형에 적합 할 수 있습니다. 사용 된 알고리즘과 내가 링크 한 사이트에 연결된 문서 및 예제에 관한 몇 가지 논문이 있습니다.


10

지수 모형을 피팅하는 것과 관련하여 glm: glmfamily = Gamma와 함께 함수를 사용하는 summary.glm경우 분산 매개 변수를 1로 고정하려면 지원 기능도 사용해야합니다 .

?summary.glm
fit <- glm(formula =..., family = Gamma)
summary(fit,dispersion=1) 

그리고 제가 지적했지만 jbowman이 저를 이겼습니다. "gamlss"패키지는 로그 정규 피팅을 제공합니다.

help(dLOGNO, package=gamlss.dist)

1
분산 매개 변수 (+1) 고정에 대해 몰랐습니다.
jbowman

다른 게시물 에서이 솔루션을 보았습니다. 그러나 두 가지 문제가 있습니다. 먼저이 경우 요약 만 조정되지만 추출 해야하는 매개 변수 (잔여 물 등)가 1의 분산으로 조정되지 않았습니까, 아니면 잘못 되었습니까? 둘째, 데이터 세트에 0이 있기 때문에 family = Gamma와 맞지 않습니다 (실제로 값이 작은 veeery이지만 0으로 설정되었습니다). gamlss.dist 패키지를 체크 아웃하겠습니다!
Jens

1
음, 제로 문제는 R 또는 문제가 glm아니라 수학 문제입니다 ... 그리고 매개 변수 추정치가 있다면 R의 잔차 구성은 사소한 것입니다. [r] 태그를 사용하여 SO에 질문을 게시하면 반드시 빠른 응답을 얻을 것입니다.
DWin

9

로그 정규 분포가 지수 분포 계열 에 없기 때문에 로그 정규는 옵션이 아닙니다 . 일반화 선형 모형은 지수 계열의 분포에만 적합 할 수 있습니다.

지수 분포 지수 패밀리에 있기 때문에 지수가 옵션이 아닌 이유가 명확하지 않습니다 (원하는대로). 내가 익숙한 다른 통계 소프트웨어를 사용하면 지수 분포를 추정치가 아닌 1로 고정 된 모양 (일명 스케일 또는 분산) 매개 변수가있는 감마 분포의 특수한 사례로 처리하여 GLM으로 지수 분포를 맞출 수 있습니다. glm()그러나 R의 기능을 사용 하여이 매개 변수를 수정하는 방법을 볼 수 없습니다 . 한 가지 대안은로 패키지 의 survreg()기능 을 사용하는 것 survival입니다 dist="exponential".

응답 데이터가있는 경우 와이 로그 정규 분포를 따른다고 생각하면 회귀 모델을 적합하게 만드는 일반적인 방법은 다음과 같이 로그 변환하는 것입니다. 로그(와이)정규 분포를 갖습니다. 가장 간단한 경우는 일반 (즉 일반화되지 않은) 선형 모델에 적합합니다. 그러나 결과 모델은 로그 링크가있는 GLM을 적합하게 만들 수있는 것과 같은 모델이 아닙니다.이자형(로그(와이))로그(이자형(와이)).


8
대수 정규 표현식은 지수 패밀리에 있습니다-심지어 당신이 준 바로 그 링크에서도 그렇게 말합니다! 여기에 있는 두 번째 문장을 참조하십시오. "Inverse Gaussian"바로 위의 표를 참고하십시오.h(엑스),(엑스),(θ)주어진다). 이 문제는 정기적 인 분쟁 지점입니다. 우리가 "지수 가족"이라고 말할 때 우리가 말하는 것을 제한하면, 로그 노멀은 제외 될 수 있지만, 링크에 주어진 정의에 포함됩니다.
Glen_b-복지국 모니카

"일반화 된 선형 모형은 지수 패밀리의 분포에만 적합 할 수 있습니다"라는 문구에 대한 참조가 있습니까?
Henrik

5

로그 정규 GLM을 피팅하는 것은 glm()함수 의 분포 나 링크 옵션과 관련이 없습니다 . "log-normal"이라는 용어는 이런 의미에서 매우 혼란 스럽지만 응답 변수가 정규 분포 (family = gaussian)이고 다음과 같은 방식으로 변환이이 변수에 적용됨을 의미합니다.

log.glm <- glm(log(y)~x, family=gaussian, data=my.dat)

그러나이 로그 정규 glm을 다른 분포 (예 : 감마)를 사용하는 다른 glm과 비교할 때 AIC () 함수를 수정해야합니다. 이 잘못된 AIC ()에 대한 대안을 아는 사람이 있습니까?


2
@CHarma 사이트에 오신 것을 환영합니다. 질문이 있으시면 답변에 포함시키지 말고 오른쪽 상단에있는 회색 "ASK QUESTION"을 클릭하십시오.
gung-복직 모니카

1

다음 명령을 사용해보십시오.

log.glm = glm(y ~ x, family=gaussian(link="log"), data=my.dat)

여기에서 작동하며 AIC가 올바른 것 같습니다.


7
이 답변은 잘못되었습니다. y의 조건부 분포가 가우시안이고 로그 평균이 선형 예측 변수와 같음을 의미합니다. OP가 설명하는 것은 확실하지 않습니다.
Michael M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.