source('/home/pw/wessanet/cretab') RC.capture <- function (expression, collapse = NULL) { resultConn <- textConnection('RC.resultText', open = 'w', local=TRUE) sink(resultConn) on.exit(function() { sink() close(resultConn) }) expression on.exit(NULL) sink() close(resultConn) return(paste(c(RC.resultText, ''), collapse = collapse, sep = '')) } RC.texteval <- function (sourceText, collapse = NULL, echo = TRUE) { sourceConn <- textConnection(sourceText, open = 'r') on.exit(close(sourceConn)) result <- RC.capture(source(file = sourceConn, local = FALSE, echo = echo, print.eval = TRUE), collapse = collapse) on.exit(NULL) close(sourceConn) res <- '' for(i in 1:length(result)) { if (result[i]!='') res <- paste(res,result[i],' ',sep='') } return(res) } myrfcuid = '' x <- c(0,0,0,0,0,0,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10) par5 = 'Yes' par4 = '0.5' par3 = '3' par2 = '-3' par1 = 'Full Box-Cox transform' par5 <- 'Yes' par4 <- '0.5' par3 <- '3' par2 <- '-3' par1 <- 'Full Box-Cox transform' #'GNU S' R Code compiled by R2WASP v. 1.2.327 (Thu, 22 Sep 2016 15:29:53 +0200) #Author: root #To cite this work: Wessa P., (2016), Box-Cox Normality Plot (v1.1.12) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_boxcoxnorm.wasp/ #Source of accompanying publication: Office for Research, Development, and Education # library(car) par2 <- abs(as.numeric(par2)*100) par3 <- as.numeric(par3)*100 if(par4=='') par4 <- 0 par4 <- as.numeric(par4) numlam <- par2 + par3 + 1 x <- x + par4 n <- length(x) c <- array(NA,dim=c(numlam)) l <- array(NA,dim=c(numlam)) mx <- -1 mxli <- -999 for (i in 1:numlam) { l[i] <- (i-par2-1)/100 if (l[i] != 0) { if (par1 == 'Full Box-Cox transform') x1 <- (x^l[i] - 1) / l[i] if (par1 == 'Simple Box-Cox transform') x1 <- x^l[i] } else { x1 <- log(x) } c[i] <- cor(qnorm(ppoints(x), mean=0, sd=1),sort(x1)) if (mx < c[i]) { mx <- c[i] mxli <- l[i] x1.best <- x1 } } print(c) print(mx) print(mxli) print(x1.best) if (mxli != 0) { if (par1 == 'Full Box-Cox transform') x1 <- (x^mxli - 1) / mxli if (par1 == 'Simple Box-Cox transform') x1 <- x^mxli } else { x1 <- log(x) } mypT <- powerTransform(x) summary(mypT) postscript(file="/home/pw/wessanet/rcomp/tmp/10k5o1589316734.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(l,c,main='Box-Cox Normality Plot', xlab='Lambda',ylab='correlation') mtext(paste('Optimal Lambda =',mxli)) grid() dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/25dsf1589316734.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) hist(x,main='Histogram of Original Data',xlab='X',ylab='frequency') grid() dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/3g6ha1589316734.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) hist(x1,main='Histogram of Transformed Data', xlab='X',ylab='frequency') grid() dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/4ra9i1589316734.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) qqPlot(x) grid() mtext('Original Data') dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/5r7n11589316734.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) qqPlot(x1) grid() mtext('Transformed Data') dev.off() a<-table.start() a<-table.row.start(a) a<-table.element(a,'Box-Cox Normality Plot',2,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'# observations x',header=TRUE) a<-table.element(a,n) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'maximum correlation',header=TRUE) a<-table.element(a,mx) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'optimal lambda',header=TRUE) a<-table.element(a,mxli) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'transformation formula',header=TRUE) if (par1 == 'Full Box-Cox transform') { a<-table.element(a,'for all lambda <> 0 : T(Y) = (Y^lambda - 1) / lambda') } else { a<-table.element(a,'for all lambda <> 0 : T(Y) = Y^lambda') } a<-table.row.end(a) if(mx<0) { a<-table.row.start(a) a<-table.element(a,'Warning: maximum correlation is negative! The Box-Cox transformation must not be used.',2) a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/home/pw/wessanet/rcomp/tmp/6a7w91589316734.tab") if(par5=='Yes') { a<-table.start() a<-table.row.start(a) a<-table.element(a,'Obs.',header=T) a<-table.element(a,'Original',header=T) a<-table.element(a,'Transformed',header=T) a<-table.row.end(a) for (i in 1:n) { a<-table.row.start(a) a<-table.element(a,i) a<-table.element(a,x[i]) a<-table.element(a,x1.best[i]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/home/pw/wessanet/rcomp/tmp/7vvit1589316734.tab") } a<-table.start() a<-table.row.start(a) a<-table.element(a,'Maximum Likelihood Estimation of Lambda',1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,paste('
',RC.texteval('summary(mypT)'),'',sep='')) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/home/pw/wessanet/rcomp/tmp/8kpi51589316734.tab") try(system("convert /home/pw/wessanet/rcomp/tmp/10k5o1589316734.ps /home/pw/wessanet/rcomp/tmp/10k5o1589316734.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/25dsf1589316734.ps /home/pw/wessanet/rcomp/tmp/25dsf1589316734.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/3g6ha1589316734.ps /home/pw/wessanet/rcomp/tmp/3g6ha1589316734.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/4ra9i1589316734.ps /home/pw/wessanet/rcomp/tmp/4ra9i1589316734.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/5r7n11589316734.ps /home/pw/wessanet/rcomp/tmp/5r7n11589316734.png",intern=TRUE))