Too important to leave this in just the archive. The R code is below so you too can win a Brattle Prize. Just remember to rename the variables to something with claimed economic meaning; then, spin a tale of bullshit out your ass about what the convergence "means" for markets/firms/etc.
From the archive...
q36spacemodulator .edu Registered
For those who doubt the regression to the mean result is spurious, here is some R code to generate it from purely random numbers.
x = rnorm(1000)
y = rnorm(1000)
q = quantile(x, probs=seq(0,1,0.1))
x.m = numeric(10)
y.m = numeric(10)
for (i in 1:9) {
x.m[i] = mean(x[x<q[i+1] & x>q[i]])
y.m[i] = mean(y[x<q[i+1] & x>q[i]])
}
plot(x.m, y.m-x.m)
Note the -45-degree line in the plot. That suggests reversion toward the mean: negative x's tend to increase while positive x's tend to decrease. Yet there is no relation between x and y.
and then
Anonymous Unregistered
of course if there's persistence...
xe = rnorm(10000);
ye = rnorm(10000);x[1] = xe[1];
y[1] = ye[1];
for(i in 2:10000) {
x[i] = x[i-1]+xe[i];
y[i] = y[i-1]+ye[i];
}q = quantile(x, probs=seq(0,1,0.1));
x.m = numeric(10);
y.m = numeric(10);
for (i in 1:9) {
x.m[i] = mean(x[x<q[i+1] & x>q[i]]);
y.m[i] = mean(y[x<q[i+1] & x>q[i]]);
}
plot(x.m, y.m-x.m);
Sike!!!
xe = rnorm(10000);
ye = rnorm(10000);x[1] = xe[1];
y[1] = ye[1];
for(i in 2:10000) {
x[i] = .99*x[i-1]+xe[i]; #note what changing 1 to .99 does
y[i] = .99*y[i-1]+ye[i];
}q = quantile(x, probs=seq(0,1,0.1));
x.m = numeric(10);
y.m = numeric(10);
for (i in 1:9) {
x.m[i] = mean(x[x<q[i+1] & x>q[i]]);
y.m[i] = mean(y[x<q[i+1] & x>q[i]]);
}
plot(x.m, y.m-x.m);
run both sets of code a few times too and see how the graphs change with different draws of the random variables.