#load required pacakges
library(MASS)
library(MuMIn)
library(readr)
library(Hmisc)
library(car)
require(ggplot2)
library(lme4)
library(MuMIn)
library(dplyr)

############Aggregated analysis (n = 43)
Shift43 <- read_csv("~/Documents/Rworkspace/Nat Comm/Shift_site_43.csv")
ShiftSite<-na.pass(Shift43)
View(ShiftSite)

# Looking at the distribution of the response variable
hist(ShiftSite$rate)
t.test(ShiftSite$rate)
shapiro.test(ShiftSite$rate)

#scatter plot matrix
pairs(ShiftSite[,4:9])
#correlation matrix
CormSite<- rcorr(as.matrix(ShiftSite[,4:9]))
CormSite
fullSite<-lm(rate~scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)+Type+Ref
             +scale(Gain),data=ShiftSite)
#VIF calculation (use 2 as cutoff threshold)
vif(fullSite)
#Stepwise model selection
summary(fullSite)
step<-stepAIC(fullSite,~.^2,direction = "both")
#mannually remove redundant interactions
lm1<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
          Type + scale(Gain) + scale(Loss):scale(Tmean) + scale(Loss):Type + 
          scale(Loss):scale(Gain) + scale(CCR):scale(Cover),data=ShiftSite)
lm2<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) +
          Type + scale(Gain) + scale(Loss):scale(Tmean) + scale(Loss):Type + 
          scale(CCR):scale(Cover),data=ShiftSite)
lm3<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) +   
          Type + scale(Loss):scale(Tmean) + scale(Loss):Type + 
          scale(CCR):scale(Cover),data=ShiftSite)
lm4<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) +
          Type + scale(Loss):scale(Tmean) + scale(Loss):Type + 
          scale(CCR):scale(Loss),data=ShiftSite)
lm5<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) +
          Type + scale(Loss):scale(Tmean) + scale(Loss):Type
          ,data=ShiftSite)
lm6<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) +
          Type + scale(Loss):scale(Tmean) + scale(Loss):Type + scale(Loss):scale(Cover) 
        ,data=ShiftSite)
lm7<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) +
          Type + scale(Loss):scale(Tmean) + scale(Loss):scale(Cover) 
        ,data=ShiftSite)
lm8<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) +
         scale(Loss):scale(Tmean) + scale(Loss):scale(Cover) 
        ,data=ShiftSite)
lm9<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) + Ref +
          scale(Loss):scale(Tmean) + scale(Loss):scale(Cover) 
        ,data=ShiftSite)
lm10<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) + Ref +
          scale(Loss):scale(Tmean)  
        ,data=ShiftSite)
lm11<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) +
           scale(Loss):scale(Tmean)  
         ,data=ShiftSite)
lm12<-lm(rate ~ scale(Loss)  + scale(Tmean) +
           scale(Loss):scale(Tmean) ,data=ShiftSite)
lm13<-lm(rate ~ scale(Loss) + scale(Cover) + scale(Tmean) 
         ,data=ShiftSite)
lm14<-lm(rate ~ scale(Loss) + scale(Tmean) 
         ,data=ShiftSite)
lm15<-lm(rate ~  scale(Tmean) ,data=ShiftSite)
model.sel(lm1,lm2,lm3,lm4,lm5,lm6,lm7,lm8,lm9,lm10,lm11,lm12,lm13,lm14,lm15,rank="AICc")
model.sel(lm8,lm11,lm5,rank="AICc")
summary(lm8)
summary(lm11)
summary(lm5)
# model validity
plot(lm11,col="blue")
#model 11 on natural scale
lm<-lm(rate~Loss+Cover+Tmean+Loss*Tmean,data=ShiftSite)
summary(lm)
#model 11 with sites weighted by sample size (n)
lm<-lm(rate~scale(Loss)+scale(Cover)+scale(Tmean)+scale(Loss)*scale(Tmean),data=ShiftSite, weights=n)
summary(lm)

############Disaggregated analysis (n = 2798)
Shift2798 <- read_csv("~/Documents/Rworkspace/Nat Comm/Shift_species_2798.csv", 
                      na = "NA")
ShiftEle <- Shift2798[, c( "Site", "Type", "Ref.point", "Shift.rate","Tmean", "Cover", "CCR", "Loss", "Gain","Sdist")]
ShiftEle <- na.pass(ShiftEle)
View(ShiftEle)
hist(ShiftEle$Shift.rate)

#correlation matrix
CormEle<- rcorr(as.matrix(ShiftEle[,4:10]))
CormEle
#VIF calculation (use 2 as cutoff threshold)
fullEle<-lm(Shift.rate~ scale(CCR)+scale(Loss)+scale(Gain)+scale(Cover)+scale(Tmean)+scale(Sdist)+Ref.point+Type,data=ShiftEle)
vif(fullEle)
#recalculate VIF after taking out scale(Gain)
fullEle<-lm(Shift.rate~ scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)+scale(Sdist)+Ref.point+Type,data=ShiftEle)
vif(fullEle)

# Determining the best random structure based on the "Beyond Optimal Model" (BOM) (see Zuur et al. 2009: Mixed Effects Models and Extensions in Ecology with R)
BOM0 <- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
             +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
             +(1|Site), data=ShiftEle, REML=TRUE)
#
BOM1<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Cover)|Site), data=ShiftEle, REML=TRUE)
#
BOM2<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Loss)|Site), data=ShiftEle, REML=TRUE)
#
BOM3<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)|Site), data=ShiftEle, REML=TRUE)
#
BOM4<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)+scale(Loss)|Site), data=ShiftEle, REML=TRUE)
#
BOM5<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)+scale(Cover)|Site), data=ShiftEle, REML=TRUE)
#
BOM6<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Cover)+scale(Loss)|Site), data=ShiftEle, REML=TRUE)
LM0 <- lm(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
          +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean), data=ShiftEle)
# Looking at the AICc values and select the best BOM (lowest AIC value): for model comparison it is best to fit models with REML (cf. REML=TRUE)
model.sel(BOM0,BOM1,BOM2, BOM3, BOM4,BOM5,BOM6,rank="AIC")
anova(BOM5,BOM1,BOM4,BOM6)

#BOM5: random slope T+Cover
#Selecting the "Optimal Model" using the same approach (cf. AIC values based on ML fit)
TaC0 <- update(BOM5, REML=FALSE)
options(na.action = "na.fail")
ddTaC<-dredge(TaC0)
write.csv(ddTaC,file="ddTaC.csv")
TaC0 <- get.models(ddTaC, 1)[[1]]
# Updating the top OM by using REML instead of ML
TaC0 <- update(TaC0, REML=TRUE)
# Summary of the fixed effects
summary(TaC0)
# Coefficients of the random effects (here intercepts and slopes are changing depending on the reference ID and the interaction between Cover.Perc100 and Gain.Pro100)
coef(TaC0)
# R square values of the fixed effect term (R square marginal) and the fixed+random effect terms (R square conditional)
r.squaredGLMM(TaC0)
# Computing confidence intervals for the coefficients of the fixed term
TaC0CI<-confint(TaC0, method="boot")
TaC0CI
# Select models with delta AICc < 2
subdTaC<-subset(ddTaC,delta<2)
importance(subdTaC)
write.csv(subdTaC,file="subdTaC.csv")
#model validity
plot(TaC0,xlab="Fitted values",ylab="Residuals")
####13model summary
TaC02<- get.models(ddTaC, 2)[[1]]
TaC02 <- update(TaC02, REML=TRUE)
TaC03<- get.models(ddTaC,3)[[1]]
TaC03 <- update(TaC03, REML=TRUE)
TaC04<- get.models(ddTaC,4)[[1]]
TaC04 <- update(TaC04, REML=TRUE)
TaC05<- get.models(ddTaC,5)[[1]]
TaC05 <- update(TaC05, REML=TRUE)
TaC06<- get.models(ddTaC,6)[[1]]
TaC06 <- update(TaC06, REML=TRUE)
TaC07<- get.models(ddTaC,7)[[1]]
TaC07 <- update(TaC07, REML=TRUE)
TaC08<- get.models(ddTaC,8)[[1]]
TaC08 <- update(TaC08, REML=TRUE)
TaC09<- get.models(ddTaC,9)[[1]]
TaC09 <- update(TaC09, REML=TRUE)
TaC10<- get.models(ddTaC,10)[[1]]
TaC10 <- update(TaC10, REML=TRUE)
TaC11<- get.models(ddTaC,11)[[1]]
TaC11 <- update(TaC11, REML=TRUE)
TaC12<- get.models(ddTaC,12)[[1]]
TaC12 <- update(TaC12, REML=TRUE)
TaC13<- get.models(ddTaC,13)[[1]]
TaC13 <- update(TaC13, REML=TRUE)

r.squaredGLMM(TaC0)
r.squaredGLMM(TaC02)
r.squaredGLMM(TaC03)
r.squaredGLMM(TaC04)
r.squaredGLMM(TaC05)
r.squaredGLMM(TaC06)
r.squaredGLMM(TaC07)
r.squaredGLMM(TaC08)
r.squaredGLMM(TaC09)
r.squaredGLMM(TaC10)
r.squaredGLMM(TaC11)
r.squaredGLMM(TaC12)
r.squaredGLMM(TaC13)
avgTaC<-model.avg(TaC0,TaC02,TaC03,TaC04,TaC05,TaC06,TaC07,TaC08,
                  TaC09,TaC10,TaC11,TaC12,TaC13)
CITaC<-confint(avgTaC,method="boot")
write.csv(CITaC,file="CIdTaC.csv")

###############################################################################
######Sensititvity analysis restricted to forest ecosystem (Cover>25%)
#Site level (n = 29)
ShiftSiteF<-subset(ShiftSite,Cover>25)
View(ShiftSiteF)
# Looking at the distribution of the response variable
hist(ShiftSiteF$rate)
t.test(ShiftSiteF$rate)
shapiro.test(ShiftSiteF$rate)

#scatter plot matrix
pairs(ShiftSiteF[,4:9])
#correlation matrix
CormSite<- rcorr(as.matrix(ShiftSiteF[,4:9]))
CormSite
fullSite<-lm(rate~scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)+Type+Ref
             +scale(Gain),data=ShiftSiteF)
#VIF calculation (use 2 as cutoff threshold)
vif(fullSite)
#drop Gain
fullSiteF<-lm(rate~scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)+Type+Ref
              ,data=ShiftSiteF)
#VIF calculation (use 2 as cutoff threshold)
vif(fullSiteF)
#Stepwise model selection
summary(fullSiteF)
step<-stepAIC(fullSiteF,~.^2,direction = "both")

#mannually remove redundant interactions
lmF1<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + Ref + scale(Loss):scale(Tmean) + scale(CCR):Type + 
           scale(Loss):scale(Cover) + scale(Loss):Type + scale(Loss):Ref + 
           scale(Tmean):Ref,data=ShiftSiteF)
lmF2<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + Ref + scale(Loss):scale(Tmean) + scale(CCR):Type + 
           scale(Loss):scale(Cover) + scale(Loss):Type + scale(Loss):Ref
         ,data=ShiftSiteF)
lmF3<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + Ref + scale(Loss):scale(Tmean) + scale(CCR):Type + 
           scale(Loss):scale(Cover) + scale(Loss):Type 
         ,data=ShiftSiteF)
lmF4<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + scale(Loss):scale(Tmean) + scale(CCR):Type + 
           scale(Loss):scale(Cover) + scale(Loss):Type 
         ,data=ShiftSiteF)
lmF5<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + scale(Loss):scale(Tmean) + scale(CCR):Type + 
           scale(Loss):Type ,data=ShiftSiteF)
lmF6<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + scale(Loss):scale(Tmean) + scale(CCR):Type 
         ,data=ShiftSiteF)
lmF7<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           Type + scale(Loss):scale(Tmean)  
         ,data=ShiftSiteF)
lmF8<-lm(rate ~ scale(CCR) + scale(Loss) + scale(Cover) + scale(Tmean) + 
           scale(Loss):scale(Tmean),data=ShiftSiteF)
lmF9<-lm(rate ~  scale(Loss) + scale(Cover) + scale(Tmean) + 
           scale(Loss):scale(Tmean),data=ShiftSiteF)
lmF10<-lm(rate ~ scale(Loss) + scale(Tmean) + 
            scale(Loss):scale(Tmean),data=ShiftSiteF)
lmF11<-lm(rate ~  scale(Tmean),data=ShiftSiteF)
model.sel(lmF1,lmF2,lmF3,lmF4,lmF5,lmF6,lmF7,lmF8,lmF9,lmF10,lmF11,rank="AICc")
model.sel(lmF9,lmF10,lmF8,rank="AICc")
summary(lmF9)
summary(lmF10)
summary(lmF8)
#model validity
plot(lmF9)

############Disaggregated analysis (n = 2419)
ShiftEleF <- subset(ShiftEle,Cover>25) #select data with forest cover greater than 25%
ShiftEleF<-ShiftEleF %>%
  group_by(Site) %>%
  filter(n() > 4) #select sites with no less than 5 species-level data points
View(ShiftEleF)
hist(ShiftEleF$Shift.rate)

#correlation matrix
CormEleF<- rcorr(as.matrix(ShiftEleF[,4:10]))
CormEleF
#VIF calculation (use 2 as cutoff threshold)
fullEleF<-lm(Shift.rate~ scale(CCR)+scale(Loss)+scale(Gain)+scale(Cover)+scale(Tmean)+scale(Sdist)+Ref.point+Type,data=ShiftEleF)
vif(fullEleF)
#recalculate VIF after taking out scale(Gain)
fullEleF<-lm(Shift.rate~ scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)+scale(Sdist)+Ref.point+Type,data=ShiftEleF)
vif(fullEleF)

# Determining the best random structure based on the "Beyond Optimal Model" (BOF) (see Zuur et al. 2009: Mixed Effects Models and Extensions in Ecology with R)
BOF0 <- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
             +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
             +(1|Site), data=ShiftEleF, REML=TRUE)
#
BOF1<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Cover)|Site), data=ShiftEleF, REML=TRUE)
#
BOF2<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Loss)|Site), data=ShiftEleF, REML=TRUE)
#
BOF3<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)|Site), data=ShiftEleF, REML=TRUE)
#
BOF4<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)+scale(Loss)|Site), data=ShiftEleF, REML=TRUE)
#
BOF5<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Tmean)+scale(Cover)|Site), data=ShiftEleF, REML=TRUE)
#
BOF6<- lmer(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
            +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean)
            +(1+scale(Cover)+scale(Loss)|Site), data=ShiftEleF, REML=TRUE)
#
LF0 <- lm(Shift.rate~1+Ref.point+Type+scale(Sdist)+scale(CCR)+scale(Loss)+scale(Cover)+scale(Tmean)
          +scale(Tmean):scale(Loss)+scale(Cover):scale(CCR)+scale(Loss):scale(CCR)+scale(Loss):scale(Cover)+scale(Cover):scale(Tmean)+scale(CCR):scale(Tmean), data=ShiftEleF)
# Looking at the AICc values and select the best BOF (lowest AIC value): for model comparison it is best to fit models with REML (cf. REML=TRUE)
model.sel(BOF0,BOF1,BOF2, BOF3, BOF4,BOF5,BOF6,LF0,rank="AICc")
#BOF5: random slope T+Cover
#Selecting the "Optimal Model" using the same approach (cf. AIC values based on ML fit)
TaCF0 <- update(BOF5, REML=FALSE)
options(na.action = "na.fail")
ddTaCF<-dredge(TaCF0)
write.csv(ddTaCF,file="ddTaCF.csv")
TaCF0 <- get.models(ddTaCF, 1)[[1]]
# Updating the top OM by using REML instead of ML
TaCF0 <- update(TaCF0, REML=TRUE)
# Summary of the fixed effects
summary(TaCF0)
# Coefficients of the random effects (here intercepts and slopes are changing depending on the reference ID and the interaction between Cover.Perc100 and Gain.Pro100)
coef(TaCF0)
# R square values of the fixed effect term (R square marginal) and the fixed+random effect terms (R square conditional)
r.squaredGLMM(TaCF0)
# Computing confidence intervals for the coefficients of the fixed term
TaCF0CI<-confint(TaCF0, method="boot")
TaCF0CI
# Select models with delta AICc < 2
subdTaCF<-subset(ddTaCF,delta<2)
importance(subdTaCF)
write.csv(subdTaCF,file="subdTaCF.csv")
#model validity
plot(TaCF0)
####7model summary
TaCF02<- get.models(ddTaCF, 2)[[1]]
TaCF02 <- update(TaCF02, REML=TRUE)
TaCF03<- get.models(ddTaCF,3)[[1]]
TaCF03 <- update(TaCF03, REML=TRUE)
TaCF04<- get.models(ddTaCF,4)[[1]]
TaCF04 <- update(TaCF04, REML=TRUE)
TaCF05<- get.models(ddTaCF,5)[[1]]
TaCF05 <- update(TaCF05, REML=TRUE)
TaCF06<- get.models(ddTaCF,6)[[1]]
TaCF06 <- update(TaCF06, REML=TRUE)
TaCF07<- get.models(ddTaCF,7)[[1]]
TaCF07 <- update(TaCF07, REML=TRUE)

r.squaredGLMM(TaCF02)
avgTaCF<-model.avg(TaCF0,TaCF02,TaCF03,TaCF04,TaCF05,TaCF06,TaCF07)
CITaCF<-confint(avgTaCF,method="boot")
write.csv(CITaCF,file="CIdTaCF.csv")
