# Why doesn't regression results change after bootstrap?

I learned bootstrap is used to treat non-normality of residual and it basically does resampling.

I did bootstrapping on Stata and compared the result with normal regression.

reg salary salbegin educ, vce(bootstrap, reps(1000))
------------------------------------------------------------------------------
|   Observed   Bootstrap                         Normal-based
salary |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
salbegin |   1.672631   .0962783    17.37   0.000     1.483928    1.861333
educ |    1020.39   164.8032     6.19   0.000     697.3818    1343.398
_cons |  -7808.714   1582.694    -4.93   0.000    -10910.74   -4706.692
------------------------------------------------------------------------------

reg salary salbegin educ
------------------------------------------------------------------------------
salary |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
salbegin |   1.672631    .058847    28.42   0.000     1.556995    1.788266
educ |    1020.39   160.5504     6.36   0.000     704.9064    1335.874
_cons |  -7808.714    1753.86    -4.45   0.000    -11255.07   -4362.355
------------------------------------------------------------------------------

Surprisingly, coefficient and p-value don't seem to change. If bootstrap does resampling, why doesn't regression result change? What is bootstrap actually doing? Does it just correct standard error?

-

When you call this option, Stata takes $k$ bootstrap samples ($k = 1000$ in your case) from your original data. It then uses the formula $$\widehat{se} = \left( \frac{1}{k-1} \sum_{i=1}^{k} (\widehat{\beta}_i - \overline{\beta})^2 \right)^{\frac{1}{2}}$$ to calculate your standard error where $\widehat{\beta}_i$ is your coefficient estimate from each bootstrap sample and $$\overline{\beta} = \frac{1}{k}\sum_{i=1}^{k}\widehat{\beta}_i$$ is the average of the $k$ bootstrap estimates. So instead of calculating your standard error analytically via a specific formula (which sometimes may not even be available), you are obtaining the sampling distribution of your $\widehat{\beta}$ by repeatedly sampling from your data. From the above expression of the standard error you see that this is just the standard deviation of this sampling distribution. For instance, this sampling distribution may look something like this
for which you can then use your standard error for inference like the 95% confidence region underneath the curve and the like. So your estimated coefficient doesn't change (what I called "mean" in the graph) but you obtain the standard error via re-sampling rather than calculating it in the usual way as $\widehat{se}(\widehat{\beta}) = \sqrt{s^2 (X'X)^{-1}}$.