Send output to:
Browser Blue - Charts White
Browser Black/White
CSV
Data:
4450 4400 4650 4800 4800 4750 5200 5050 4900 5300 5500 6050 5200 5350 5450 5900 5800 5950 6750 6500 6500 7100 7100 8400 6900 7400 7650 7850 7750 8000 8950 9100 9100 10050 10450 11900 10000 11250 11250 11650 11550 11800 13050 12350 12200 13450 13450 14450 12500 13350 13600 13200 13450 13600 14450 14000 13600 14700 14450 15250 13750 14450 14300 14600 14700 14600
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
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('<pre>',RC.texteval('summary(mypT)'),'</pre>',sep='')) a<-table.row.end(a) a<-table.end(a) table.save(a,file='mytable3.tab')
Compute
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
Click here to blog (archive) this computation