Poisson GLM'm için bir ofset kullanmalı mıyım?


11

İki farklı sualtı görsel sayım yöntemi kullanırken balık yoğunluğu ve balık türü zenginliği farklılıklarına bakmak için araştırma yapıyorum. Verilerim aslında verileri sayıyordu, ancak genellikle bu balık yoğunluğuna değiştirildi, ancak hala umarım doğru olan bir Poisson GLM kullanmaya karar verdim.

model1 <- glm(g_den ~ method + site + depth, poisson)

3 tahmin değişkenim, girdiğimde faktör olarak sipariş ettiğim yöntem, site ve derinliktir.

Yanıt değişkenlerim, gruplayıcı tür zenginliği, gruplayıcı yoğunluğu ve diğer balık grupları için aynıdır. Yoğunluğun bir tamsayı olmadığının ve sayısal veriler olduğunun farkındayım, örneğin 1.34849. Şimdi ancak bu hatayı alıyorum:

In dpois(y, mu, log = TRUE) : non-integer x = 0.037500

Okudum ve birçok insan bir ofset kullanmayı öneriyor, bu yapılması en tavsiye edilen şey mi?


1
Bu gerçekten R'nin nasıl kullanılacağı ile ilgili değil. Bu, R sorusu olarak gizlenen temel bir istatistiksel sorudur. Burada konuyla ilgili olmalı.
gung - Monica'yı eski

Yanıtlar:


11

Burada birkaç sorun var:

  1. Yanıt değişkeniniz olarak gözlenen sayıları kullanmanız gerekir. Yoğunlukları ( g_den) kullanmamalısınız .
  2. Gözlenen sayılar farklı alanlardan geliyorsa, bu alanların günlüğünü yeni bir değişken olarak almanız gerekir:

    larea = log(area)
  3. Gözlemler için farklı alanları iki farklı şekilde kontrol edebilirsiniz:

    • lareaOfset olarak kullanarak . Bu, yanıtınızı gerçekten bir oran haline getirecektir (modelinizin sol tarafında listelenen bir sayı olsa da ).
    • lareaBir ortak değişken olarak kullanarak . Bu, farklı alanları kontrol eder, ancak yanıtınızı bir orana eşit yapmaz. Bu, artışların lareasayım üzerinde artan veya azalan bir etkiye sahip olup olmadığını (yani eğimin 1'den küçük veya büyük olup olmadığını) değerlendirmenizi sağlayan daha esnek bir yaklaşımdır .

Aşağıdaki CV iş parçacıklarında bu konular hakkında daha fazla bilgi bulunmaktadır:


6

Görünüşe göre balık sayısını ankete katılan suyun hacmine (veya belki de alanına) böldünüz. Bu durumda bir ofset gerçekten uygundur, bölündüğünüz şeyin günlüğünü kullanmalısınız. belki

model1 <- glm(g_den ~ method + site + depth + offset(log(area)), poisson)

(önceki yanlış sürümden düzenlenmiş, günlük eksik)

Hata mesajının nedeni, poisson dağılımının normalde tamsayı değerli olması, ancak yanıtın bir tamsayı olmamasıdır. Bir ofset bulunduğunda bu değişir; (yanıt / ofset) bir tamsayı olmalıdır (tabii ki orijinal sayımların tamsayı olduğu varsayılarak).


2
Cevabınızda alanın günlük dönüşümünü kullanmanız gerektiğini (Poisson modeli günlük bağlantısını kullandığından), ancak kodunuz dönüşümü yapmaz. offsetDönüşümün varsayılan olarak uygulandığını düşünmüyorum ama kullandığımdan bu yana bir süre geçti offset.
iacobus

3
Not offset() gelmez varsayılan olarak dönüşümü uygulamak; sadece katsayıyı 1 olmaya zorlar. Bkz . örneğin burada .
gung - Monica'yı eski

1
Yorumlar için teşekkürler. Verilerimi yoğunluk yerine tekrar sayılara değiştirmeli ve alanı ayrı bir değişken olarak eklemeli miyim? Başka bir forumda, bir gama veya ters Gauss modeli yapmak ve verileri yoğunluk olarak tutacak olsaydım sıfır değerlerimi 0.00001 olarak değiştirmem tavsiye edildi, bunun da uygun olacağını düşünüyor musunuz?
Vivienne

4
@JDL Günlük (alan) ofset olarak dahil edildiğinde, tamsayı olmayan yoğunluğu yanıt olarak tutmak doğru değildir. Log link fonksiyonu ve log (alan) ofseti, , yani orantılılık beklenen balık sayısını ve her alanın boyutunu doğrudan. Bu, beklenen yoğunluk günlükten ( alan). E(count)=exp(βTx)area=exp(βTx+log(area))E(count/area)=E(count)/area=exp(βTx)
Jarle Tufto

5
Yoğunlukları yanıt olarak kullanamazsınız. Yanıt olarak orijinal sayıları kullanmalısınız. Ofseti dahil etmek, otomatik olarak sayım tepkisini yoğunluklara doğru şekilde eşleştirecektir.
gung - Monica'yı eski

5

Poisson kullanarak modelleme yapacaksanız, yanıt değişkeniniz için tamsayı değerlerine sahip olmalısınız. O zaman iki seçeneğiniz var

  • Ofset olarak alan veya başka bir uygun payda kullanın. Bunun genellikle önce kaydedilmesi gerekir
  • Alan veya vb. Öngörme değişkeni olarak dahil edilir. Yine bu genellikle bir günlük olarak dahil edilir çünkü günlük sayılarını modelliyorsunuzdur.

Ofset yaklaşımını kullanırsanız, alanı iki katına çıkarsam sayımın iki katını almayı beklediğimi söylüyorsunuz. Eğer yordayıcı yaklaşımını kullanırsanız, sayımları çarptığınız ancak aynı faktörle değil, çarpanı bildiğinizi söylersiniz.

Bu senin çağrın.

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.