Binom yanıtları için heterossedastik genelleştirilmiş doğrusal modelin yerleştirilmesi


9

Aşağıdaki deneysel tasarımdan verilerim var: gözlemlerim, her biri bireylerden oluşan iki grup için , tedavilerden, her bir faktör kombinasyonunda replikatların bulunduğu K, karşılık gelen sayıda denemeden ( N) başarıların sayısı ( ) sayımıdır. . Burada T *, R * * Bu yüzden, tamamen bir 2 var K 'nin ve mukabil N s'.ITR

Veriler biyolojiden alınmıştır. Her birey, iki alternatif formun (alternatif ekleme adı verilen bir fenomen nedeniyle) ifade seviyesini ölçtüğüm bir gendir. Dolayısıyla, K , formlardan birinin ifade seviyesidir ve N , iki formun ifade seviyelerinin toplamıdır. Tek bir ifade kopyada iki form arasında seçim dolayısıyla bir Bernoulli deney olduğu varsayılır K dışına Nkopyaları bir binom izler. Her grup ~ 20 farklı genden oluşur ve her gruptaki genler, iki grup arasında farklı olan bazı ortak fonksiyonlara sahiptir. Her gruptaki her bir gen için üç farklı dokunun (tedaviler) her birinden yaklaşık 30 ölçüm yaptım. Grup ve tedavinin K / N varyansı üzerindeki etkisini tahmin etmek istiyorum.

Gen ekspresyonunun aşırı dağıldığı bilinmektedir, bu nedenle aşağıdaki kodda negatif binom kullanımı.

Örneğin, Rsimüle edilen verilerin kodu:

library(MASS)
set.seed(1)
I = 20 # individuals in each group
G = 2  # groups
T = 3  # treatments
R = 30 # replicates of each individual, in each group, in each treatment

groups     = letters[1:G]
ids        = c(sapply(groups, function(g){ paste(rep(g, I), 1:I, sep=".") }))
treatments = paste(rep("t", T), 1:T, sep=".")
 # create random mean number of trials for each individual and 
 #  dispersion values to simulate trials from a negative binomial:
mean.trials = rlnorm(length(ids), meanlog=10, sdlog=1)
thetas      = 10^6/mean.trials
 # create the underlying success probability for each individual:
p.vec = runif(length(ids), min=0, max=1)
 # create a dispersion factor for each success probability, where the 
 #  individuals of group 2 have higher dispersion thus creating a group effect:
dispersion.vec = c(runif(length(ids)/2, min=0, max=0.1),
                   runif(length(ids)/2, min=0, max=0.2))
 # create empty an data.frame:
data.df = data.frame(id=rep(sapply(ids, function(i){ rep(i, R) }), T),
                     group=rep(sapply(groups, function(g){ rep(g, I*R) }), T),
                     treatment=c(sapply(treatments, 
                                        function(t){ rep(t, length(ids)*R) })),
                     N=rep(NA, length(ids)*T*R), 
                     K=rep(NA, length(ids)*T*R) )
 # fill N's and K's - trials and successes
for(i in 1:length(ids)){
  N     = rnegbin(T*R, mu=mean.trials[i], theta=thetas[i])
  probs = runif(T*R, min=max((1-dispersion.vec[i])*p.vec[i],0),
                max=min((1+dispersion.vec)*p.vec[i],1))
  K     = rbinom(T*R, N, probs)
  data.df$N[which(as.character(data.df$id) == ids[i])] = N
  data.df$K[which(as.character(data.df$id) == ids[i])] = K
}

Grup ve tedavinin başarı olasılıklarının dağılımı (veya varyansı) üzerindeki etkilerini tahmin etmekle ilgileniyorum K/N. Bu nedenle, yanıtın K / N olduğu uygun bir glm arıyorum, ancak yanıtın beklenen değerini modellemeye ek olarak, yanıtın varyansı da modellenir.

Açıkça, bir binom başarı olasılığının varyansı, denemelerin sayısından ve altta yatan başarı olasılığından etkilenir (denemelerin sayısı ne kadar yüksek olursa ve temel başarı olasılığı ne kadar aşırı olursa (yani 0 veya 1'e yakın), başarı olasılığının varyansı), bu yüzden esas olarak grup ve tedavinin, deneme sayısının ve altta yatan başarı olasılığının ötesinde katkılarıyla ilgileniyorum. Arcsin karekök dönüşümünü yanıta uygulamak, ikincisini ortadan kaldıracaktır, ancak deneme sayısının sayısını ortadan kaldırmayacaktır.

Simüle edilmiş örnek veride tasarımın dengeli olmasına rağmen (iki grubun her birinde eşit sayıda birey ve her tedavide her bir gruptaki her bir kişide aynı sayıda replikat), gerçek verilerimde değil - iki grup eşit sayıda kişiye sahip değildir ve yineleme sayısı değişir. Ayrıca, bireyin rastgele bir etki olarak ayarlanması gerektiğini düşünürüm.

Her bireyin tahmin edilen başarı olasılığının (p hat = K / N olarak ifade edilir) örnek varyansına karşı örnek varyansının çizilmesi, aşırı başarı olasılıklarının daha düşük varyansa sahip olduğunu göstermektedir: resim açıklamasını buraya girin resim açıklamasını buraya girin

Bu, tahmini başarı olasılıkları arcsin karekök varyans stabilize edici dönüşüm (arcsin (sqrt (p hat)) olarak gösterilir) kullanılarak dönüştürüldüğünde ortadan kaldırılır: resim açıklamasını buraya girin

Dönüştürülen tahmini başarı olasılıklarının örnek varyansının ortalama N ile karşılaştırılması, beklenen negatif ilişkiyi gösterir: resim açıklamasını buraya girin

İki grup için dönüştürülmüş tahmini başarı olasılıklarının örnek varyansını çizmek, b grubunun biraz daha yüksek varyanslara sahip olduğunu gösterir, bu da verileri nasıl simüle ettiğimi gösterir: resim açıklamasını buraya girin

Son olarak, üç tedavi için dönüştürülmüş tahmini başarı olasılıklarının örnek varyansının çizilmesi, tedaviler arasında hiçbir fark göstermemektedir, bu da verileri nasıl simüle ettiğimi göstermektedir: resim açıklamasını buraya girin

Grubu ölçebileceğim ve başarı olasılıklarının varyansı üzerindeki tedavi etkilerini genelleştirebileceğim herhangi bir genelleştirilmiş doğrusal model var mı?

Belki de heteroscedastik genelleştirilmiş doğrusal model veya bir çeşit doğrusal doğrusal model?

E (y) = Xβ'ye ek olarak Varyans (y) = Zλ'yı modelleyen bir modelin satırlarında, Z ve X sırasıyla ortalama ve varyansın regresörleridir, benim durumumda aynı olacak ve tedavi (t.1, t.2 ve t.3 seviyeleri) ve grup (a ve b seviyeleri) ve muhtemelen N ve R ve dolayısıyla λ ve β ilgili etkilerini tahmin edecektir.

Alternatif olarak, sadece yanıtın beklenen değerini modelleyen bir glm kullanarak, her tedavide her bir gruptan her genin replikatları arasındaki örnek varyanslarına bir model sığdırabilirim. Buradaki tek soru, farklı genlerin farklı sayıda kopyaya sahip olduğu gerçeğini nasıl açıklayacağımızdır. Bence bir glm ağırlıkları (daha fazla çoğaltmaya dayalı örnek varyansları daha yüksek bir ağırlık olması gerekir) bunu açıklayabilir ama tam olarak hangi ağırlıkları ayarlanmalıdır?

Not: dglmR paketini kullanmayı denedim :

library(dglm)
dglm.fit = dglm(formula = K/N ~ 1, dformula = ~ group + treatment, family = quasibinomial, weights = N, data = data.df)
summary(dglm.fit)
Call: dglm(formula = K/N ~ 1, dformula = ~group + treatment, family = quasibinomial, 
    data = data.df, weights = N)

Mean Coefficients:
               Estimate Std. Error   t value     Pr(>|t|)
(Intercept) -0.09735366 0.01648905 -5.904138 3.873478e-09
(Dispersion Parameters for quasibinomial family estimated as below )

    Scaled Null Deviance: 3600 on 3599 degrees of freedom
Scaled Residual Deviance: 3600 on 3599 degrees of freedom

Dispersion Coefficients:
                Estimate Std. Error      z value  Pr(>|z|)
(Intercept)  9.140517930 0.04409586 207.28746254 0.0000000
group       -0.071009599 0.04714045  -1.50634107 0.1319796
treatment   -0.001469108 0.02886751  -0.05089138 0.9594121
(Dispersion parameter for Gamma family taken to be 2 )

    Scaled Null Deviance: 3561.3 on 3599 degrees of freedom
Scaled Residual Deviance: 3559.028 on 3597 degrees of freedom

Minus Twice the Log-Likelihood: 29.44568 
Number of Alternating Iterations: 5 

Dglm'ye göre grup etkisi. Uyum oldukça zayıf. Modelin doğru ayarlandığını veya bu modelin sahip olduğu güç olup olmadığını merak ediyorum.


1
Bu biraz opak. Durumunuzun ne olduğunu, özellikle somut olarak daha spesifik olarak söyleyebilir misiniz?
gung - Monica'yı eski

1
Yazımı düzenledim. Ama genel olarak, E (y) = Xβ'ye ek olarak, Variance (y) = Zλ modellerinin yanı sıra X'in sütunlarının yanıtın ortalaması ve Z'nin sütunlarının regresörleri olduğu bir glm arıyorum. cevabın varyansı için regresörler ve β ve λ, sırasıyla ortalama ve varyans üzerindeki etkilerini tahmin eden parametrelerdir.
user1701545

2
Ben o kadar çok toplanıyorum, ama bunu böyle belirsiz bir şekilde düşünmek zor. Hiçbir X veya Z değişkenini tartışmıyorsunuz, örn. Çalışmanız ne hakkında? Verileriniz neler? Vb
gung - Monica'yı

Sorun değil - güncellenmiş gönderiye bakın.
user1701545

Yanıtlar:


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.