--- title: 'D. galeata & Fish Kairomones -part II: adaptive potential-' author: "Verena Tams" date: "July 2018" output: html_document --- In this second part of the analysis I test for the adaptive potential (response ~ treatment * pop + (treatment|pop/clone) +(1|round)). I use a linear mixed effect model and test wether a random intercept or random slope model is appropriate. I define a significant interaction of presence of predator and genotype origin ('EnvironmentxPopulation') as an indication for the possible presence of local adaptation for a predator environment. For hypothesis testing (significant 'Environment x Population' interaction) I use the function Anova(model, type=2). This test performs a Wald Chi-Square-Test with the underlying null hypothesis that there is no significant interaction between the two explanatory variables. ```{r SetWd} #setwd() ``` ```{r LoadData, warning=FALSE} #load data FKn15<- read.table("./Input/FKmaster.txt", header = T) FKn15.no0<- FKn15[ which(FKn15$AFR > 5), ] rates<- read.table("./Input/surv_repro_relfit.txt", header = T) FKn15.no_na<- subset(FKn15, !is.na(length)) FKn15.no0$Indiv <- factor(1:nrow(FKn15.no0)) #load libraries (package) library(lme4) library(ordinal) library(MASS) library(car) library(RVAideMemoire) ``` ###Age at First Reproduction (AFR) ```{r ModelAFR} #random slope & intercept model AFR.model.gammap <- glmer(AFR ~ treatment * pop + (1|pop/clone), family=Gamma(link="log"), data=FKn15.no0) AFR.model.gammap2 <- glmer(AFR ~ treatment *pop + (treatment|pop/clone), family=Gamma(link="log"), data=FKn15.no0) anova(AFR.model.gammap, AFR.model.gammap2) #slope? *** #random slope & intercept model plus random factor 'round' AFR.model.gammap3 <- glmer(AFR ~ treatment *pop + (treatment|pop/clone) + (1|round), family=Gamma(link="log"), data=FKn15.no0) AFR.null.gammap3_1 <- glmer(AFR ~ treatment + pop + (treatment|pop/clone) + (1|round), family=Gamma(link="log"), data=FKn15.no0) anova(AFR.null.gammap3_1, AFR.model.gammap3) #TxP? n.s. no interaction AFR.null.gammap3_2 <- glmer(AFR ~ treatment + (treatment|pop/clone) + (1|round), family=Gamma(link="log"), data=FKn15.no0) anova(AFR.null.gammap3_2, AFR.model.gammap3) anova(AFR.model.gammap2, AFR.model.gammap3) #round? n.s. Anova(AFR.model.gammap3, type=2)#TxP? n.s., T** ``` ###Total Number of Broods (broods) ```{r ModelBroods} # fit the model FKn15.no0$broodsF <- factor(FKn15.no0$broods, levels = sort(unique(FKn15.no0$broods)), ordered=TRUE) #random slope & intercept model broods.model.clmmp <- clmm(broodsF ~ treatment * pop + (1|pop/clone), data=FKn15.no0, link="probit") broods.model.clmmp2 <- clmm(broodsF ~ treatment*pop + (treatment|pop/clone), data=FKn15.no0, link="probit") anova(broods.model.clmmp, broods.model.clmmp2) #slope? *** #random slope & intercept model plus random factor 'round' broods.model.clmmp3 <- clmm(broodsF ~ treatment*pop + (treatment|pop/clone) +(1|round), data=FKn15.no0, link="probit") broods.null.clmmp3_1 <- clmm(broodsF ~ treatment+pop + (treatment|pop/clone) +(1|round), data=FKn15.no0, link="probit") anova(broods.null.clmmp3_1, broods.model.clmmp3) #TxP? n.s broods.null.clmmp3_2 <- clmm(broodsF ~ treatment + (treatment|pop/clone) +(1|round), data=FKn15.no0, link="probit") anova(broods.null.clmmp3_2, broods.model.clmmp3) #TxP? n.s. anova(broods.model.clmmp2, broods.model.clmmp3) #round? n.s. Anova.clmm(broods.model.clmmp3) ``` ###Total Number of Offspring (offspring) ```{r ModelOff} #random slope & intercept model offspring.model.glmmp <- glmer(offspring ~ treatment * pop + (1|pop/clone), data=FKn15.no0, family =poisson()) offspring.model.glmmp2 <- glmer(offspring ~ treatment * pop + (treatment|pop/clone), data=FKn15.no0, family = poisson()) anova(offspring.model.glmmp, offspring.model.glmmp2) #slope? *** #random slope & intercept model plus random factor 'round' offspring.model.glmmp3 <- glmer(offspring ~ treatment * pop + (treatment|pop/clone) +(1|round), data=FKn15.no0, family = poisson()) offspring.null.glmmp3_1 <- glmer(offspring ~ treatment + pop + (treatment|pop/clone)+(1|round), data=FKn15.no0, family = poisson()) anova(offspring.null.glmmp3_1,offspring.model.glmmp3) # TxP? n.s. offspring.null.glmmp3_2 <- glmer(offspring ~ treatment + (treatment|pop/clone)+(1|round), data=FKn15.no0, family = poisson()) anova(offspring.null.glmmp3_2,offspring.model.glmmp3) anova(offspring.model.glmmp2,offspring.model.glmmp3) #round? n.s. Anova(offspring.model.glmmp3, type=2)#TxP? n.s., P** ``` ###Total Number of Offspring of First Brood (brood1) ```{r ModelBrood1} #random slope & intercept model brood1.model.glmmp <- glmer(brood1 ~ treatment *pop + (1 |pop/clone), data=FKn15.no0, family=Gamma(link="log")) brood1.model.glmmp2 <- glmer(brood1 ~ treatment * pop + (treatment|pop/clone), family=Gamma(link="log"), data=FKn15.no0) anova(brood1.model.glmmp, brood1.model.glmmp2) #slope? *** #random slope & intercept model plus random factor 'round' brood1.model.glmmp3 <- glmer(brood1 ~ treatment * pop + (treatment|pop/clone) +(1|round), family=Gamma(link="log"), data=FKn15.no0) brood1.null.glmmp3_1 <- glmer(brood1 ~ treatment + pop + (treatment|pop/clone) +(1|round), family=Gamma(link="log"), data=FKn15.no0) anova(brood1.null.glmmp3_1, brood1.model.glmmp3) #TxP? n.s. brood1.null.glmmp3_2 <- glmer(brood1 ~ treatment + (treatment|pop/clone) +(1|round), family=Gamma(link="log"), data=FKn15.no0) anova(brood1.null.glmmp3_2, brood1.model.glmmp3) anova(brood1.model.glmmp2, brood1.model.glmmp3) #round? n.s. Anova(brood1.model.glmmp3, type=2)#TxP? n.s., P** ``` ###Survival (surv) ```{r ModelSurv} #random slope & intercept model surv.model.glmmp <- glmer(survived_t14 ~ treatment * pop + (1|pop/clone), data=FKn15, family = binomial(link = "logit")) surv.model.glmmp2 <-glmer(survived_t14 ~ treatment *pop + (treatment|pop/clone), data=FKn15, family = binomial(link = "logit")) anova(surv.model.glmmp, surv.model.glmmp2) #slope? n.s. #random intercept model plus random factor 'round' surv.model.glmmp3 <- glmer(survived_t14 ~ treatment * pop + (1|pop/clone) + (1|round), data=FKn15, family = binomial(link = "logit")) surv.null.glmmp3_1 <- glmer(survived_t14 ~ treatment +pop + (1 |pop/clone) + (1|round), data=FKn15, family = binomial(link = "logit")) anova(surv.null.glmmp3_1,surv.model.glmmp3) #TxP? n.s. surv.null.glmmp3_2 <- glmer(survived_t14 ~ treatment + (1 |pop/clone) + (1|round), data=FKn15, family = binomial(link = "logit")) anova(surv.null.glmmp3_2,surv.model.glmmp3) anova(surv.model.glmmp,surv.model.glmmp3) #round? n.s. Anova(surv.model.glmmp3, type=2)#TxP? n.s. ``` ###relative fitness within each population (relnest) ```{r ModelRelnest} #random slope & intercept model relnest.model.glmmp <- glmer(relfit.nested ~ treatment * pop + (1|pop/clone), data=rates, family = Gamma(link="log")) relnest.model.glmmp2 <- glmer(relfit.nested ~ treatment *pop + (treatment |pop/clone), data=rates, family = Gamma(link="log")) anova(relnest.model.glmmp, relnest.model.glmmp2) #slope? *** #random slope & intercept model plus random factor 'round' relnest.model.glmmp3 <- glmer(relfit.nested ~ treatment *pop + (treatment |pop/clone) +(1|round), data=rates, family = Gamma(link="log")) relnest.null.glmmp3_1 <- glmer(relfit.nested ~ treatment +pop + (treatment |pop/clone) +(1|round), data=rates, family = Gamma(link="log")) anova(relnest.null.glmmp3_1, relnest.model.glmmp3) #TxP? n.s. relnest.null.glmmp3_2 <- glmer(relfit.nested ~ treatment + (treatment |pop/clone)+(1|round), data=rates, family = Gamma(link="log")) anova(relnest.null.glmmp3_2, relnest.model.glmmp3) anova(relnest.model.glmmp2,relnest.model.glmmp3) #round? n.s. Anova(relnest.model.glmmp3, type=2)#TxP? n.s., P* ``` ###relative fitness among all populations (relclone) ```{r ModelRelclone} #random slope & intercept model relclone.model.glmmp <- glmer(relfit.clone ~ treatment * pop + (1|pop/clone), data=rates, family = Gamma(link="log")) relclone.model.glmmp2 <- glmer(relfit.clone ~ treatment *pop + (treatment |pop/clone), data=rates, family = Gamma(link="log")) anova(relclone.model.glmmp, relclone.model.glmmp2) #slope? *** #random slope & intercept model plus random factor 'round' relclone.model.glmmp3 <- glmer(relfit.clone ~ treatment *pop + (treatment |pop/clone) +(1|round), data=rates, family = Gamma(link="log")) relclone.null.glmmp3_1 <- glmer(relfit.clone ~ treatment +pop + (treatment |pop/clone) +(1|round), data=rates, family = Gamma(link="log")) anova(relclone.null.glmmp3_1, relclone.model.glmmp3) #TxP? n.s. relclone.null.glmmp3_2 <- glmer(relfit.clone ~ treatment + (treatment |pop/clone) +(1|round), data=rates, family = Gamma(link="log")) anova(relclone.null.glmmp3_2, relclone.model.glmmp3) anova(relclone.model.glmmp2, relclone.model.glmmp3) #round? *** Anova(relclone.model.glmmp3, type=2)#TxP? n.s., P** ``` ###Somatic Growth rate (SGR) ```{r ModelSGR} #random slope & intercept model SGR.model.glmmp <- lmer(SGR ~ treatment * pop + (1|pop/clone), data=FKn15,REML=FALSE) SGR.model.glmmp2 <- lmer(SGR ~ treatment*pop + (treatment|pop/clone), data=FKn15, REML=FALSE) anova(SGR.model.glmmp, SGR.model.glmmp2) #slope? *** #random slope & intercept model plus random factor 'round' SGR.model.glmmp3 <- lmer(SGR ~ treatment*pop + (treatment|pop/clone) +(1|round), data=FKn15, REML=FALSE) SGR.null.glmmp3_1 <- lmer(SGR ~ treatment + pop+ (treatment |pop/clone)+(1|round), data=FKn15, REML=FALSE) anova(SGR.null.glmmp3_1, SGR.model.glmmp3) #TxP? n.s. SGR.null.glmmp3_2 <- lmer(SGR ~ treatment + (treatment |pop/clone)+(1|round), data=FKn15, REML=FALSE) anova(SGR.null.glmmp3_2, SGR.model.glmmp3) anova(SGR.model.glmmp2, SGR.model.glmmp3) #round? n.s. Anova(SGR.model.glmmp3, type=2)#TxP? n.s. ``` #### Body length (size) ```{r ModelSize} #random slope & intercept model length.model.glmm <- glmer(length ~ treatment * pop + (1 |pop/clone), data=FKn15.no_na, family = Gamma(link="log")) length.model.glmm2 <- glmer(length ~ treatment *pop + (treatment|pop/clone), data=FKn15.no_na, family = Gamma(link="log")) anova(length.model.glmm, length.model.glmm2) #slope? *** #random slope & intercept model plus random factor 'round' length.model.glmm3<- glmer(length ~ treatment *pop + (treatment|pop/clone) +(1|round), data=FKn15.no_na, family = Gamma(link="log")) length.null.glmm3_1 <- glmer(length ~ treatment + pop + (treatment |pop/clone) +(1|round), data=FKn15.no_na, family = Gamma(link="log")) anova(length.null.glmm3_1, length.model.glmm3) #TxP? n.s. length.null.glmm3_2 <- glmer(length ~ treatment + (treatment |pop/clone) +(1|round), data=FKn15.no_na, family = Gamma(link="log")) anova(length.null.glmm3_2, length.model.glmm3) anova(length.model.glmm2, length.model.glmm3) #round? n.s. Anova(length.model.glmm3, type=2)#TxP? n.s. ```