이항 반응에 대한 이분산성 일반 선형 모형 피팅


9

나는 다음과 같은 실험 설계에서 데이터를 내 관측 성공 (의 수의 계산이다 K시험의 수 (대응에서) N각각 구성된 두 그룹에 대해 측정) I에서 개인, T이러한 각 요인의 조합에있다 치료, R복제를 . 따라서, 나는 모두 2 * I * T * R K 및 대응하는 N을 갖는다 .

데이터는 생물학에서 온 것입니다. 각 개체는 (대체 스 플라이 싱이라고 불리는 현상으로 인해) 두 가지 대체 형태의 발현 수준을 측정하는 유전자입니다. 따라서, K 는 형태 중 하나의 발현 수준이고 N 은 두 형태의 발현 수준의 합이다. 하나의 표현 된 사본에서 두 형태 중 하나를 선택하는 것은 Bernoulli 실험으로 가정되므로 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. 따라서 응답이 K / N 인 적절한 glm을 찾고 있지만 응답의 예상 값을 모델링하는 것 외에도 응답의 분산도 모델링됩니다.

이항 성공 확률의 분산은 시행 횟수와 기본 성공 확률의 영향을받습니다 (시행 횟수가 높을수록 기본 성공 확률이 더 높을수록 (즉, 0 또는 1에 가까울수록) 성공 확률의 변화), 그래서 나는 시도 횟수와 근본적인 성공 확률보다 그룹과 치료의 기여에 주로 관심이 있습니다. arcsin square root 변환을 반응에 적용하면 후자를 제거하지만 시행 횟수는 제거하지 않을 것입니다.

위의 시뮬레이션 예제 데이터에서 설계가 균형을 이루지 만 (각 그룹의 각 그룹에서 동일한 수의 개인과 각 그룹의 각 그룹에서 동일한 수의 복제) 내 실제 데이터는 그렇지 않습니다-두 그룹은 같은 수의 개인이 없으며 복제 횟수가 다릅니다. 또한 개인이 무작위 효과로 설정되어야한다고 생각합니다.

표본 분산을 각 개인의 추정 성공 확률 (p hat = K / N으로 표시)의 표본 평균과 비교하면 극도의 성공 확률이 분산이 낮다는 것을 알 수 있습니다. 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

이것은 추정 된 성공 확률이 arcsin 제곱근 분산 안정화 변환 (arcsin (sqrt (p hat)으로 표시))을 사용하여 변환 될 때 제거됩니다. 여기에 이미지 설명을 입력하십시오

변환 된 추정 성공 확률 대 평균 N의 표본 분산을 플로팅하면 예상되는 음의 관계가 표시됩니다. 여기에 이미지 설명을 입력하십시오

두 그룹에 대해 변환 된 추정 성공 확률의 표본 분산을 플로팅하면 그룹 b의 분산이 약간 더 높다는 것을 알 수 있습니다. 여기에 이미지 설명을 입력하십시오

마지막으로 세 가지 처리에 대해 변환 된 추정 성공 확률의 표본 분산을 플로팅하면 처리간에 차이가없는 것으로 나타 났으며, 이는 데이터를 시뮬레이션 한 방법입니다. 여기에 이미지 설명을 입력하십시오

성공 확률의 분산에 대한 그룹 및 처리 효과를 수량화 할 수있는 일반화 된 선형 모형의 형태가 있습니까?

아마도 이분법 적 일반화 선형 모형 또는 로그 선형 분산 모형의 어떤 형태일까요?

E (y) = Xβ에 더하여 Variance (y) = Zλ를 모델링하는 모델 라인의 항목. 여기서 Z와 X는 각각 평균과 분산의 회귀 자입니다. 치료 (레벨 t.1, t.2 및 t.3) 및 그룹 (레벨 a 및 b), 아마도 N 및 R 일 수 있으며, 따라서 λ 및 β는 각각의 영향을 추정합니다.

대안으로, 반응의 예상 값만 모델링하는 glm을 사용하여 각 처리에서 각 그룹의 각 유전자 복제본에 걸쳐 표본 분산에 모델을 맞출 수 있습니다. 여기서 유일한 질문은 다른 유전자가 다른 수의 복제를 가지고 있다는 사실을 설명하는 방법입니다. glm의 가중치가이를 설명 할 수 있다고 생각합니다 (더 많은 반복 실험을 기반으로하는 표본 분산의 가중치가 더 높아야 함). 정확히 어떤 가중치를 설정해야합니까?

참고 : dglmR 패키지를 사용해 보았습니다 .

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
게시물을 수정했습니다. 그러나 일반적으로 E (y) = Xβ 외에도 Variance (y) = Zλ 모델 인 X를 찾고 있는데, 여기서 X의 열은 반응 평균의 회귀 자이고 Z의 열은 반응의 분산에 대한 회귀 분석기, β 및 λ는 각각 평균과 분산에 대한 영향을 추정하는 매개 변수입니다.
user1701545

2
나는 그렇게 많이 모으지 만, 그런 성가신 용어로 이것을 생각하기는 어렵습니다. 예를 들어 X 또는 Z 변수는 논의하지 않습니다. 당신의 연구는 무엇입니까? 당신의 데이터는 무엇입니까? 기타
gung-Monica Monica 복원

문제 없습니다-업데이트 된 게시물을 참조하십시오.
user1701545

답변:


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.