The variance of a Student's t random variable when the degrees of freedom $\nu$ is greater than $2$ is $\nu/(\nu-2)$. In R, when I try to estimate the variance using the usual estimator $$1/(n-1)\sum_{i=1}^n (x_i-\overline{x})^2$$, the estimates seem biased, when $\nu$ is close-ish to 2, like $\nu=2.2$. Here is my code and the output:
nu <- 2.2
sim <- sapply(round(seq(1e6, 5e6, len=10)),
function(n)replicate(10, var(rt(n,
nu)) - nu/(nu-2)))
matplot(t(sim), pch=1, col=1)
abline(h=0)
The estimated variance looks too small compared to the true variance. Is this
my sample sizes (up to 5 million) are still too small for the consistency to show for degrees of freedom this close to 2,
the sample variance estimator actually isn't consistent for these values of $\nu$,
something else?