# What is empirical standard error and how to calculate it from lm in R?

I read from some articles saying that "empirical standard error is the standard deviation of the point estimates. For a general linear model, the point estimates are the model coefficients, such as the intercept or slope, so the empirical standard error should be the standard error of the slope and intercept.

Would that be right?

How to calculate it from lm in R?

• Standard error applies to a particular estimator, so standard error of what?
– Dave
Apr 13 '21 at 20:24

All standard errors are standard deviations of (the sampling distribution of) point estimates. Can you link the articles?

Empirical and model-based are two different approaches to estimating standard errors. By "general linear model", I assume you mean ordinary least squares (OLS).

With OLS, to obtain exact inference in finite samples, you make assumptions about the distributions of the residual. If the residual is normally distributed, the standard error of the slope is model-based because a) OLS is the MLE for the normal equations and b) you have asserted you know what the real probability model is. In large samples however, there is a CLT for linear models, and so the standard error does not rely on normality of the residuals to be reasonably accurate: you might distinguish this application as the asymptotic or large sample standard error estimate.

For either of the two above cases, store the model fit as fit <- lm(... and call sqrt(diag(vcov(fit))) to get the SE for the model terms.

An empirical standard error, assuming it has any relation to an empirical distribution function, assumes that the actual sample is the probability model from which the sample was drawn. As such, one could say that the bootstrap or jackknife provides the desired estimate of the so called empirical standard error. There are numerous implementations of bootstrapped linear models in R.

One clever way to get an empirical standard error is looking at the sandwich variance estimator as a one-step estimator of the bootstrapped standard errors. To do this, again call fit <- lm(... and with the library(sandwich) loaded, call sqrt(diag(vcovHC(fit, type='HC0'))) to get a type of empirical SE for the model terms.

It sounds like what those authors call the 'empirical standard error' is the same as what most people simply call the standard error.

Your slope coefficient is a sample estimate of the population slope coefficient. If you drew another sample you get a different slope coefficient estimate. With many samples you would get a distribution of sample slope coefficients. The standard error is the standard deviation of this sampling distribution of slope coefficients. To get the standard error in lm just run summary on your fit object.