- 二値形質の場合には、上述の量的形質の場合に算出した、遺伝因子と環境因子との和であるphenoをそのまま表現型にするわけにはいかないので工夫が必要である
- 一つのモデルは、閾値を設定しそれより大きいと発病(値 1)、そうでなければ非発病(値0)とするものである
- やってみる
- 上の量的形質と同じリスク計算をし、表現型決定だけ変えたもの
n.marker <- 100
N <- 10^5
g <- matrix(0,N,n.marker)
f <- 0.1 + runif(n.marker) * 0.4
for(i in 1:n.marker){
g[,i] <- sample(0:2,N,replace=TRUE,prob=c(f[i]^2,2*f[i]*(1-f[i]),(1-f[i])^2))
}
r <- rnorm(n.marker)
R <- rep(0,N)
for(i in 1:n.marker){
R[which(g[,i]==1)] <- R[which(g[,i]==1)] + r[i]
R[which(g[,i]==2)] <- R[which(g[,i]==2)] + r[i]*2
}
h <- 0.7
eV <- (1-h)/h * var(R)
R. <- R + rnorm(N,0,sqrt(eV))
rnk <- rank(R.)
pheno <- rep(0,N)
prevalence <- 0.01
pheno[which(rnk > N * (1-prevalence))] <- 1
lm.out <- lm(pheno~g)
pheno. <- lm.out$fitted
h1 <- var(pheno.)/var(pheno)
h1
> h1
[1] 0.05043295
- 注意するべきは、狭義遺伝率がぐっと小さくなっていること
- これは分散を用いた狭義遺伝率が線形回帰的な枠組みを使っているのに対し、0/1表現型ではロジスティック回帰の方がよいことに対応する(はず)
- では、線形回帰ではなく、ロジスティック回帰でやってみよう
glm.out <- glm(pheno~g,family=binomial)
pheno. <- glm.out$fitted
h1 <- var(pheno.)/var(pheno)
h1
> h1
[1] 0.2889976
- 線形回帰の場合よりはずいぶん上がったけれど、0.7からは程遠い
- 二値形質での場合は、遺伝率100というのは、なかなかに難しいはず。なぜなら、閾値モデルがそもそも連続値を0/1に峻別するという方法であって、そのこと自体に無理があるから