Home » date » 2010 » Nov » 23 »

Workshop 7 - regression model

*The author of this computation has been verified*
R Software Module: /rwasp_multipleregression.wasp (opens new window with default values)
Title produced by software: Multiple Regression
Date of computation: Tue, 23 Nov 2010 11:20:27 +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/Nov/23/t1290511159kc46afgilygo7oi.htm/, Retrieved Tue, 23 Nov 2010 12:19:40 +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/Nov/23/t1290511159kc46afgilygo7oi.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 «
70.5 4 370 53.5 315 6166 65 4 684 76.5 17 449 70 8 643 71 56 1551 60.5 15 616 51.5 503 36660 78 26 403 76 26 346 57.5 44 2471 61 24 7427 64.5 23 2992 78.5 38 233 79 18 609 61 96 7615 70 90 370 70 49 1066 72 66 600 64.5 21 4873 54.5 592 3485 56.5 73 2364 64.5 14 1016 64.5 88 1062 73 39 480 72 6 559 69 32 259 64 11 1340 78.5 26 275 53 23 12550 75 32 965 52.5 NA 25229 68.5 11 4883 70 5 1189 70.5 3 226 76 3 611 75.5 13 404 74.5 56 576 65 29 3096 54 NA 23193
 
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 time7 seconds
R Server'Gwilym Jenkins' @ 72.249.127.135


Multiple Linear Regression - Estimated Regression Equation
Y[t] = + 70.5119635193035 -0.0195089043548871X1[t] -0.000499639964036723X2[t] + e[t]


Multiple Linear Regression - Ordinary Least Squares
VariableParameterS.D.T-STAT
H0: parameter = 0
2-tail p-value1-tail p-value
(Intercept)70.51196351930351.14777261.433800
X1-0.01950890435488710.009958-1.95910.0581020.029051
X2-0.0004996399640367230.000203-2.4590.0190210.00951


Multiple Linear Regression - Regression Statistics
Multiple R0.640195253380996
R-squared0.409849962451558
Adjusted R-squared0.376127103163076
F-TEST (value)12.1534760426301
F-TEST (DF numerator)2
F-TEST (DF denominator)35
p-value9.8139238571049e-05
Multiple Linear Regression - Residual Statistics
Residual Standard Deviation6.16264161415294
Sum Squared Residuals1329.23530825713


Multiple Linear Regression - Actuals, Interpolation, and Residuals
Time or IndexActualsInterpolation
Forecast
Residuals
Prediction Error
170.570.24906111519020.250938884809809
253.561.2858786292636-7.78587862926362
36570.0921741664828-5.09217416648283
476.569.9559738014186.54402619858207
57070.0346237875888-0.0346237875887938
67168.64452329120892.35547670879113
760.569.9115517361336-9.41155173613358
851.542.3821835472099.117816452791
97869.80337710056968.19662289943036
107669.83185657851976.16814342148027
1157.568.4189613765537-10.9189613765537
126166.3329238018855-5.33292380188547
1364.568.5683359467432-4.06833594674322
1478.569.65420904219728.84579095780276
157969.85652250281729.14347749718283
166164.8343503750947-3.83435037509469
177068.571295340671.42870465932992
187069.02341100425090.976588995749112
197268.92459185345893.07540814654108
2064.567.6675309830999-3.16753098309992
2154.557.2214468665424-2.72144686654235
2256.567.906664626414-11.4066646264139
2364.569.7312046548738-5.23120465487377
2464.568.2645622942664-3.76456229426644
257369.51128906672533.48871093327472
267270.11561135327771.88438864672235
276969.7582718292616-0.758271829261605
286469.6278480195905-5.62784801959054
2978.569.86733101596638.63266898403366
305363.7927771704802-10.7927771704802
317569.40552601465175.59447398534832
3252.551.85762362700840.642376372991575
3368.568.32034708028940.179652919710596
347069.84051817436650.159481825633457
3570.564.64815678821245.8518432117876
367670.55649321721915.44350678278086
3775.570.13167225614475.36832774385533
3874.577.899319964354-3.39931996435408
3965NANA
4054NANA


Goldfeld-Quandt test for Heteroskedasticity
p-valuesAlternative Hypothesis
breakpoint indexgreater2-sidedless
60.1867136625646220.3734273251292450.813286337435378
70.5304073863016320.9391852273967360.469592613698368
80.7476013956431730.5047972087136540.252398604356827
90.8562777718319680.2874444563360630.143722228168032
100.8504818922223940.2990362155552120.149518107777606
110.967194587865460.06561082426907930.0328054121345396
120.9672408157989440.06551836840211130.0327591842010557
130.952568373223130.09486325355374140.0474316267768707
140.9751838271059780.04963234578804450.0248161728940223
150.9874918805331970.02501623893360680.0125081194668034
160.981382414465030.03723517106994000.0186175855349700
170.9669782074407480.06604358511850440.0330217925592522
180.9433307166615850.1133385666768310.0566692833384155
190.914894962573880.1702100748522400.0851050374261202
200.8753716255304820.2492567489390360.124628374469518
210.8667655386533630.2664689226932740.133234461346637
220.9485809300250110.1028381399499780.051419069974989
230.9629598111325730.07408037773485360.0370401888674268
240.9672853176001170.06542936479976640.0327146823998832
250.9431988459380270.1136023081239460.0568011540619729
260.9013727022173840.1972545955652320.0986272977826162
270.8892410729869710.2215178540260580.110758927013029
280.9593549088723140.08129018225537140.0406450911276857
290.9617835878446940.07643282431061270.0382164121553063
300.931613928907970.1367721421840600.0683860710920299
310.8782967193675490.2434065612649030.121703280632451
320.8860425701500080.2279148596999840.113957429849992
330.729858530367080.5402829392658390.270141469632920
340.9020651681808570.1958696636382850.0979348318191427


Meta Analysis of Goldfeld-Quandt test for Heteroskedasticity
Description# significant tests% significant testsOK/NOK
1% type I error level00OK
5% type I error level30.103448275862069NOK
10% type I error level110.379310344827586NOK
 
Charts produced by software:
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/100vi61290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/100vi61290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/1m4lg1290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/1m4lg1290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/2m4lg1290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/2m4lg1290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/3m4lg1290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/3m4lg1290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/4xvk01290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/4xvk01290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/5xvk01290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/5xvk01290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/6xvk01290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/6xvk01290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/7p4141290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/7p4141290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/80vi61290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/80vi61290511219.ps (open in new window)


http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/90vi61290511219.png (open in new window)
http://www.freestatistics.org/blog/date/2010/Nov/23/t1290511159kc46afgilygo7oi/90vi61290511219.ps (open in new window)


 
Parameters (Session):
par1 = 1 ; par2 = Do not include Seasonal Dummies ; par3 = No Linear Trend ;
 
Parameters (R input):
par1 = 1 ; 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('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<br />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<br />Forecast', 1, TRUE)
a<-table.element(a, 'Residuals<br />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')
}
 





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