Skip to content

Instantly share code, notes, and snippets.

@rmaia
Last active January 1, 2016 03:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmaia/8085337 to your computer and use it in GitHub Desktop.
Save rmaia/8085337 to your computer and use it in GitHub Desktop.
Does MCMCglmm heritability correspond to lambda estimates?
# load required packages
require(phytools)
require(geiger)
require(MCMCglmm)
data(bird.families)
# CASE 1: very high lambda
set.seed(1982)
phylo.effect<- fastBM(bird.families)
phylosig(bird.families, phylo.effect, method='lambda')
test.data <- data.frame(phenotype=phylo.effect, taxon=names(phylo.effect))
Ainv <- inverseA(bird.families)$Ainv
prior<-list(R=list(V=1, nu=0.002), G=list(G1=list(V=1, nu=0.002)))
model1<-MCMCglmm(phenotype~1, random=~taxon, ginverse=list(taxon=Ainv),
data=test.data, prior=prior, verbose=FALSE)
herit.1<-model1$VCV[,"taxon"]/(model1$VCV[,"taxon"]+model1$VCV[,"units"])
hist(herit.1)
posterior.mode(herit.1)
# CASE 2: very high lambda
set.seed(1982)
no.phylo.effect<- setNames(rnorm(length(bird.families$tip.label)), bird.families$tip.label)
phylosig(bird.families, no.phylo.effect, method='lambda')
test.data.2<-data.frame(phenotype=no.phylo.effect, taxon=names(no.phylo.effect))
Ainv<-inverseA(bird.families)$Ainv
model2<-MCMCglmm(phenotype~1, random=~taxon, ginverse=list(taxon=Ainv),
data=test.data.2, prior=prior, verbose=FALSE)
herit.2<-model2$VCV[,"taxon"]/(model2$VCV[,"taxon"]+model2$VCV[,"units"])
hist(herit.2)
posterior.mode(herit.2)
# CASE 3: intermediate lambda
set.seed(1982)
intermediate.phylo.effect<- fastBM(transform(bird.families, 'lambda', lambda=0.3))
phylosig(bird.families, intermediate.phylo.effect, method='lambda') # actually estimates to be 0.5
test.data.3 <- data.frame(phenotype=intermediate.phylo.effect, taxon=names(intermediate.phylo.effect))
Ainv <- inverseA(bird.families)$Ainv
model3<-MCMCglmm(phenotype~1, random=~taxon, ginverse=list(taxon=Ainv),
data=test.data.3, prior=prior, verbose=FALSE)
herit.3<-model3$VCV[,"taxon"]/(model3$VCV[,"taxon"]+model3$VCV[,"units"])
hist(herit.3)
posterior.mode(herit.3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment