Встановлення гетероседастичної узагальненої лінійної моделі для біноміальних відповідей


9

У мене є дані з наступної експериментальної конструкції: мої спостереження - це підрахунок кількості успіхів ( K) від відповідної кількості випробувань ( N), виміряних для двох груп, що складаються з Iіндивідуумів, з Tметодів лікування, де у кожній такій факторній комбінації є Rповтори . Отже, я маю 2 * I * T * R K 's та відповідні N ' s.

Дані з біології. Кожна людина - це ген, для якого я вимірюю рівень експресії двох альтернативних форм (через явище, яке називається альтернативним сплайсингом). Отже, K - рівень вираження однієї з форм, а N - сума рівнів вираження двох форм. Вибір між двома формами в одній вираженій копії вважається експериментом Бернуллі, отже, K з Nкопії слід двочлен. Кожна група складається з ~ 20 різних генів, і гени в кожній групі мають певну загальну функцію, яка відрізняється між двома групами. Для кожного гена в кожній групі маю ~ 30 таких вимірювань з кожної з трьох різних тканин (лікування). Хочу оцінити вплив групи та лікування на дисперсію K / N.

Відомо, що експресія гена є наддисперсною, отже, використання негативного біноміулу в наведеному нижче коді.

Наприклад, Rкод імітованих даних:

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
}

Мені цікаво оцінити вплив, який група та лікування мають на дисперсію (або дисперсію) ймовірностей успіху (тобто K/N). Тому я шукаю відповідний glm, у якому відповідь є K / N, але крім моделювання очікуваного значення відповіді моделюється також дисперсія відповіді.

Очевидно, що на різницю ймовірності двобічного успіху впливає кількість випробувань та основна ймовірність успіху (чим більша кількість випробувань і тим більш екстремальною є основна ймовірність успіху (тобто, біля 0 або 1), тим нижче відхилення ймовірності успіху), тому мене головним чином цікавить внесок групи та лікування, що перевищує кількість випробувань та основні ймовірності успіху. Я думаю, що перетворення квадратного кореня арцина у відповідь усуне останнє, але не таке кількість випробувань.

Хоча в модельованому прикладі дані, наведені вище конструкції, врівноважені (однакова кількість осіб у кожній з двох груп та однакова кількість копій у кожній особі від кожної групи в кожному лікуванні), у моїх реальних даних це не так - дві групи не мають рівної кількості осіб і кількість повторів змінюється. Крім того, я думаю, що людину слід встановити як випадковий ефект.

Позначення дисперсії вибірки проти середньої вибірки прогнозованої ймовірності успіху (позначається як p hat = K / N) кожного окремого ілюструє, що екстремальні ймовірності успіху мають меншу дисперсію: введіть тут опис зображення введіть тут опис зображення

Це усувається, коли оцінені ймовірності успіху трансформуються за допомогою стабілізації стабілізації дисперсії у квадратному корінні дуги (позначається як arcsin (sqrt (p hat)): введіть тут опис зображення

Графік вибіркової дисперсії трансформованої оціночної ймовірності успіху проти середнього N показує очікуване негативне співвідношення: введіть тут опис зображення

Графік вибіркової дисперсії трансформованої оціночної ймовірності успіху для двох груп показує, що група В має дещо більші дисперсії, тому я моделював дані: введіть тут опис зображення

Нарешті, побудова вибіркової дисперсії трансформованої оціночної ймовірності успіху для трьох методів лікування не показує різниці між методами лікування, тому я моделював дані: введіть тут опис зображення

Чи існує якась форма узагальненої лінійної моделі, за допомогою якої я можу кількісно оцінити групу та вплив лікування на дисперсію ймовірностей успіху?

Можливо, гетероскедастична узагальнена лінійна модель чи якась форма логічної лінійної дисперсії?

Щось у рядках моделі, яка моделює Варіантність (у) = Zλ на додаток до E (y) = Xβ, де Z і X є регресорами середнього значення та дисперсії відповідно, що в моєму випадку буде ідентичним і включає лікування (рівні t.1, t.2 і t.3) і групи (рівні a і b), і, ймовірно, N і R, і, отже, λ і β оцінюватимуть їх відповідні ефекти.

Альтернативно, я міг би прилаштувати модель до варіантів вибірки через реплікації кожного гена з кожної групи в кожному лікуванні, використовуючи glm, який моделює лише очікуване значення відповіді. Єдине питання тут - як врахувати той факт, що різні гени мають різну кількість реплік. Я думаю, що ваги в ГЛМ могли б пояснити це (зразкові відхилення, засновані на більшій кількості копій, повинні мати більшу вагу), але які саме ваги слід встановити?

Примітка. Я спробував використовувати dglmпакет R:

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.fit є досить слабким. Цікаво, чи правильно встановлена ​​модель чи потужність цієї моделі.


1
Це трохи непрозоро. Чи можете ви сказати конкретніше, яка у вас ситуація, можливо, конкретно?
gung - Відновіть Моніку

1
Я відредагував своє повідомлення. Але в цілому я шукаю glm, який, крім E (y) = Xβ, моделює Variance (y) = Zλ, де стовпці X є регресорами для середнього рівня відгуку, а стовпці Z - регресори для дисперсії відповіді, а β і λ - параметри, які оцінюють їх вплив відповідно на середнє значення та дисперсію відповідно.
user1701545,

2
Я так багато збираю, але важко продумати це настільки туманно. Ви не обговорюєте змінних X або Z, наприклад. Про що йдеться у вашому дослідженні? Які ваші дані? І т. Д.
gung - Відновіть Моніку

Немає проблем - див. Оновлений пост.
user1701545,

Відповіді:


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