source('/home/pw/wessanet/cretab') myrfcuid = 'poberjef' x <- array(list(111,45,27,52,102,50,18,55,108,49,19,80,109,55,20,45,118,39,29,60,79,68,46,34,88,69,27,45,102,56,23,68,105,58,29,26,92,48,38,70,131,34,20,85,104,50,37,54,83,76,32,55,84,49,26,40,85,51,40,55,110,53,30,50,121,36,26,71,120,62,23,55,100,46,27,70,94,50,38,55,89,47,25,60,93,50,33,65,128,44,45,66,84,50,34,55,127,29,20,90,106,49,24,55,129,26,26,60,82,79,26,35,106,53,39,55,109,53,27,26,91,72,18,14,111,35,34,45,105,42,25,35,118,37,26,65,103,46,28,35,101,48,21,60,101,46,39,60,95,49,25,60,108,65,29,65,95,52,37,45,98,75,34,20,82,58,30,50,100,43,28,60,100,60,25,48,107,43,27,40,95,51,33,55,97,70,30,54,93,69,26,40,81,65,18,40,89,63,21,34,111,44,39,60,95,61,36,30,106,40,32,75,83,62,23,24,81,59,27,30,115,47,45,80,112,50,24,60,92,50,29,46,85,65,21,35,95,54,28,60,115,44,37,75,91,66,22,54,107,34,31,78,102,74,32,20,86,57,20,45,96,60,33,60,114,36,32,70,105,50,18,35,82,60,44,20,120,45,24,60,88,55,21,20,90,44,29,50,85,57,30,50,106,33,37,75,109,30,33,70,75,64,25,20,91,49,19,45,96,76,16,20,108,40,31,50,86,48,29,55,98,65,37,15,99,50,41,26,95,70,28,25,88,78,19,30,111,44,28,60,103,48,33,40,107,52,32,40,118,40,28,50),dim=c(4,88),dimnames=list(c('IQ','Add','MumAge','Grade'),1:88)) y <- array(NA,dim=c(4,88),dimnames=list(c('IQ','Add','MumAge','Grade'),1:88)) for (i in 1:dim(x)[1]) { for (j in 1:dim(x)[2]) { y[i,j] <- as.numeric(x[i,j]) } } par3 = 'TRUE' par2 = '2' par1 = '1' ylab = 'Y Variable Name' xlab = 'X Variable Name' main = 'Title Goes Here' par3 <- 'TRUE' par2 <- '2' par1 <- '1' #'GNU S' R Code compiled by R2WASP v. 1.2.327 (Sun, 16 Jul 2017 09:55:57 +0200) #Author: root #To cite this work: Ian E. Holliday (2017), Simple Linear Regression (v1.0.10) in Free Statistics Software (v$_version), Office for Research Development and Education, URL https://www.wessa.net/rwasp_Simple%20Regression%20Y%20~%20X.wasp/ #Source of accompanying publication: # library(boot) cat1 <- as.numeric(par1) cat2<- as.numeric(par2) intercept<-as.logical(par3) x <- na.omit(t(x)) rsq <- function(formula, data, indices) { d <- data[indices,] # allows boot to select sample fit <- lm(formula, data=d) return(summary(fit)$r.square) } xdf<-data.frame(na.omit(t(y))) (V1<-dimnames(y)[[1]][cat1]) (V2<-dimnames(y)[[1]][cat2]) xdf <- data.frame(xdf[[cat1]], xdf[[cat2]]) names(xdf)<-c('Y', 'X') if(intercept == FALSE) (lmxdf<-lm(Y~ X - 1, data = xdf) ) else (lmxdf<-lm(Y~ X, data = xdf) ) (results <- boot(data=xdf, statistic=rsq, R=1000, formula=Y~X)) sumlmxdf<-summary(lmxdf) (aov.xdf<-aov(lmxdf) ) (anova.xdf<-anova(lmxdf) ) a<-table.start() nc <- ncol(sumlmxdf$'coefficients') nr <- nrow(sumlmxdf$'coefficients') a<-table.row.start(a) a<-table.element(a,'Linear Regression Model', nc+1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, lmxdf$call['formula'],nc+1) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'coefficients:',1,TRUE) a<-table.element(a, ' ',nc,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, ' ',1,TRUE) for(i in 1 : nc){ a<-table.element(a, dimnames(sumlmxdf$'coefficients')[[2]][i],1,TRUE) }#end header a<-table.row.end(a) for(i in 1: nr){ a<-table.element(a,dimnames(sumlmxdf$'coefficients')[[1]][i] ,1,TRUE) for(j in 1 : nc){ a<-table.element(a, round(sumlmxdf$coefficients[i, j], digits=3), 1 ,FALSE) } a<-table.row.end(a) } a<-table.row.start(a) a<-table.element(a, '- - - ',1,TRUE) a<-table.element(a, ' ',nc,FALSE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Residual Std. Err. ',1,TRUE) a<-table.element(a, paste(round(sumlmxdf$'sigma', digits=3), ' on ', sumlmxdf$'df'[2], 'df') ,nc, FALSE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Multiple R-sq. ',1,TRUE) a<-table.element(a, round(sumlmxdf$'r.squared', digits=3) ,nc, FALSE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, '95% CI Multiple R-sq. ',1,TRUE) a<-table.element(a, paste('[',round(boot.ci(results,type='bca')$bca[1,4], digits=3),', ', round(boot.ci(results,type='bca')$bca[1,5], digits=3), ']',sep='') ,nc, FALSE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Adjusted R-sq. ',1,TRUE) a<-table.element(a, round(sumlmxdf$'adj.r.squared', digits=3) ,nc, FALSE) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/home/pw/wessanet/rcomp/tmp/1s7i01603393074.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a,'ANOVA Statistics', 5+1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, ' ',1,TRUE) a<-table.element(a, 'Df',1,TRUE) a<-table.element(a, 'Sum Sq',1,TRUE) a<-table.element(a, 'Mean Sq',1,TRUE) a<-table.element(a, 'F value',1,TRUE) a<-table.element(a, 'Pr(>F)',1,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, V2,1,TRUE) a<-table.element(a, anova.xdf$Df[1]) a<-table.element(a, round(anova.xdf$'Sum Sq'[1], digits=3)) a<-table.element(a, round(anova.xdf$'Mean Sq'[1], digits=3)) a<-table.element(a, round(anova.xdf$'F value'[1], digits=3)) a<-table.element(a, round(anova.xdf$'Pr(>F)'[1], digits=3)) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Residuals',1,TRUE) a<-table.element(a, anova.xdf$Df[2]) a<-table.element(a, round(anova.xdf$'Sum Sq'[2], digits=3)) a<-table.element(a, round(anova.xdf$'Mean Sq'[2], digits=3)) a<-table.element(a, ' ') a<-table.element(a, ' ') a<-table.row.end(a) a<-table.end(a) table.save(a,file="/home/pw/wessanet/rcomp/tmp/2k8oq1603393074.tab") postscript(file="/home/pw/wessanet/rcomp/tmp/374ju1603393074.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(Y~ X, data=xdf, xlab=V2, ylab=V1, main='Regression Solution') if(intercept == TRUE) abline(coef(lmxdf), col='red') if(intercept == FALSE) abline(0.0, coef(lmxdf), col='red') dev.off() library(car) postscript(file="/home/pw/wessanet/rcomp/tmp/4x9by1603393074.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) qqPlot(resid(lmxdf), main='QQplot of Residuals of Fit') dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/50ura1603393074.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(xdf$X, resid(lmxdf), main='Scatterplot of Residuals of Model Fit') dev.off() postscript(file="/home/pw/wessanet/rcomp/tmp/6woe81603393074.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(lmxdf, which=4) dev.off() try(system("convert /home/pw/wessanet/rcomp/tmp/374ju1603393074.ps /home/pw/wessanet/rcomp/tmp/374ju1603393074.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/4x9by1603393074.ps /home/pw/wessanet/rcomp/tmp/4x9by1603393074.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/50ura1603393074.ps /home/pw/wessanet/rcomp/tmp/50ura1603393074.png",intern=TRUE)) try(system("convert /home/pw/wessanet/rcomp/tmp/6woe81603393074.ps /home/pw/wessanet/rcomp/tmp/6woe81603393074.png",intern=TRUE))