Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data:
655362 873127 1107897 1555964 1671159 1493308 2957796 2638691 1305669 1280496 921900 867888 652586 913831 1108544 1555827 1699283 1509458 3268975 2425016 1312703 1365498 934453 775019 651142 843192 1146766 1652601 1465906 1652734 2922334 2702805 1458956 1410363 1019279 936574 708917 885295 1099663 1576220 1487870 1488635 2882530 2677026 1404398 1344370 936865 872705 628151 953712 1160384 1400618 1661511 1495347 2918786 2775677 1407026 1370199 964526 850851 683118 847224 1073256 1514326 1503734 1507712 2865698 2788128 1391596 1366378 946295 859626
Type of transformation
Full Box-Cox transform
Full Box-Cox transform
Simple Box-Cox transform
Minimum lambda
-2
-2
-8
-7
-6
-5
-4
-3
-2
-1
Maximum lambda
2
2
1
2
3
4
5
6
7
8
Constant term to be added before analysis is performed
(?)
Display table with original and transformed data?
No
No
Yes
Chart options
R Code
par5 <- 'No' par4 <- '0' par3 <- '3' par2 <- '-3' par1 <- 'Full Box-Cox transform' 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),x1) if (mx < c[i]) { mx <- c[i] mxli <- l[i] x1.best <- x1 } } c mx mxli 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) } 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') qqnorm(x) qqline(x) grid() mtext('Original Data') dev.off() bitmap(file='test5.png') qqnorm(x1) qqline(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) 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') }
Compute
Summary of computational transaction
Raw Input
view raw input (R code)
Raw Output
view raw output of R engine
Computing time
0 seconds
R Server
Big Analytics Cloud Computing Center
Click here to blog (archive) this computation