knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE, strip.white = FALSE, cache = FALSE)
#load data milk2 <- read.csv(file = "Skibiel_clean_milk_focal_column.csv") milk3 <- read.csv(file = "Skibiel_clean_milk_focal_genera.csv")
par(mfrow = c(1,1)) source("./scripts_Lecture4/sx_reg_flowchart1_inf_predict_model.R") lm.null <- lm(fat.percent ~ 1, data = milk3)
# re-fit female mass model lm.mass <- lm(fat.percent ~ log(mass.female), data = milk3) #gestation duration lm.gestation <- lm(fat.percent ~ log(gest.month.NUM), data = milk3) #lactation duration lm.lac.duration <- lm(fat.percent ~ log(lacat.mo.NUM), data = milk3) #Litter mass lm.litter.mass <- lm(fat.percent ~ log(mass.litter), data = milk3)
anova(lm.mass, lm.null) anova(lm.gestation, lm.null) anova(lm.lac.duration, lm.null) anova(lm.litter.mass, lm.null)
library(bbmle) ICtab(lm.mass, lm.gestation, lm.lac.duration, lm.litter.mass)
AIC <- c(AIC(lm.lac.duration), AIC(lm.mass), AIC(lm.gestation), AIC(lm.litter.mass)) R2 <- c(summary(lm.lac.duration)$r.squared, summary(lm.mass)$r.squared, summary(lm.gestation)$r.squared, summary(lm.litter.mass)$r.squared) slopes <- c(coef(lm.lac.duration)[2], coef(lm.mass)[2], coef(lm.gestation)[2], coef(lm.litter.mass)[2]) mods <- c("Lactation duration", "Female mass", "Gestation duration", "Litter mass") AIC.vs.R2.vs.slope <- data.frame(AIC,R2,slopes, row.names = mods)
library(pander) pander(AIC.vs.R2.vs.slope)
# Model model according to AIC lm.lac.duration <- lm(fat.percent ~ log(lacat.mo.NUM), data = milk3) #Add additional predictor lm.lac.dur.fem.mass <- lm(fat.percent ~ log(lacat.mo.NUM) + log(mass.female), data = milk3)
summary(lm.lac.dur.fem.mass)
par(mfrow = c(2,2)) #Mass vs lactation duration plot(log(lacat.mo.NUM) ~ log(mass.female), data = milk3, ylab = "Log(lactation dur.", pch = 18, cex =2, main = "Mass vs lactation duration") cor.x <- round(with(milk3,cor(log(lacat.mo.NUM), log(mass.female))),3) cor. <-expression(paste(rho,"=0.75")) mtext(text = cor.) #Mass vs Gestation duration plot(log(gest.month.NUM) ~ log(mass.female), data = milk3, ylab = "Log(gestation dur.)", pch = 18, cex =2, main = "Mass vs Gestation duration") #maternal Mass vs Litter mass plot(log(mass.litter) ~ log(mass.female), data = milk3, ylab = "Log(Liter mass)", pch = 18, cex =2, main = "Maternal Mass vs LItter mass duration") #Lactation vs. gestation duration plot(log(gest.month.NUM) ~ log(lacat.mo.NUM), data = milk3, ylab = "Log(Gestation dur)", pch = 18, cex =2, main = "Lactation vs. gestation duration")
This will make the following code easier to do
milk3$mass.fem.log <- log(milk3$mass.female) milk3$lacat.mo.log <- log(milk3$lacat.mo.NUM) milk3$gest.month.log <- log(milk3$gest.month.NUM) milk3$mass.litter.log <- log(milk3$mass.litter)
par(mfrow = c(1,1)) pairs(milk3[,c("fat.percent", "mass.fem.log", "lacat.mo.log", "gest.month.log", "mass.litter.log")], lower.panel = NULL)
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor, ...) { usr <- par("usr"); on.exit(par(usr)) par(usr = c(0, 1, 0, 1)) r <- abs(cor(x, y)) txt <- format(c(r, 0.123456789), digits = digits)[1] txt <- paste0(prefix, txt) if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt) text(0.5, 0.5, txt#, #cex = cex.cor * r ) } pairs(milk3[,c("fat.percent", "mass.fem.log", "lacat.mo.log", "gest.month.log", "mass.litter.log")], lower.panel = panel.cor, col = 1, panel = panel.smooth)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.