R'deki glm ailesi argümanında lognormal dağılım nasıl belirtilir?


17

Basit soru: R'deki GLM ailesi argümanında lognormal dağılım nasıl belirtilir? Bunun nasıl başarılabileceğini bulamadım. Lognormal (veya üstel) neden aile argümanında bir seçenek değil?

R-Arşivlerinde bir yerde, bir lognormal belirtmek için GLM'de gaussian olarak ayarlanan aile için günlük bağlantısını kullanmak zorunda olduğumu okudum. Bununla birlikte, bu saçmalıktır, çünkü bu doğrusal olmayan bir regresyona uyacaktır ve R başlangıç ​​değerleri istemeye başlar.

Bir GLM için lognormal (veya üstel) bir dağılımın nasıl ayarlanabileceğini bilen var mı?


1
Bu [r] etiketi ile SO olmalıdır.
12'de DW

4
@DWin - Bir kez katılmıyorum - sık sık Q'ları SO'ya taşımak için oy veriyorum, ancak bu sorunun önemli istatistiksel içeriği var.
onestop

Yanıtlar:


8

Gamlss paket bağlantı fonksiyonlarda bazı çeşitliliği ile, sen lognormal ve üstel dağılımlar ve diğerleri bir demet ikisi ile jeneralize katkı modellerini uyması için izin verir ve dilerseniz, cezalandırılmış spline'lara dayalı yarı veya parametrik olmayan modeller kullanılarak. Bağlandığım siteyle bağlantılı olarak kullanılan algoritmalar ve dokümantasyon ve örnekler hakkında yayınlanan bazı makaleler var.


10

Üstel modelin aşağıdakilere uyması ile ilgili glm: glmFonksiyonu aile = Gamma ile kullanırken summary.glm, dağılım parametresini 1'e sabitlemek için destekleme olanaklarını da kullanmak gerekir :

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

Ve ben işaret edecekti ama jbowman beni dövdü, "gamlss" paket (ler) günlük normal uydurma sağlar:

help(dLOGNO, package=gamlss.dist)

1
Dispersiyon parametresini (+1) sabitlemeyi bilmiyordum.
jbowman

Bu çözümü başka bir gönderide gördüm. Ancak, iki sorun vardır. Birincisi, bu durumda sadece özet ayarlanır, ancak çıkarmam gereken parametreler (artıklar vb.) 1'in dağılımına ayarlanmaz veya yanlış mıyım? İkincisi, veri kümesinde sıfırlar olduğu için family = Gamma ile uyuşamıyorum (aslında bunlar veeery küçük değerleridir, ancak sıfıra ayarlanmıştır). Gamlss.dist paketini kontrol edeceğim!
Jens

1
Sıfır problemi R ile ilgili bir problem değil glm, ama matematikle ilgili ... ve parametre tahminleriniz varsa, R'de artıkların inşası önemsizdir. Bu soruyu SO'da [r] etiketi ile gönderin ve kesinlikle hızlı bir yanıt alacak.
12'de DW

9

Lognormal bir seçenek değildir çünkü log-normal dağılım üstel dağılım ailesinde değildir . Genelleştirilmiş doğrusal modeller yalnızca üstel aileden dağılımları sığdırabilir.

Üstel bir seçenek değildir neden üstel dağılım gibi ben bu kadar net değilim olduğu üstel ailede (umut olabilir gibi). Bildiğim diğer istatistiksel yazılımlar, üstel dağılımın, tahmin edilenden ziyade 1 olarak sabitlenmiş şekil (diğer bir deyişle ölçek veya dağılım) parametresiyle Gamma dağılımının özel bir durumu olarak ele alınarak bir GLM olarak yerleştirilmesine izin verir. glm()Ancak R parametresini kullanarak bu parametreyi düzeltmenin bir yolunu göremiyorum . Alternatiflerden biri survreg(), survivalpaketten gelen fonksiyonu ile kullanmak olacaktır dist="exponential".

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


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

"Genelleştirilmiş doğrusal modeller yalnızca üstel aileden dağılımlara uyabilir" ifadesi için bir referansınız var mı?
Henrik

5

Bir günlük normal GLM'nin yerleştirilmesinin glm()işlevin dağıtımı veya bağlantı seçeneği ile ilgisi yoktur . "Log-normal" terimi bu anlamda oldukça kafa karıştırıcıdır, ancak yanıt değişkeninin normal olarak dağıtıldığı (aile = gaussian) anlamına gelir ve bu değişkene aşağıdaki şekilde bir dönüşüm uygulanır:

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

Bununla birlikte, bu log-normal glm'yi farklı dağılım (ör. Gama) kullanan diğer glm'ler ile karşılaştırırken, AIC () fonksiyonu düzeltilmelidir. Bu durumda bu hatalı AIC'ye () bir alternatif bilen var mı?


2
Siteye hoş geldiniz, @CHarma. Bir sorunuz varsa, lütfen cevabınıza eklemek yerine sağ üst köşedeki gri "SORU SOR" seçeneğini tıklayın.
gung - Monica'yı eski durumuna döndürün

1

Aşağıdaki komutu kullanmayı deneyin:

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

Burada çalışıyor ve AIC doğru görünüyor.


7
Bu cevap yanlış. Bu, y'nin koşullu dağılımının Gauss olduğu ve kaydedilen ortalamanın doğrusal öngörücüye eşit olacağı anlamına gelir. Kesinlikle OP'nin açıkladığı gibi değil.
Michael M
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.