Як вказати логічний нормальний розподіл в аргументі сімейства glm в R?


17

Просте запитання: Як визначити логічний нормальний розподіл в аргументі сімейства GLM в R? Я не міг знайти, як цього можна досягти. Чому в сімейному аргументі лонормальне (або експоненціальне) не є варіантом?

Десь в R-архівах я прочитав, що потрібно просто використовувати посилання log для сімейства, встановленого на гаусса в GLM, для того, щоб вказати лонормальне. Однак це нісенітниця, оскільки це буде відповідати нелінійній регресії і R починає просити початкові значення.

Хтось знає, як встановити логічний (або експоненціальний) розподіл для GLM?


1
Це має бути на SO з тегом [r].
DWin

4
@DWin - Я не погоджуюся жодного разу - я часто голосую за перенесення Q на SO, але це питання має значний статистичний зміст.
onestop

Відповіді:


8

Пакет gamlss дозволяє підходити до узагальнених моделей присадок як з лонормальним, так і з експоненціальним розподілом та безліччю інших, з деяким розмаїттям функцій зв’язку та використанням, за бажанням, напівпараметричних або непараметричних моделей на основі пеналізованих сплайнів. Було опубліковано деякі статті про використовувані алгоритми та документацію та приклади, пов’язані з сайтом, на який я посилався.


10

Що стосується підключення експоненціальної моделі до glm: При використанні glmфункції з сім’єю = 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, чи я помиляюся? По-друге, я не можу поєднуватися з сім'єю = Гамма, оскільки в наборі даних є нулі (насправді це маловірні значення, але встановлені в нуль). Я перевірю пакет gamlss.dist!
Єнс

1
Ну, нульова задача - це не проблема з R або glm, а з математикою, ... і якщо у вас є оцінки параметрів, побудова залишків є тривіальною в Р. Опублікуйте це питання в SO з тегом [r] і ви напевно отримає швидку відповідь.
DWin

9

Лонормальне не є варіантом, оскільки нормальний розподіл журналу не входить у експоненціальне сімейство розподілів. Узагальнені лінійні моделі можуть відповідати лише розподілам з експоненціальної родини.

Мені менш зрозуміло, чому експонентність не є варіантом, оскільки експоненціальний розподіл є в експоненціальній сім'ї (як ви можете сподіватися). Інше статистичне програмне забезпечення, з яким я знайомий, дозволяє встановити експоненціальний розподіл як ГЛМ, розглядаючи його як особливий випадок розподілу Гамма з параметром форми (також масштабу чи дисперсії), зафіксованого на 1, а не оцінюваного. glm()Однак я не бачу способу виправити цей параметр за допомогою функції R. Однією з альтернатив було б використання survreg()функції з survivalпакета з dist="exponential".

ylog(y)E(log(Y))log(E(Y)).


8
h(x),T(x),A(θ)

Чи є у вас посилання на твердження, що "Узагальнені лінійні моделі можуть відповідати лише розподілам з експоненціальної родини"?
Генрік

5

Встановлення звичайного журналу GLM не має нічого спільного ні з розподілом, ні з функцією посилання glm()функції. Термін "log-normal" є досить заплутаним у цьому сенсі, але означає, що змінна відповіді зазвичай розподіляється (сімейство = гаусса), і трансформація застосовується до цієї змінної наступним чином:

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

Однак, порівнюючи цей log-нормальний glm з іншими glms, використовуючи різні розподіли (наприклад, гамма), функцію AIC () слід виправити. Хтось знає альтернативу цим помилковим AIC () у цьому випадку?


2
Ласкаво просимо на сайт, @CHarma. Якщо у вас виникло запитання, натисніть на сірий "ЗАПИТИ ЗАПИТАННЯ" у верхньому правому куті, а не включайте його у відповідь.
gung - Відновіть Моніку

1

Спробуйте скористатися такою командою:

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

Тут він працює, і АПК здається правильним.


7
Ця відповідь неправильна. Це означало б, що умовний розподіл y - гауссова, а середньо зареєстроване середнє значення дорівнювало б лінійному предиктору. Звичайно, не так, як описує ОП.
Майкл М
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.