Explanation of Mincer-Zarnowiz regression I am confused about what the Mincer-Zarnowiz regression does.  What I understand is that it checks if the forecast we make is biased or not. 
Let's say we have the following example: 
Height   GPA
66.0    2.90
57.0    3.16
64.5    3.62
62.0    2.00
69.5    3.45
65.0    2.80
63.0    3.63
68.0    2.81
59.5    3.33
64.0    2.75

It gives the equation
y = 3.644692292·10-3 x + 2.812286397

with the predictions for the training set
3.052836088     
3.020033858     
3.04736905  
3.038257319 
3.065592511           
3.049191396          
3.041902012     
3.060125473          
3.029145589          
3.045546704

Does it mean that now I have to do a linear regression with the forecasted values as the $y$ values and real values as the $x$ values, and then check if the intercept is $0$?
 A: First, note that the Mincer-Zarnowitz regression does not make much sense for evaluation of in-sample predictions. You should only apply it for out-of-sample predictions.
Second, you should test the joint hypothesis that the intercept is 0 and the slope is 1, for instance with a Wald test (and not just the intercept). If you can reject this hypothesis, then you have evidence that your forecast of the conditional mean is not correct (i.e. biased and / or inefficient). 
This is how you could do this in R.
# Store true value and predictions from the example
y <- c(2.90, 3.16, 3.62, 2.00, 3.45, 2.80, 3.63, 2.81, 3.33, 2.75)
yhat <- c(3.052836088, 3.020033858, 3.04736905, 3.038257319, 3.065592511, 
          3.049191396, 3.041902012, 3.060125473, 3.029145589, 3.045546704)

# Estimate the Mincer-Zarnowitz regression
fit <- lm(y ~ yhat)

# Do a Wald test
# Note: depending on the data you might want to use a 
# robust variance-covariance estimator
b <- coef(fit)
cov <- vcov(fit)  
s <- (b - c(0, 1)) %*% solve(cov) %*% c(b - c(0, 1))

# p-value for this test
pchisq(s, 2, lower.tail = FALSE)

Since we are here using the in-sample predictions, we get a p-value of 1.
