Send output to: Browser Blue - Charts White Browser Black/White CSV Data: 202485.00 231302.13 227730.77 40384.62 1456659.16 33035.47 53823.15 58371.02 64177.03 22558.09 Type of transformation Full Box-Cox transformFull Box-Cox transformSimple Box-Cox transform Minimum lambda -2-2-8-7-6-5-4-3-2-1 Maximum lambda 2212345678 Constant term to be added before analysis is performed (?) Display table with original and transformed data? YesNoYes Chart options R Code par5 <- 'No' par4 <- '0' par3 <- '2' par2 <- '-2' par1 <- 'Full Box-Cox transform' 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) bitmap(file='test1.png') plot(l,c,main='Box-Cox Normality Plot', xlab='Lambda',ylab='correlation') mtext(paste('Optimal Lambda =',mxli)) grid() dev.off() bitmap(file='test2.png') hist(x,main='Histogram of Original Data',xlab='X',ylab='frequency') grid() dev.off() bitmap(file='test3.png') hist(x1,main='Histogram of Transformed Data', xlab='X',ylab='frequency') grid() dev.off() bitmap(file='test4.png') qqPlot(x) grid() mtext('Original Data') dev.off() bitmap(file='test5.png') qqPlot(x1) grid() mtext('Transformed Data') dev.off() load(file='createtable') 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='mytable.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='mytable1.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='mytable3.tab')

 Summary of computational transaction Raw Input view raw input (R code) Raw Output view raw output of R engine Computing time 1 seconds R Server Big Analytics Cloud Computing Center

 Box-Cox Normality Plot # observations x 10 maximum correlation 0.981668841261037 optimal lambda -0.5 transformation formula for all lambda <> 0 : T(Y) = (Y^lambda - 1) / lambda

 Maximum Likelihood Estimation of Lambda ```> summary(mypT) bcPower Transformation to Normality Est Power Rounded Pwr Wald Lwr Bnd Wald Upr Bnd x -0.382 0 -0.9516 0.1876 Likelihood ratio test that transformation parameter is equal to 0 (log transformation) LRT df pval LR test, lambda = (0) 1.935387 1 0.16417 Likelihood ratio test that no transformation is needed LRT df pval LR test, lambda = (1) 26.94696 1 2.0912e-07 ```

Click here to blog (archive) this computation