# Ref:voltacokri.R ## Funcao que volta os valores preditos através da cockrigagem, ## em R^2, para o simplex, via simulacao volta.cokri <- function(mat.cokri, num.simu, int.conf=0.95){ nlinhas <- dim(mat.cokri[[1]])[1] compos1 <- data.frame(matrix(nrow=nlinhas/2,ncol=3)) compos <- data.frame(matrix(nrow=nlinhas/2,ncol=3)) for(i in 1:num.simu){ g <- mvrnorm(n=1, mat.cokri[[1]],mat.cokri[[2]]) seq1 <- seq(1,nlinhas,by=2) seq2 <- seq(2,nlinhas,by=2) y1 <- g[seq1] y2 <- g[seq2] gerado <- data.frame(y1,y2) compos <- transf.alr(gerado) compos1 <- cbind(compos,compos1) } compos2 <- as.matrix(compos1) dim.vetor <- num.simu*3 sy1 <- seq(1,dim.vetor,by=3) #sy1 <- seq(1,30,by=3) sy2 <- seq(2,dim.vetor,by=3) #sy2 <- seq(2,30,by=3) sy3 <- seq(3,dim.vetor,by=3) #sy3 <- seq(3,30,by=3) amostra1 <- as.matrix(compos2[,sy1],ncol=num.simu) amostra2 <- as.matrix(compos2[,sy2],ncol=num.simu) amostra3 <- as.matrix(compos2[,sy3],ncol=num.simu) med1 <- apply(amostra1,1,mean) med2 <- apply(amostra2,1,mean) med3 <- apply(amostra3,1,mean) q1 <- t(apply(amostra1,1,quantile,prob=c(1-int.conf,int.conf))) q2 <- t(apply(amostra2,1,quantile,prob=c(1-int.conf,int.conf))) q3 <- t(apply(amostra3,1,quantile,prob=c(1-int.conf,int.conf))) quantis <- cbind(q1,q2,q3) resultado <- list() resultado$preditos <- data.frame(med1,med2,med3) names(resultado$preditos) <- c("Areia","Silte","Argila") resultado$intervalo <- data.frame(quantis) names(resultado$intervalo) <- c("LI Areia", "LS Areia", "LI Silte", "LS Silte", "LI Argila", "LS Argila") return(resultado) }