# code adapted from MW but preparing for rjags instead of BUGS # Options: numpc (set in calling file) # numpc <- 10 or numpc <- 4 # Read file with data filenames load("data_allproxy1209.R") load("data_instrument.R") setwd("bayesmodel") # Parameters: startdate <- 1000 numlags <- 2 numsim <- 100 # Get proxies going back to start date: sel <- allproxy1209info[,"StartYear"] <= startdate tmp <- colnames(allproxy1209)[-1][sel] proxy <- allproxy1209[,tmp] sel <- rowSums(is.na(proxy))==0 proxy <- proxy[sel,] years <- allproxy1209[sel,1] rownames(proxy) <- years sel <- instrument[,"Year"] %in% years temp <- instrument[sel,-1] rownames(temp) <- instrument[sel,"Year"] #adjust proxy selection to remove unreplicated tree ring data screened out by Mann et al 2008 proxy <- proxy[,-c(87:88)] # to match method in earlier figures proxy <- proxy[,-c(1,2,3,4,7,10,16,17,18,19,23,25,26,28,29,30,40,41,42,47,48,49,50,56,58,61,63,64,65,67,72,73,74,75,78,91)] #remove tiljander proxy <- proxy[,-c(51,52)] # Run proxy pca: mypc <- prcomp(proxy, center=TRUE, scale=TRUE) # Prepare data for regressions: in_idxI <- rownames(temp) in_idxD <- as.character( sort(as.numeric(in_idxI), decreasing=TRUE) ) out_idxI <- setdiff(rownames(mypc$x), in_idxI) out_idxD <- as.character( sort(as.numeric(out_idxI), decreasing=TRUE) ) y_in <- temp[in_idxD,1] tmp <- matrix(NA, length(y_in), numlags) rownames(tmp) <- in_idxD colnames(tmp) <- paste("Lag",1:numlags,"_y",sep="") for(i in 1:numlags){ tmp[(1+i):length(y_in),i] <- y_in[1:(length(y_in)-i)] } x_in <- data.frame(tmp, mypc$x[in_idxD,1:numpc]) sel <- is.na(x_in) tmp <- max( as.numeric(rownames(x_in))[rowSums(sel)>0] ) rownames(instrument) <- as.character(instrument[,1]) x_in[1,1] <- instrument[as.character(tmp+1),2] x_in[1,2] <- instrument[as.character(tmp+2),2] x_in[2,2] <- instrument[as.character(tmp+1),2] # Fit linear regression: mymodel <- lm(y_in~., data=x_in) x_out0 <- data.frame(matrix(NA, length(out_idxD), numlags), mypc$x[out_idxD,1:numpc]) colnames(x_out0) <- colnames(x_in) x_out <- data.frame(rbind(x_in,x_out0)) # Prep for rjags: mydata <- cbind(y_in, x_in) colnames(mydata) <- c("y[]", "Lagy[,1]", "Lagy[,2]", paste("PC[,", 1:numpc, "]", sep="")) write.table(mydata, paste("rjags_data","_",numpc,".txt", sep=""), sep="\t", row.names=FALSE, quote=F) setwd("../")