################################ #Calculate AIC from logL or RSS. #Example from Burnham and Anderson 2002, page 102, "cement hardening data" ################################ #Name models model=c("m12", "m124", "m123", "m14", "m134", "m234", "m1234", "m34", "m23", "m4", "m2", "m24", "m1", "m13", "m3") #Enter sample size n=13 #Enter logL logL=c(-9.704, -8.478, -8.504, -11.370, -8.863, -11.290, -8.469, -16.927, -22.519, -27.426, -27.586, -27.315, -29.760, -29.558, -32.533) #Or calculate logL from least squares theory "regression analysis" #RSS=c( , , , , , , , , , , ) #Enter RSS values here. #sig2=RSS/n #sig2=c(4.45, 3.69, 3.70, 5.75, etc.) #Or if you have sigma2, you can enter it here. #logL=(-n/2)*log(sig2) logL #Enter number of parameters k=c(4, 5, 5, 4, 5, 5, 6, 4, 4, 3, 3, 4, 3, 4, 3) k #Calculate AICc aicc=-2*logL+2*k+(2*k*(k+1))/(n-k-1) #aic=-2*logL+2*k aicc #Calculate delta delta=NULL for (i in 1:length(aicc)){ delta[[i]]<-aicc[[i]]-min(aicc) i+1 } aicc #Calculate w w=NULL for (i in 1:length(delta)){ w[[i]]<-((exp(-0.5*delta[[i]]))/sum(exp(-0.5*delta))) i+1 } w AIC.table.unsorted=data.frame(model, logL, k, n, aicc, delta, w) AIC.table.unsorted #Sort the AIC table o <- order(aicc) AIC.table=data.frame(model[o], logL[o], k[o], aicc[o], delta[o], w[o]) colnames(AIC.table)=c("Model", "logL", "k", "AICc", "dAICc", "w") AIC.table #Write a .csv table, which can be opened in Excel and then copied to Word/Powerpoint. write.csv(AIC.table, file = "AIC.table.csv", row.names = FALSE) #The .csv file will be written to the following folder: getwd()