[SciPy-user] Standard error on linear regression coefficients
Robert Kern
robert.kern at gmail.com
Thu May 15 13:25:48 EDT 2008
On Thu, May 15, 2008 at 9:52 AM, Lorenzo Isella
<lorenzo.isella at gmail.com> wrote:
> Dear All,
> I happen to use a lot the module for linear regression included in scipy.
> I need to get the standard errors on the slope and the intercept and
> by looking at the help:
>
> Help on function linregress in module scipy.stats.stats:
>
> linregress(*args)
> Calculates a regression line on two arrays, x and y, corresponding to
> x,y pairs. If a single 2D array is passed, linregress finds dim with 2
> levels and splits data into x,y pairs along that dim.
>
> Returns: slope, intercept, r, two-tailed prob, stderr-of-the-estimate
>
> I am a bit puzzled. I have only one entry for the standard error of
> the estimate. Should I not have two, namely one standard error for the
> slope and one for the intercept?
> I presume the one provided here is the one for the slope, but I fear I
> have misunderstood something.
Yes. The "Standard Error of the Estimate" is the root-mean-square of
the residuals. C.f.
http://www.tufts.edu/~gdallal/slrout.htm
> Or to re-phrase my question: how do I get the errors on the estimated
> slope and intercept with SciPy linregress?
According to WikiPedia: http://en.wikipedia.org/wiki/Regression_analysis
slope, intercept, r, prob2, see = linregress(x, y)
mx = x.mean()
sx2 = ((x-mx)**2).sum()
sd_intercept = see * sqrt(1./len(x) + mx*mx/sx2)
sd_slope = see * sqrt(1./sx2)
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
-- Umberto Eco
More information about the SciPy-User
mailing list