#set working directory
setwd("~/Downloads/MixedModels/Chapter06")
#read dataset
tumdata <- read.table("TUMspher.txt", header=TRUE,sep=",")
attach(tumdata)
#lntumvol to tumvol
tumvol = exp(tumdata[,4])
tumdata = cbind(tumdata,tumvol)
#check assumption for lda
#dataframe
tumdata_sub = as.data.frame(cbind(tumdata[,3],tumdata[,5],tumdata[,2]))
names(tumdata_sub) = c("day","tumvol","id")
tumdata_sub$id = as.factor(tumdata_sub$id)
#plot data
plot(day, tumvol)

#remove outliers above 1200 in volume
yout=tumvol>1200 # some logical rule for identifying an outlier
day2 = day[!yout]
tumvol2 = tumvol[!yout]
id2 = id[!yout]
outlier_rm = cbind(day2,tumvol2)
mydata = as.data.frame(outlier_rm[1:55,])
#plot with outliers removed
plot(mydata$day2,mydata$tumvol2)

# Model accuracy
#growthmodels in r
#install.packages('easynls')
library(easynls)
#fit data to the exponential model
model1 = nlsfit(mydata, model = 6, start = c(a=200, b =.1))
model1
## $Model
## [1] "y~a*exp(b*x)"
##
## $Parameters
## tumvol2
## coefficient a 120.06391743
## coefficient b 0.00810878
## p-value t.test for a 0.00000000
## p-value t.test for b 0.00004925
## r-squared 0.31990000
## adjusted r-squared 0.30710000
## AIC 595.77502784
## BIC 601.79702739
#plot data
nlsplot(mydata, model = 6, start = c(a = 200, b = .1),
xlab = "Days" , ylab = "Tumor Volume", position = 1)

#fit data to the gompertz model
model2 = nlsfit(mydata, model = 10, start = c(a = 200, b = 2, c = .1))
model2
## $Model
## [1] "y~a*exp(-b*exp(-c*x)"
##
## $Parameters
## tumvol2
## coefficient a 203.53408187
## coefficient b 5.25327533
## coefficient c 0.15904259
## p-value t.test for a 0.00000000
## p-value t.test for b 0.00066332
## p-value t.test for c 0.00000000
## r-squared 0.88170000
## adjusted r-squared 0.87720000
## AIC 501.56946554
## BIC 509.59879828
#plot data
nlsplot(mydata, model = 10, start = c(a = 200, b = 2, c = .1),
xlab = "Days" , ylab = "Tumor Volume", position = 1)
