Home » date » 2010 » Dec » 12 »

WS 10 Recursive Partitioning PS

*The author of this computation has been verified*
R Software Module: /rwasp_regression_trees1.wasp (opens new window with default values)
Title produced by software: Recursive Partitioning (Regression Trees)
Date of computation: Sun, 12 Dec 2010 13:44:39 +0000
 
Cite this page as follows:
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1.htm/, Retrieved Sun, 12 Dec 2010 14:43:00 +0100
 
BibTeX entries for LaTeX users:
@Manual{KEY,
    author = {{YOUR NAME}},
    publisher = {Office for Research Development and Education},
    title = {Statistical Computations at FreeStatistics.org, URL http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1.htm/},
    year = {2010},
}
@Manual{R,
    title = {R: A Language and Environment for Statistical Computing},
    author = {{R Development Core Team}},
    organization = {R Foundation for Statistical Computing},
    address = {Vienna, Austria},
    year = {2010},
    note = {{ISBN} 3-900051-07-0},
    url = {http://www.R-project.org},
}
 
Original text written by user:
 
IsPrivate?
No (this computation is public)
 
User-defined keywords:
 
Dataseries X:
» Textbox « » Textfile « » CSV «
1 41 25 15 9 3 1 38 25 15 9 4 1 37 19 14 9 4 1 42 18 10 8 4 1 40 23 18 15 3 1 43 25 14 9 4 1 40 23 11 11 4 1 45 30 17 6 5 1 45 32 21 10 4 1 44 25 7 11 4 1 42 26 18 16 4 1 32 25 13 11 5 1 32 25 13 11 5 1 41 35 18 7 4 1 38 20 12 10 4 1 38 21 9 9 4 1 24 23 11 15 3 1 46 17 11 6 5 1 42 27 16 12 4 1 46 25 12 10 4 1 43 18 14 14 5 1 38 22 13 9 4 1 39 23 17 14 4 1 40 25 13 14 3 1 37 19 13 9 2 1 41 20 12 8 4 1 46 26 12 10 4 1 26 16 12 9 3 1 37 22 9 9 3 1 39 25 17 9 4 1 44 29 18 11 5 1 38 22 12 10 2 1 38 32 12 8 0 1 38 23 9 14 4 1 33 18 13 10 3 1 43 26 11 14 4 1 41 14 13 15 2 1 49 20 6 8 4 1 45 25 11 10 5 1 31 21 18 13 3 1 30 21 18 13 3 1 38 23 15 10 4 1 39 24 11 11 4 1 40 21 14 10 4 1 36 17 12 16 2 1 49 29 8 6 5 1 41 25 11 11 4 1 18 16 10 12 2 1 42 25 17 14 3 1 41 25 16 9 5 1 43 21 13 11 4 1 46 23 15 8 3 1 41 25 16 8 5 1 39 25 7 11 4 1 42 24 16 16 4 1 35 21 13 12 5 1 36 22 15 14 3 1 48 14 12 8 4 1 41 20 12 10 4 1 47 21 24 14 3 1 41 22 15 10 3 1 31 19 8 5 5 1 etc...
 
Output produced by software:

Enter (or paste) a matrix (table) containing all data (time) series. Every column represents a different variable and must be delimited by a space or Tab. Every row represents a period in time (or category) and must be delimited by hard returns. The easiest way to enter data is to copy and paste a block of spreadsheet cells. Please, do not use commas or spaces to seperate groups of digits!


Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time5 seconds
R Server'Sir Ronald Aylmer Fisher' @ 193.190.124.24


Goodness of Fit
Correlation0.4502
R-squared0.2027
RMSE3.8248


Actuals, Predictions, and Residuals
#ActualsForecastsResiduals
12520.49090909090914.50909090909091
22522.59036144578312.40963855421687
31922.5903614457831-3.59036144578313
41822.5903614457831-4.59036144578313
52320.49090909090912.50909090909091
62522.59036144578312.40963855421687
72322.59036144578310.409638554216869
83022.59036144578317.40963855421687
932293
102522.59036144578312.40963855421687
112629-3
122522.59036144578312.40963855421687
132522.59036144578312.40963855421687
1435296
152022.5903614457831-2.59036144578313
162122.5903614457831-1.59036144578313
172320.49090909090912.50909090909091
181722.5903614457831-5.59036144578313
192722.59036144578314.40963855421687
202522.59036144578312.40963855421687
211822.5903614457831-4.59036144578313
222222.5903614457831-0.590361445783131
232322.59036144578310.409638554216869
242520.49090909090914.50909090909091
251920.4909090909091-1.49090909090909
262022.5903614457831-2.59036144578313
272622.59036144578313.40963855421687
281620.4909090909091-4.49090909090909
292220.49090909090911.50909090909091
302522.59036144578312.40963855421687
3129290
322220.49090909090911.50909090909091
333220.490909090909111.5090909090909
342322.59036144578310.409638554216869
351820.4909090909091-2.49090909090909
362622.59036144578313.40963855421687
371420.4909090909091-6.49090909090909
382022.5903614457831-2.59036144578313
392522.59036144578312.40963855421687
402120.49090909090910.509090909090908
412120.49090909090910.509090909090908
422322.59036144578310.409638554216869
432422.59036144578311.40963855421687
442122.5903614457831-1.59036144578313
451720.4909090909091-3.49090909090909
462922.59036144578316.40963855421687
472522.59036144578312.40963855421687
481620.4909090909091-4.49090909090909
492520.49090909090914.50909090909091
502522.59036144578312.40963855421687
512122.5903614457831-1.59036144578313
522320.49090909090912.50909090909091
532522.59036144578312.40963855421687
542522.59036144578312.40963855421687
552422.59036144578311.40963855421687
562122.5903614457831-1.59036144578313
572220.49090909090911.50909090909091
581422.5903614457831-8.59036144578313
592022.5903614457831-2.59036144578313
602120.49090909090910.509090909090908
612220.49090909090911.50909090909091
621922.5903614457831-3.59036144578313
632829-1
642522.59036144578312.40963855421687
652122.5903614457831-1.59036144578313
662720.49090909090916.50909090909091
671922.5903614457831-3.59036144578313
682020.4909090909091-0.490909090909092
691720.4909090909091-3.49090909090909
702222.5903614457831-0.590361445783131
712622.59036144578313.40963855421687
721720.4909090909091-3.49090909090909
731522.5903614457831-7.59036144578313
742722.59036144578314.40963855421687
752520.49090909090914.50909090909091
761922.5903614457831-3.59036144578313
771822.5903614457831-4.59036144578313
781522.5903614457831-7.59036144578313
792922.59036144578316.40963855421687
802422.59036144578311.40963855421687
812422.59036144578311.40963855421687
822220.49090909090911.50909090909091
832220.49090909090911.50909090909091
842520.49090909090914.50909090909091
852120.49090909090910.509090909090908
862120.49090909090910.509090909090908
871822.5903614457831-4.59036144578313
881020.4909090909091-10.4909090909091
891820.4909090909091-2.49090909090909
902322.59036144578310.409638554216869
912422.59036144578311.40963855421687
923222.59036144578319.40963855421687
932422.59036144578311.40963855421687
941722.5903614457831-5.59036144578313
9530291
962522.59036144578312.40963855421687
972322.59036144578310.409638554216869
981920.4909090909091-1.49090909090909
992122.5903614457831-1.59036144578313
1002420.49090909090913.50909090909091
1012320.49090909090912.50909090909091
1021920.4909090909091-1.49090909090909
1032722.59036144578314.40963855421687
1042622.59036144578313.40963855421687
1052629-3
1061620.4909090909091-4.49090909090909
1072720.49090909090916.50909090909091
1081422.5903614457831-8.59036144578313
1091820.4909090909091-2.49090909090909
1102120.49090909090910.509090909090908
1112222.5903614457831-0.590361445783131
1123122.59036144578318.40963855421687
1132322.59036144578310.409638554216869
1142422.59036144578311.40963855421687
1151920.4909090909091-1.49090909090909
1162220.49090909090911.50909090909091
1172422.59036144578311.40963855421687
1182822.59036144578315.40963855421687
1192422.59036144578311.40963855421687
1201522.5903614457831-7.59036144578313
1212120.49090909090910.509090909090908
1222122.5903614457831-1.59036144578313
1231322.5903614457831-9.59036144578313
1242020.4909090909091-0.490909090909092
1252222.5903614457831-0.590361445783131
1261920.4909090909091-1.49090909090909
1272629-3
1281920.4909090909091-1.49090909090909
1292022.5903614457831-2.59036144578313
1301420.4909090909091-6.49090909090909
1311722.5903614457831-5.59036144578313
1322922.59036144578316.40963855421687
1332120.49090909090910.509090909090908
1341922.5903614457831-3.59036144578313
1351720.4909090909091-3.49090909090909
1361920.4909090909091-1.49090909090909
1371720.4909090909091-3.49090909090909
1381922.5903614457831-3.59036144578313
1392120.49090909090910.509090909090908
1402020.4909090909091-0.490909090909092
1412020.4909090909091-0.490909090909092
1422922.59036144578316.40963855421687
1432322.59036144578310.409638554216869
1442322.59036144578310.409638554216869
1451920.4909090909091-1.49090909090909
1462222.5903614457831-0.590361445783131
 
Charts produced by software:
http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/2vjz01292161471.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/2vjz01292161471.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/3vjz01292161471.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/3vjz01292161471.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/4oby31292161471.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Dec/12/t12921613800f036flov71w2l1/4oby31292161471.ps (open in new window)


 
Parameters (Session):
par1 = 3 ; par2 = none ; par3 = 3 ; par4 = no ;
 
Parameters (R input):
par1 = 3 ; par2 = none ; par3 = 3 ; par4 = no ;
 
R code (references can be found in the software module):
library(party)
library(Hmisc)
par1 <- as.numeric(par1)
par3 <- as.numeric(par3)
x <- data.frame(t(y))
is.data.frame(x)
x <- x[!is.na(x[,par1]),]
k <- length(x[1,])
n <- length(x[,1])
colnames(x)[par1]
x[,par1]
if (par2 == 'kmeans') {
cl <- kmeans(x[,par1], par3)
print(cl)
clm <- matrix(cbind(cl$centers,1:par3),ncol=2)
clm <- clm[sort.list(clm[,1]),]
for (i in 1:par3) {
cl$cluster[cl$cluster==clm[i,2]] <- paste('C',i,sep='')
}
cl$cluster <- as.factor(cl$cluster)
print(cl$cluster)
x[,par1] <- cl$cluster
}
if (par2 == 'quantiles') {
x[,par1] <- cut2(x[,par1],g=par3)
}
if (par2 == 'hclust') {
hc <- hclust(dist(x[,par1])^2, 'cen')
print(hc)
memb <- cutree(hc, k = par3)
dum <- c(mean(x[memb==1,par1]))
for (i in 2:par3) {
dum <- c(dum, mean(x[memb==i,par1]))
}
hcm <- matrix(cbind(dum,1:par3),ncol=2)
hcm <- hcm[sort.list(hcm[,1]),]
for (i in 1:par3) {
memb[memb==hcm[i,2]] <- paste('C',i,sep='')
}
memb <- as.factor(memb)
print(memb)
x[,par1] <- memb
}
if (par2=='equal') {
ed <- cut(as.numeric(x[,par1]),par3,labels=paste('C',1:par3,sep=''))
x[,par1] <- as.factor(ed)
}
table(x[,par1])
colnames(x)
colnames(x)[par1]
x[,par1]
if (par2 == 'none') {
m <- ctree(as.formula(paste(colnames(x)[par1],' ~ .',sep='')),data = x)
}
load(file='createtable')
if (par2 != 'none') {
m <- ctree(as.formula(paste('as.factor(',colnames(x)[par1],') ~ .',sep='')),data = x)
if (par4=='yes') {
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'10-Fold Cross Validation',3+2*par3,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'',1,TRUE)
a<-table.element(a,'Prediction (training)',par3+1,TRUE)
a<-table.element(a,'Prediction (testing)',par3+1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Actual',1,TRUE)
for (jjj in 1:par3) a<-table.element(a,paste('C',jjj,sep=''),1,TRUE)
a<-table.element(a,'CV',1,TRUE)
for (jjj in 1:par3) a<-table.element(a,paste('C',jjj,sep=''),1,TRUE)
a<-table.element(a,'CV',1,TRUE)
a<-table.row.end(a)
for (i in 1:10) {
ind <- sample(2, nrow(x), replace=T, prob=c(0.9,0.1))
m.ct <- ctree(as.formula(paste('as.factor(',colnames(x)[par1],') ~ .',sep='')),data =x[ind==1,])
if (i==1) {
m.ct.i.pred <- predict(m.ct, newdata=x[ind==1,])
m.ct.i.actu <- x[ind==1,par1]
m.ct.x.pred <- predict(m.ct, newdata=x[ind==2,])
m.ct.x.actu <- x[ind==2,par1]
} else {
m.ct.i.pred <- c(m.ct.i.pred,predict(m.ct, newdata=x[ind==1,]))
m.ct.i.actu <- c(m.ct.i.actu,x[ind==1,par1])
m.ct.x.pred <- c(m.ct.x.pred,predict(m.ct, newdata=x[ind==2,]))
m.ct.x.actu <- c(m.ct.x.actu,x[ind==2,par1])
}
}
print(m.ct.i.tab <- table(m.ct.i.actu,m.ct.i.pred))
numer <- 0
for (i in 1:par3) {
print(m.ct.i.tab[i,i] / sum(m.ct.i.tab[i,]))
numer <- numer + m.ct.i.tab[i,i]
}
print(m.ct.i.cp <- numer / sum(m.ct.i.tab))
print(m.ct.x.tab <- table(m.ct.x.actu,m.ct.x.pred))
numer <- 0
for (i in 1:par3) {
print(m.ct.x.tab[i,i] / sum(m.ct.x.tab[i,]))
numer <- numer + m.ct.x.tab[i,i]
}
print(m.ct.x.cp <- numer / sum(m.ct.x.tab))
for (i in 1:par3) {
a<-table.row.start(a)
a<-table.element(a,paste('C',i,sep=''),1,TRUE)
for (jjj in 1:par3) a<-table.element(a,m.ct.i.tab[i,jjj])
a<-table.element(a,round(m.ct.i.tab[i,i]/sum(m.ct.i.tab[i,]),4))
for (jjj in 1:par3) a<-table.element(a,m.ct.x.tab[i,jjj])
a<-table.element(a,round(m.ct.x.tab[i,i]/sum(m.ct.x.tab[i,]),4))
a<-table.row.end(a)
}
a<-table.row.start(a)
a<-table.element(a,'Overall',1,TRUE)
for (jjj in 1:par3) a<-table.element(a,'-')
a<-table.element(a,round(m.ct.i.cp,4))
for (jjj in 1:par3) a<-table.element(a,'-')
a<-table.element(a,round(m.ct.x.cp,4))
a<-table.row.end(a)
a<-table.end(a)
table.save(a,file='mytable3.tab')
}
}
m
bitmap(file='test1.png')
plot(m)
dev.off()
bitmap(file='test1a.png')
plot(x[,par1] ~ as.factor(where(m)),main='Response by Terminal Node',xlab='Terminal Node',ylab='Response')
dev.off()
if (par2 == 'none') {
forec <- predict(m)
result <- as.data.frame(cbind(x[,par1],forec,x[,par1]-forec))
colnames(result) <- c('Actuals','Forecasts','Residuals')
print(result)
}
if (par2 != 'none') {
print(cbind(as.factor(x[,par1]),predict(m)))
myt <- table(as.factor(x[,par1]),predict(m))
print(myt)
}
bitmap(file='test2.png')
if(par2=='none') {
op <- par(mfrow=c(2,2))
plot(density(result$Actuals),main='Kernel Density Plot of Actuals')
plot(density(result$Residuals),main='Kernel Density Plot of Residuals')
plot(result$Forecasts,result$Actuals,main='Actuals versus Predictions',xlab='Predictions',ylab='Actuals')
plot(density(result$Forecasts),main='Kernel Density Plot of Predictions')
par(op)
}
if(par2!='none') {
plot(myt,main='Confusion Matrix',xlab='Actual',ylab='Predicted')
}
dev.off()
if (par2 == 'none') {
detcoef <- cor(result$Forecasts,result$Actuals)
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Goodness of Fit',2,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Correlation',1,TRUE)
a<-table.element(a,round(detcoef,4))
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'R-squared',1,TRUE)
a<-table.element(a,round(detcoef*detcoef,4))
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'RMSE',1,TRUE)
a<-table.element(a,round(sqrt(mean((result$Residuals)^2)),4))
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,'Actuals, Predictions, and Residuals',4,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'#',header=TRUE)
a<-table.element(a,'Actuals',header=TRUE)
a<-table.element(a,'Forecasts',header=TRUE)
a<-table.element(a,'Residuals',header=TRUE)
a<-table.row.end(a)
for (i in 1:length(result$Actuals)) {
a<-table.row.start(a)
a<-table.element(a,i,header=TRUE)
a<-table.element(a,result$Actuals[i])
a<-table.element(a,result$Forecasts[i])
a<-table.element(a,result$Residuals[i])
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file='mytable.tab')
}
if (par2 != 'none') {
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Confusion Matrix (predicted in columns / actuals in rows)',par3+1,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'',1,TRUE)
for (i in 1:par3) {
a<-table.element(a,paste('C',i,sep=''),1,TRUE)
}
a<-table.row.end(a)
for (i in 1:par3) {
a<-table.row.start(a)
a<-table.element(a,paste('C',i,sep=''),1,TRUE)
for (j in 1:par3) {
a<-table.element(a,myt[i,j])
}
a<-table.row.end(a)
}
a<-table.end(a)
table.save(a,file='mytable2.tab')
}
 





Copyright

Creative Commons License

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.

Software written by Ed van Stee & Patrick Wessa


Disclaimer

Information provided on this web site is provided "AS IS" without warranty of any kind, either express or implied, including, without limitation, warranties of merchantability, fitness for a particular purpose, and noninfringement. We use reasonable efforts to include accurate and timely information and periodically update the information, and software without notice. However, we make no warranties or representations as to the accuracy or completeness of such information (or software), and we assume no liability or responsibility for errors or omissions in the content of this web site, or any software bugs in online applications. Your use of this web site is AT YOUR OWN RISK. Under no circumstances and under no legal theory shall we be liable to you or any other person for any direct, indirect, special, incidental, exemplary, or consequential damages arising from your access to, or use of, this web site.


Privacy Policy

We may request personal information to be submitted to our servers in order to be able to:

  • personalize online software applications according to your needs
  • enforce strict security rules with respect to the data that you upload (e.g. statistical data)
  • manage user sessions of online applications
  • alert you about important changes or upgrades in resources or applications

We NEVER allow other companies to directly offer registered users information about their products and services. Banner references and hyperlinks of third parties NEVER contain any personal data of the visitor.

We do NOT sell, nor transmit by any means, personal information, nor statistical data series uploaded by you to third parties.

We carefully protect your data from loss, misuse, alteration, and destruction. However, at any time, and under any circumstance you are solely responsible for managing your passwords, and keeping them secret.

We store a unique ANONYMOUS USER ID in the form of a small 'Cookie' on your computer. This allows us to track your progress when using this website which is necessary to create state-dependent features. The cookie is used for NO OTHER PURPOSE. At any time you may opt to disallow cookies from this website - this will not affect other features of this website.

We examine cookies that are used by third-parties (banner and online ads) very closely: abuse from third-parties automatically results in termination of the advertising contract without refund. We have very good reason to believe that the cookies that are produced by third parties (banner ads) do NOT cause any privacy or security risk.

FreeStatistics.org is safe. There is no need to download any software to use the applications and services contained in this website. Hence, your system's security is not compromised by their use, and your personal data - other than data you submit in the account application form, and the user-agent information that is transmitted by your browser - is never transmitted to our servers.

As a general rule, we do not log on-line behavior of individuals (other than normal logging of webserver 'hits'). However, in cases of abuse, hacking, unauthorized access, Denial of Service attacks, illegal copying, hotlinking, non-compliance with international webstandards (such as robots.txt), or any other harmful behavior, our system engineers are empowered to log, track, identify, publish, and ban misbehaving individuals - even if this leads to ban entire blocks of IP addresses, or disclosing user's identity.


FreeStatistics.org is powered by