Free Statistics

of Irreproducible Research!

Author's title

Author*The author of this computation has been verified*
R Software Modulerwasp_multipleregression.wasp
Title produced by softwareMultiple Regression
Date of computationSun, 04 Nov 2012 06:58:23 -0500
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2012/Nov/04/t1352030313607k2s6fw56caak.htm/, Retrieved Thu, 02 May 2024 17:25:22 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=185794, Retrieved Thu, 02 May 2024 17:25:22 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact115
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
-       [Multiple Regression] [] [2012-11-04 11:58:23] [cd7f3d5ccbf34a37bb8df43fbba84031] [Current]
Feedback Forum

Post a new message
Dataseries X:
1901	 61	17	 56	 21	 51
2508	 74	19	 73	 15	 45
2114	 57	18	 62	 17	 44
1331	 50	15	 42	 20	 42
1399	 48	15	 59	 12	 38
7333	  2	12	 27	  4	 38
1507	 61	14	 56	 12	 35
1107	 36	15	 59	  9	 34
2051	 46	13	 51	 14	 33
1115	 28	20	 78	 11	 32
1289	 30	17	 47	 11	 32
 819	 49	10	 35	 14	 31
1178	 54	16	 55	  9	 30
1451	 12	12	 47	  7	 30
1502	 14	13	 47	  4	 30
1514	 44	15	 54	 14	 29
 883	 40	15	 60	 13	 29
1405	 57	15	 55	 11	 29
 927	 29	12	 48	  9	 28
1314	 28	12	 47	  9	 27
1307	 40	15	 52	 11	 27
1352	 32	13	 47	  8	 27
1097	 19	 9	 27	  4	 26
1100	 67	12	 12	 10	 26
1316	 25	13	 51	 10	 26
1243	 54	12	 48	  7	 26
1232	 56	12	 48	 15	 26
 903	 42	16	 58	 13	 25
 929	 28	15	 60	 10	 25
1049	 57	13	 46	 10	 25
 820	 32	15	 56	 11	 24
1469	 35	13	 42	  8	 24
1462	 24	12	 42	 10	 24
 821	 10	12	 41	  7	 24
1372	 28	12	 45	  6	 24
1239	 30	12	 47	 11	 24
 868	 49	15	 52	  5	 23
1227	 19	14	 47	  5	 23
 707	 17	15	 49	  5	 23
1090	 33	12	 47	 10	 23
1202	 42	12	 41	  8	 23
1367	 23	 8	 32	 10	 23
1106	  3	13	 55	  2	 22
1671	 37	13	 48	 13	 22
1165	 30	12	 42	  9	 22
1428	 56	12	 48	  9	 22
 934	 22	13	 50	  7	 21
1155	 34	13	 49	  5	 21
1374	 28	13	 39	 10	 21
1111	 15	13	 45	  7	 21
 967	 12	 9	 36	  5	 21
 774	 19	12	 48	  5	 21
1223	 38	12	 41	  5	 21
1550	 26	12	 38	  7	 21
 961	 45	15	 60	 10	 21
1375	 35	12	 48	  8	 21
 804	 38	15	 45	 10	 21
 613	 27	14	 52	  9	 20
1152	 35	14	 41	 10	 20
 729	 23	12	 46	 10	 20
 813	 51	12	 39	  8	 20
 912	 23	 9	 32	  5	 20
 813	 33	12	 39	 10	 20
1178	 26	14	 52	  8	 20
1199	 32	16	 54	  6	 19
1165	 35	15	 51	  7	 19
 705	 18	13	 52	  6	 18
 837	 56	12	 41	  9	 17
 814	 18	16	 57	  3	 17
 884	 39	12	 45	 11	 17
1082	 41	12	 47	  9	 17
 913	 37	10	 31	  9	 16
 586	 35	12	 43	 10	 16
 757	 33	12	 41	  6	 15
 626	 16	10	 40	  5	 15
 501	 13	13	 46	  5	 15
 778	  0	12	 46	  0	 15
1009	 35	15	 30	 10	 15
 547	 26	15	 32	  7	 15
 835	  7	 9	 27	  6	 15
 634	  9	16	 64	  5	 15
 718	 30	13	  9	  7	 15
 480	 40	12	 37	 10	 15
 847	 22	12	 22	  6	 15
 714	 29	12	 20	  6	 14
 871	 25	12	 21	  4	 14
 776	 17	14	 44	  3	 14
 811	 40	12	 33	  5	 14
 815	 32	12	 24	  7	 14
 642	 18	13	 35	  0	 13
 626	 17	16	 20	  5	 13
 728	 45	12	 32	  8	 13
 528	 24	12	 45	  8	 13
 636	 28	12	 13	  5	 13
 935	 18	11	 33	  5	 13
 562	 15	 8	 31	  5	 13
 566	  2	13	 34	  0	 12
 473	 16	15	 58	  6	 12
 835	 28	13	 26	  5	 12
 656	 25	13	 32	  4	 12
 764	 10	12	 15	  8	 12
 929	 17	12	 36	  6	 12
 567	 16	16	 47	  3	 11
 558	  7	12	 37	  2	 11
 479	  7	 8	 21	  3	 11
 607	 25	12	 31	  3	 11
 704	  9	12	 40	  2	 11
 433	 28	 8	 21	  3	 11
 582	 27	14	 26	  8	 11
 393	 10	11	 24	  2	 10
 507	 16	 9	 28	  2	 10
 488	  0	 5	  9	  1	 10
 504	  0	 4	 15	  1	  9
 367	  2	 8	 19	  2	  9
 386	  5	13	 35	  7	  9
 580	 10	12	 20	  1	  9
 510	 14	12	 29	  3	  9
 565	 43	13	  1	  6	  9
 451	 36	13	 45	  4	  9
 495	 12	12	 33	  2	  8
 412	  8	12	 11	  2	  8
 596	 15	10	 32	  3	  8
 446	 10	13	 18	  4	  7
 338	 39	 5	 10	  5	  7
 418	  0	12	 41	  0	  7
 349	 10	 9	 10	  3	  6
 335	  7	 6	  0	  0	  6
 308	  3	12	 24	  2	  5
 228	  0	11	 38	  1	  5
 455	  8	15	 28	  0	  5
 428	  8	 3	  4	  3	  5
 244	  8	 0	  0	  4	  5
 242	  1	 8	 25	  0	  5
 352	  0	12	 40	  0	  5
 269	  3	 9	 23	  1	  5
 213	  0	 9	 31	  0	  4
 242	  0	 4	 13	  0	  4
 291	  0	14	  6	  2	  4
 135	  0	 0	  0	  1	  3
 210	  3	 1	  3	  3	  3
 231	  0	 0	  0	  0	  2
 224	  0	 6	  7	  0	  2
 340	  0	 0	  0	  0	  2
  44	  0	 0	  0	  0	  2
 126	  0	 6	  2	  0	  2
 141	  2	 2	  5	  0	  1
  25	  0	 0	  0	  0	  1
 104	  0	 0	  0	  0	  1
  11	  0	 0	  0	  0	  0




Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time0 seconds
R Server'Gwilym Jenkins' @ jenkins.wessa.net

\begin{tabular}{lllllllll}
\hline
Summary of computational transaction \tabularnewline
Raw Input & view raw input (R code)  \tabularnewline
Raw Output & view raw output of R engine  \tabularnewline
Computing time & 0 seconds \tabularnewline
R Server & 'Gwilym Jenkins' @ jenkins.wessa.net \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=185794&T=0

[TABLE]
[ROW][C]Summary of computational transaction[/C][/ROW]
[ROW][C]Raw Input[/C][C]view raw input (R code) [/C][/ROW]
[ROW][C]Raw Output[/C][C]view raw output of R engine [/C][/ROW]
[ROW][C]Computing time[/C][C]0 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'Gwilym Jenkins' @ jenkins.wessa.net[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=185794&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=185794&T=0

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time0 seconds
R Server'Gwilym Jenkins' @ jenkins.wessa.net



Parameters (Session):
par1 = 6 ; par2 = Do not include Seasonal Dummies ; par3 = No Linear Trend ;
Parameters (R input):
par1 = 6 ; par2 = Do not include Seasonal Dummies ; par3 = No Linear Trend ;
R code (references can be found in the software module):
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
}
bitmap(file='test0.png')
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()
bitmap(file='test1.png')
plot(mysum$resid, type='b', pch=19, main='Residuals', ylab='value of Residuals', xlab='time or index')
grid()
dev.off()
bitmap(file='test2.png')
hist(mysum$resid, main='Residual Histogram', xlab='values of Residuals')
grid()
dev.off()
bitmap(file='test3.png')
densityplot(~mysum$resid,col='black',main='Residual Density Plot', xlab='values of Residuals')
dev.off()
bitmap(file='test4.png')
qqnorm(mysum$resid, main='Residual Normal Q-Q Plot')
qqline(mysum$resid)
grid()
dev.off()
(myerror <- as.ts(mysum$resid))
bitmap(file='test5.png')
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()
bitmap(file='test6.png')
acf(mysum$resid, lag.max=length(mysum$resid)/2, main='Residual Autocorrelation Function')
grid()
dev.off()
bitmap(file='test7.png')
pacf(mysum$resid, lag.max=length(mysum$resid)/2, main='Residual Partial Autocorrelation Function')
grid()
dev.off()
bitmap(file='test8.png')
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) {
bitmap(file='test9.png')
plot(kp3:nmkm3,gqarr[,2], main='Goldfeld-Quandt test',ylab='2-sided p-value',xlab='breakpoint')
grid()
dev.off()
}
load(file='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='mytable1.tab')
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,hyperlink('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='mytable2.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='mytable3.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='mytable4.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='mytable5.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='mytable6.tab')
}