The formula to calculate standard error (aka standard deviation of the sample mean) is $\sigma_{\bar{x}} = \frac{ \sigma} {\sqrt{n}}$. But we generally don't know the population standard deviation $\sigma$. So we have to first estimate $\sigma$ from our sample (note: it is a biased estimator). Using this estimated standard deviation, our new formula is $\sigma_{\bar{x}} \approx \frac{ \sigma_x} {\sqrt{n}}$.
I did a Monte Carlo simulation, and found that this estimated standard error is systematically lower than the exact standard error. I am wondering why this is the case? It will be much appreciated if anyone can prove this.
Here I attached some R code if you want to try. Notice that the 3rd result is lower than the others.
# draw 100000 samples, each sample has 5 data point
mat = matrix(nrow = 100000,ncol = 5)
for (i in 1:100000){
mat[i,1:5] <- rnorm(5)
}
# Method1: Calculate standard error by definition: standard error is the standard deviation of sample means
sd(rowMeans(mat))
# Method2: Calculate standard error using the population std: sigma/sqrt(n)
1/sqrt(5)
# Method3: Calculate standard error using the sample std: sigma_hat/sqrt(n)
row_std = apply(mat, 1, sd)
row_se = row_std/sqrt(5)
mean(row_se)