



# RF Woody #
#Calculate the variogram
Woody.vg<-variogram(Woody)
plot(Woody.vg)
#Calculate the periodogram
Woody.pg <- periodogram(Woody)
plot(Woody.pg, diagnostic = TRUE)
#Use the sliders provided by variogram.fit to specify starting values.
variogram.fit(Woody.vg)
#save the parameters in the manipulator window to GUESS
#Automatically fit the range-resident models via maximum likelihood
Woody.fit.mods<-ctmm.select(Woody,CTMM=GUESS, verbose=TRUE)
summary(Woody.fit.mods)
# OUF Anisotropic is top model for Woody
Woody.OUF<-Woody.fit.mods[[1]]
summary(Woody.OUF)
plot(Woody.vg, CTMM = Woody.OUF)
# Note that AF Randy OUF calculated using similar code to Woody
############################################################
# Function from Appendix
############################################################
period.test=function(data,model,period=NULL,n=100,deltat=60,...) {
# initiate output vector
RES=NULL
# compute periodogram of the true data
per=periodogram(data,...)
# set period of interest at the periodogram peak if not provided by user
if(is.null(period)) period=1/per$f[which.max(per$LSP)]
else period=period[1]
# MC loop
for (k in 1:n) {
# simulate dataset using model provided by user and time grid from the true data
s=simulate(object=model,t=data$t-data$t[1])
# compute periodogram of the simulated dataset
s.per=periodogram(s,...)
# compute whether simulated value is higher than true value
RES=c(RES, max(s.per$LSP[abs(1/s.per$f - period)<=deltat])<
max(per$LSP[abs(1/per$f - period)<=deltat]) )
}
return(list(period=period,P.value=1-sum(RES)/sum(!is.na(RES))))
}
####################################################################
#returns a list with two items: tested period in seconds and P-value of that period
period.test(Woody, Woody.OUF, n = 1000) # period (days) = 14745600/(3600*24) = 170, p = 0
period.test(Randy, Randy.OUF, n = 1000) # period(days) = 14745600/(3600*24) = 170, p = 0