n <- length(x) c <- array(NA,dim=c(401)) l <- array(NA,dim=c(401)) mx <- 0 mxli <- -999 for (i in 1:401) { l[i] <- (i-201)/100 if (l[i] != 0) { x1 <- (x^l[i] - 1) / 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] } } c mx mxli if (mxli != 0) { x1 <- (x^mxli - 1) / 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) grid() mtext('Original Data') dev.off() bitmap(file='test5.png') qqnorm(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.end(a) table.save(a,file='mytable.tab')
|