次の実験計画のデータがあります。私の観察はK
、対応する試行数()のうち成功した数()の数であり、各個人からN
構成される2つのグループに対して測定されたI
、T
処理からの、そのような各因子の組み合わせにR
反復がある。したがって、全体で2 * I * T * R Kと対応するNがあります。
データは生物学からのものです。それぞれの個体は、2つの代替形態(代替スプライシングと呼ばれる現象による)の発現レベルを測定する遺伝子です。したがって、Kは1つの形式の発現レベルであり、Nは2つの形式の発現レベルの合計です。単一の表現されたコピーにおける2つの形式間の選択は、ベルヌーイ実験であると想定されるため、NのうちKコピーは二項式に従います。各グループは約20の異なる遺伝子で構成され、各グループの遺伝子は2つのグループ間で異なるいくつかの共通の機能を持っています。各グループの各遺伝子について、3つの異なる組織(処理)のそれぞれから約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に近い)ほど、成功確率の分散)なので、私は主に、試行回数と基礎となる成功確率を超えたグループと治療の貢献に関心があります。アークシン平方根変換を応答に適用すると、後者は削除されますが、試行回数は削除されません。
上記のシミュレーション例のデータでは、設計のバランスが取れていますが(2つのグループのそれぞれに同数の個体があり、各処理の各グループの各個体に同じ数の複製があります)、実際のデータではそうではありません-2つのグループは個人の数が等しくなく、複製の数は異なります。また、個人はランダムな効果として設定する必要があると思います。
各個人の推定成功確率(pハット= K / Nと表記)のサンプル平均とサンプル分散の関係をプロットすると、極端な成功確率の分散が低くなることがわかります。
これは、arcsin平方根分散安定化変換(arcsin(sqrt(p hat)と表記)を使用して推定成功確率が変換されると除去されます。
変換された推定成功確率と平均Nの標本分散をプロットすると、予想される負の関係が示されます。
2つのグループの変換された推定成功確率の標本分散をプロットすると、グループbの分散がわずかに高くなっています。これは、データのシミュレーション方法です。
最後に、3つの処理の変換された推定成功確率の標本分散をプロットすると、処理間に差がないことがわかります。これが、データのシミュレーション方法です。
成功確率の分散に対するグループと治療効果を定量化できる一般化線形モデルの形式はありますか?
おそらく、異分散の一般化線形モデルまたは何らかの形の対数線形分散モデルですか?
E(y)=Xβに加えてVariance(y)=Zλをモデル化するモデルの行の何か。ここで、ZとXはそれぞれ平均と分散のリグレッサであり、私の場合は同一であり、次を含みます。処理(レベルt.1、t.2、およびt.3)およびグループ(レベルaおよびb)、およびおそらくNおよびR、したがって、λおよびβはそれぞれの効果を推定します。
または、応答の期待値のみをモデル化するglmを使用して、各処理の各グループからの各遺伝子の複製全体のサンプル分散にモデルを適合させることもできます。ここでの唯一の問題は、異なる遺伝子の複製数が異なるという事実をどのように説明するかです。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によるグループ効果はかなり弱いです。モデルが正しく設定されているのか、それともこのモデルが持つ力なのか。