x <- array(list(1 ,41 ,12 ,12 ,13 ,2 ,39 ,11 ,11 ,16 ,3 ,30 ,15 ,14 ,19 ,4 ,31 ,6 ,12 ,15 ,5 ,34 ,13 ,21 ,14 ,6 ,35 ,10 ,12 ,13 ,7 ,39 ,12 ,22 ,19 ,8 ,34 ,14 ,11 ,15 ,9 ,36 ,12 ,10 ,14 ,10 ,37 ,6 ,13 ,15 ,11 ,38 ,10 ,10 ,16 ,12 ,36 ,12 ,8 ,16 ,13 ,38 ,12 ,15 ,16 ,14 ,39 ,11 ,14 ,16 ,15 ,33 ,15 ,10 ,17 ,16 ,32 ,12 ,14 ,15 ,17 ,36 ,10 ,14 ,15 ,18 ,38 ,12 ,11 ,20 ,19 ,39 ,11 ,10 ,18 ,20 ,32 ,12 ,13 ,16 ,21 ,32 ,11 ,7 ,16 ,22 ,31 ,12 ,14 ,16 ,23 ,39 ,13 ,12 ,19 ,24 ,37 ,11 ,14 ,16 ,25 ,39 ,9 ,11 ,17 ,26 ,41 ,13 ,9 ,17 ,27 ,36 ,10 ,11 ,16 ,28 ,33 ,14 ,15 ,15 ,29 ,33 ,12 ,14 ,16 ,30 ,34 ,10 ,13 ,14 ,31 ,31 ,12 ,9 ,15 ,32 ,27 ,8 ,15 ,12 ,33 ,37 ,10 ,10 ,14 ,34 ,34 ,12 ,11 ,16 ,35 ,34 ,12 ,13 ,14 ,36 ,32 ,7 ,8 ,7 ,37 ,29 ,6 ,20 ,10 ,38 ,36 ,12 ,12 ,14 ,39 ,29 ,10 ,10 ,16 ,40 ,35 ,10 ,10 ,16 ,41 ,37 ,10 ,9 ,16 ,42 ,34 ,12 ,14 ,14 ,43 ,38 ,15 ,8 ,20 ,44 ,35 ,10 ,14 ,14 ,45 ,38 ,10 ,11 ,14 ,46 ,37 ,12 ,13 ,11 ,47 ,38 ,13 ,9 ,14 ,48 ,33 ,11 ,11 ,15 ,49 ,36 ,11 ,15 ,16 ,50 ,38 ,12 ,11 ,14 ,51 ,32 ,14 ,10 ,16 ,52 ,32 ,10 ,14 ,14 ,53 ,32 ,12 ,18 ,12 ,54 ,34 ,13 ,14 ,16 ,55 ,32 ,5 ,11 ,9 ,56 ,37 ,6 ,12 ,14 ,57 ,39 ,12 ,13 ,16 ,58 ,29 ,12 ,9 ,16 ,59 ,37 ,11 ,10 ,15 ,60 ,35 ,10 ,15 ,16 ,61 ,30 ,7 ,20 ,12 ,62 ,38 ,12 ,12 ,16 ,63 ,34 ,14 ,12 ,16 ,64 ,31 ,11 ,14 ,14 ,65 ,34 ,12 ,13 ,16 ,66 ,35 ,13 ,11 ,17 ,67 ,36 ,14 ,17 ,18 ,68 ,30 ,11 ,12 ,18 ,69 ,39 ,12 ,13 ,12 ,70 ,35 ,12 ,14 ,16 ,71 ,38 ,8 ,13 ,10 ,72 ,31 ,11 ,15 ,14 ,73 ,34 ,14 ,13 ,18 ,74 ,38 ,14 ,10 ,18 ,75 ,34 ,12 ,11 ,16 ,76 ,39 ,9 ,19 ,17 ,77 ,37 ,13 ,13 ,16 ,78 ,34 ,11 ,17 ,16 ,79 ,28 ,12 ,13 ,13 ,80 ,37 ,12 ,9 ,16 ,81 ,33 ,12 ,11 ,16 ,82 ,37 ,12 ,10 ,20 ,83 ,35 ,12 ,9 ,16 ,84 ,37 ,12 ,12 ,15 ,85 ,32 ,11 ,12 ,15 ,86 ,33 ,10 ,13 ,16 ,87 ,38 ,9 ,13 ,14 ,88 ,33 ,12 ,12 ,16 ,89 ,29 ,12 ,15 ,16 ,90 ,33 ,12 ,22 ,15 ,91 ,31 ,9 ,13 ,12 ,92 ,36 ,15 ,15 ,17 ,93 ,35 ,12 ,13 ,16 ,94 ,32 ,12 ,15 ,15 ,95 ,29 ,12 ,10 ,13 ,96 ,39 ,10 ,11 ,16 ,97 ,37 ,13 ,16 ,16 ,98 ,35 ,9 ,11 ,16 ,99 ,37 ,12 ,11 ,16 ,100 ,32 ,10 ,10 ,14 ,101 ,38 ,14 ,10 ,16 ,102 ,37 ,11 ,16 ,16 ,103 ,36 ,15 ,12 ,20 ,104 ,32 ,11 ,11 ,15 ,105 ,33 ,11 ,16 ,16 ,106 ,40 ,12 ,19 ,13 ,107 ,38 ,12 ,11 ,17 ,108 ,41 ,12 ,16 ,16 ,109 ,36 ,11 ,15 ,16 ,110 ,43 ,7 ,24 ,12 ,111 ,30 ,12 ,14 ,16 ,112 ,31 ,14 ,15 ,16 ,113 ,32 ,11 ,11 ,17 ,114 ,32 ,11 ,15 ,13 ,115 ,37 ,10 ,12 ,12 ,116 ,37 ,13 ,10 ,18 ,117 ,33 ,13 ,14 ,14 ,118 ,34 ,8 ,13 ,14 ,119 ,33 ,11 ,9 ,13 ,120 ,38 ,12 ,15 ,16 ,121 ,33 ,11 ,15 ,13 ,122 ,31 ,13 ,14 ,16 ,123 ,38 ,12 ,11 ,13 ,124 ,37 ,14 ,8 ,16 ,125 ,33 ,13 ,11 ,15 ,126 ,31 ,15 ,11 ,16 ,127 ,39 ,10 ,8 ,15 ,128 ,44 ,11 ,10 ,17 ,129 ,33 ,9 ,11 ,15 ,130 ,35 ,11 ,13 ,12 ,131 ,32 ,10 ,11 ,16 ,132 ,28 ,11 ,20 ,10 ,133 ,40 ,8 ,10 ,16 ,134 ,27 ,11 ,15 ,12 ,135 ,37 ,12 ,12 ,14 ,136 ,32 ,12 ,14 ,15 ,137 ,28 ,9 ,23 ,13 ,138 ,34 ,11 ,14 ,15 ,139 ,30 ,10 ,16 ,11 ,140 ,35 ,8 ,11 ,12 ,141 ,31 ,9 ,12 ,8 ,142 ,32 ,8 ,10 ,16 ,143 ,30 ,9 ,14 ,15 ,144 ,30 ,15 ,12 ,17 ,145 ,31 ,11 ,12 ,16 ,146 ,40 ,8 ,11 ,10 ,147 ,32 ,13 ,12 ,18 ,148 ,36 ,12 ,13 ,13 ,149 ,32 ,12 ,11 ,16 ,150 ,35 ,9 ,19 ,13 ,151 ,38 ,7 ,12 ,10 ,152 ,42 ,13 ,17 ,15 ,153 ,34 ,9 ,9 ,16 ,154 ,35 ,6 ,12 ,16 ,155 ,35 ,8 ,19 ,14 ,156 ,33 ,8 ,18 ,10 ,157 ,36 ,15 ,15 ,17 ,158 ,32 ,6 ,14 ,13 ,159 ,33 ,9 ,11 ,15 ,160 ,34 ,11 ,9 ,16 ,161 ,32 ,8 ,18 ,12 ,162 ,34 ,8 ,16 ,13) ,dim=c(5 ,162) ,dimnames=list(c('t' ,'Connected' ,'Software' ,'Depression' ,'Learning') ,1:162)) y <- array(NA,dim=c(5,162),dimnames=list(c('t','Connected','Software','Depression','Learning'),1:162)) for (i in 1:dim(x)[1]) { for (j in 1:dim(x)[2]) { y[i,j] <- as.numeric(x[i,j]) } } par3 = 'No Linear Trend' par2 = 'Do not include Seasonal Dummies' par1 = '5' par3 <- 'No Linear Trend' par2 <- 'Do not include Seasonal Dummies' par1 <- '5' #'GNU S' R Code compiled by R2WASP v. 1.0.44 () #Author: Prof. Dr. P. Wessa #To cite this work: AUTHOR(S), (YEAR), YOUR SOFTWARE TITLE (vNUMBER) in Free Statistics Software (v$_version), Office for Research Development and Education, URL http://www.wessa.net/rwasp_YOURPAGE.wasp/ #Source of accompanying publication: Office for Research, Development, and Education #Technical description: Write here your technical program description (don't use hard returns!) library(lattice) library(lmtest) n25 <- 25 #minimum number of obs. for Goldfeld-Quandt test par1 <- as.numeric(par1) x <- t(y) k <- length(x[1,]) n <- length(x[,1]) x1 <- cbind(x[,par1], x[,1:k!=par1]) mycolnames <- c(colnames(x)[par1], colnames(x)[1:k!=par1]) colnames(x1) <- mycolnames #colnames(x)[par1] x <- x1 if (par3 == 'First Differences'){ x2 <- array(0, dim=c(n-1,k), dimnames=list(1:(n-1), paste('(1-B)',colnames(x),sep=''))) for (i in 1:n-1) { for (j in 1:k) { x2[i,j] <- x[i+1,j] - x[i,j] } } x <- x2 } if (par2 == 'Include Monthly Dummies'){ x2 <- array(0, dim=c(n,11), dimnames=list(1:n, paste('M', seq(1:11), sep =''))) for (i in 1:11){ x2[seq(i,n,12),i] <- 1 } x <- cbind(x, x2) } if (par2 == 'Include Quarterly Dummies'){ x2 <- array(0, dim=c(n,3), dimnames=list(1:n, paste('Q', seq(1:3), sep =''))) for (i in 1:3){ x2[seq(i,n,4),i] <- 1 } x <- cbind(x, x2) } k <- length(x[1,]) if (par3 == 'Linear Trend'){ x <- cbind(x, c(1:n)) colnames(x)[k+1] <- 't' } x k <- length(x[1,]) df <- as.data.frame(x) (mylm <- lm(df)) (mysum <- summary(mylm)) if (n > n25) { kp3 <- k + 3 nmkm3 <- n - k - 3 gqarr <- array(NA, dim=c(nmkm3-kp3+1,3)) numgqtests <- 0 numsignificant1 <- 0 numsignificant5 <- 0 numsignificant10 <- 0 for (mypoint in kp3:nmkm3) { j <- 0 numgqtests <- numgqtests + 1 for (myalt in c('greater', 'two.sided', 'less')) { j <- j + 1 gqarr[mypoint-kp3+1,j] <- gqtest(mylm, point=mypoint, alternative=myalt)$p.value } if (gqarr[mypoint-kp3+1,2] < 0.01) numsignificant1 <- numsignificant1 + 1 if (gqarr[mypoint-kp3+1,2] < 0.05) numsignificant5 <- numsignificant5 + 1 if (gqarr[mypoint-kp3+1,2] < 0.10) numsignificant10 <- numsignificant10 + 1 } gqarr } postscript(file="/var/fisher/rcomp/tmp/1g2y21351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(x[,1], type='l', main='Actuals and Interpolation', ylab='value of Actuals and Interpolation (dots)', xlab='time or index') points(x[,1]-mysum$resid) grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/2ibkj1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(mysum$resid, type='b', pch=19, main='Residuals', ylab='value of Residuals', xlab='time or index') grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/38pry1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) hist(mysum$resid, main='Residual Histogram', xlab='values of Residuals') grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/4s8on1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) densityplot(~mysum$resid,col='black',main='Residual Density Plot', xlab='values of Residuals') dev.off() postscript(file="/var/fisher/rcomp/tmp/5iyfd1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) qqnorm(mysum$resid, main='Residual Normal Q-Q Plot') qqline(mysum$resid) grid() dev.off() (myerror <- as.ts(mysum$resid)) postscript(file="/var/fisher/rcomp/tmp/64win1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) dum <- cbind(lag(myerror,k=1),myerror) dum dum1 <- dum[2:length(myerror),] dum1 z <- as.data.frame(dum1) z plot(z,main=paste('Residual Lag plot, lowess, and regression line'), ylab='values of Residuals', xlab='lagged values of Residuals') lines(lowess(z)) abline(lm(z)) grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/7t9aa1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) acf(mysum$resid, lag.max=length(mysum$resid)/2, main='Residual Autocorrelation Function') grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/8b7ha1351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) pacf(mysum$resid, lag.max=length(mysum$resid)/2, main='Residual Partial Autocorrelation Function') grid() dev.off() postscript(file="/var/fisher/rcomp/tmp/9coh71351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) opar <- par(mfrow = c(2,2), oma = c(0, 0, 1.1, 0)) plot(mylm, las = 1, sub='Residual Diagnostics') par(opar) dev.off() if (n > n25) { postscript(file="/var/fisher/rcomp/tmp/10g0621351952341.ps",horizontal=F,onefile=F,pagecentre=F,paper="special",width=8.3333333333333,height=5.5555555555556) plot(kp3:nmkm3,gqarr[,2], main='Goldfeld-Quandt test',ylab='2-sided p-value',xlab='breakpoint') grid() dev.off() } #Note: the /var/fisher/rcomp/createtable file can be downloaded at http://www.wessa.net/cretab load(file="/var/fisher/rcomp/createtable") a<-table.start() a<-table.row.start(a) a<-table.element(a, 'Multiple Linear Regression - Estimated Regression Equation', 1, TRUE) a<-table.row.end(a) myeq <- colnames(x)[1] myeq <- paste(myeq, '[t] = ', sep='') for (i in 1:k){ if (mysum$coefficients[i,1] > 0) myeq <- paste(myeq, '+', '') myeq <- paste(myeq, mysum$coefficients[i,1], sep=' ') if (rownames(mysum$coefficients)[i] != '(Intercept)') { myeq <- paste(myeq, rownames(mysum$coefficients)[i], sep='') if (rownames(mysum$coefficients)[i] != 't') myeq <- paste(myeq, '[t]', sep='') } } myeq <- paste(myeq, ' + e[t]') a<-table.row.start(a) a<-table.element(a, myeq) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/112d0d1351952341.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a,hyperlink('http://www.xycoon.com/ols1.htm','Multiple Linear Regression - Ordinary Least Squares',''), 6, TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Variable',header=TRUE) a<-table.element(a,'Parameter',header=TRUE) a<-table.element(a,'S.D.',header=TRUE) a<-table.element(a,'T-STAT
H0: parameter = 0',header=TRUE) a<-table.element(a,'2-tail p-value',header=TRUE) a<-table.element(a,'1-tail p-value',header=TRUE) a<-table.row.end(a) for (i in 1:k){ a<-table.row.start(a) a<-table.element(a,rownames(mysum$coefficients)[i],header=TRUE) a<-table.element(a,mysum$coefficients[i,1]) a<-table.element(a, round(mysum$coefficients[i,2],6)) a<-table.element(a, round(mysum$coefficients[i,3],4)) a<-table.element(a, round(mysum$coefficients[i,4],6)) a<-table.element(a, round(mysum$coefficients[i,4]/2,6)) a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/12pa6h1351952341.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a, 'Multiple Linear Regression - Regression Statistics', 2, TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Multiple R',1,TRUE) a<-table.element(a, sqrt(mysum$r.squared)) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'R-squared',1,TRUE) a<-table.element(a, mysum$r.squared) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Adjusted R-squared',1,TRUE) a<-table.element(a, mysum$adj.r.squared) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'F-TEST (value)',1,TRUE) a<-table.element(a, mysum$fstatistic[1]) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'F-TEST (DF numerator)',1,TRUE) a<-table.element(a, mysum$fstatistic[2]) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'F-TEST (DF denominator)',1,TRUE) a<-table.element(a, mysum$fstatistic[3]) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'p-value',1,TRUE) a<-table.element(a, 1-pf(mysum$fstatistic[1],mysum$fstatistic[2],mysum$fstatistic[3])) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Multiple Linear Regression - Residual Statistics', 2, TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Residual Standard Deviation',1,TRUE) a<-table.element(a, mysum$sigma) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Sum Squared Residuals',1,TRUE) a<-table.element(a, sum(myerror*myerror)) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/13mt6s1351952341.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a, 'Multiple Linear Regression - Actuals, Interpolation, and Residuals', 4, TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a, 'Time or Index', 1, TRUE) a<-table.element(a, 'Actuals', 1, TRUE) a<-table.element(a, 'Interpolation
Forecast', 1, TRUE) a<-table.element(a, 'Residuals
Prediction Error', 1, TRUE) a<-table.row.end(a) for (i in 1:n) { a<-table.row.start(a) a<-table.element(a,i, 1, TRUE) a<-table.element(a,x[i]) a<-table.element(a,x[i]-mysum$resid[i]) a<-table.element(a,mysum$resid[i]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/14so941351952341.tab") if (n > n25) { a<-table.start() a<-table.row.start(a) a<-table.element(a,'Goldfeld-Quandt test for Heteroskedasticity',4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'p-values',header=TRUE) a<-table.element(a,'Alternative Hypothesis',3,header=TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'breakpoint index',header=TRUE) a<-table.element(a,'greater',header=TRUE) a<-table.element(a,'2-sided',header=TRUE) a<-table.element(a,'less',header=TRUE) a<-table.row.end(a) for (mypoint in kp3:nmkm3) { a<-table.row.start(a) a<-table.element(a,mypoint,header=TRUE) a<-table.element(a,gqarr[mypoint-kp3+1,1]) a<-table.element(a,gqarr[mypoint-kp3+1,2]) a<-table.element(a,gqarr[mypoint-kp3+1,3]) a<-table.row.end(a) } a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/15xf9q1351952341.tab") a<-table.start() a<-table.row.start(a) a<-table.element(a,'Meta Analysis of Goldfeld-Quandt test for Heteroskedasticity',4,TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'Description',header=TRUE) a<-table.element(a,'# significant tests',header=TRUE) a<-table.element(a,'% significant tests',header=TRUE) a<-table.element(a,'OK/NOK',header=TRUE) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'1% type I error level',header=TRUE) a<-table.element(a,numsignificant1) a<-table.element(a,numsignificant1/numgqtests) if (numsignificant1/numgqtests < 0.01) dum <- 'OK' else dum <- 'NOK' a<-table.element(a,dum) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'5% type I error level',header=TRUE) a<-table.element(a,numsignificant5) a<-table.element(a,numsignificant5/numgqtests) if (numsignificant5/numgqtests < 0.05) dum <- 'OK' else dum <- 'NOK' a<-table.element(a,dum) a<-table.row.end(a) a<-table.row.start(a) a<-table.element(a,'10% type I error level',header=TRUE) a<-table.element(a,numsignificant10) a<-table.element(a,numsignificant10/numgqtests) if (numsignificant10/numgqtests < 0.1) dum <- 'OK' else dum <- 'NOK' a<-table.element(a,dum) a<-table.row.end(a) a<-table.end(a) table.save(a,file="/var/fisher/rcomp/tmp/1663z91351952342.tab") } try(system("convert tmp/1g2y21351952341.ps tmp/1g2y21351952341.png",intern=TRUE)) try(system("convert tmp/2ibkj1351952341.ps tmp/2ibkj1351952341.png",intern=TRUE)) try(system("convert tmp/38pry1351952341.ps tmp/38pry1351952341.png",intern=TRUE)) try(system("convert tmp/4s8on1351952341.ps tmp/4s8on1351952341.png",intern=TRUE)) try(system("convert tmp/5iyfd1351952341.ps tmp/5iyfd1351952341.png",intern=TRUE)) try(system("convert tmp/64win1351952341.ps tmp/64win1351952341.png",intern=TRUE)) try(system("convert tmp/7t9aa1351952341.ps tmp/7t9aa1351952341.png",intern=TRUE)) try(system("convert tmp/8b7ha1351952341.ps tmp/8b7ha1351952341.png",intern=TRUE)) try(system("convert tmp/9coh71351952341.ps tmp/9coh71351952341.png",intern=TRUE)) try(system("convert tmp/10g0621351952341.ps tmp/10g0621351952341.png",intern=TRUE))