MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Mathematica calculates RSquared wrongly?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112795] Re: Mathematica calculates RSquared wrongly?
  • From: Darren Glosemeyer <darreng at wolfram.com>
  • Date: Fri, 1 Oct 2010 05:39:35 -0400 (EDT)

  On 9/30/2010 3:53 AM, Ray Koopman wrote:
> On Sep 29, 7:48 am, Darren Glosemeyer<darreng at wolfram.com>   wrote:
>> On 9/29/2010 3:15 AM, Ray Koopman wrote:
>>> On Sep 28, 3:09 am, Darren Glosemeyer<darreng at wolfram.com>   wrote:
>>>> On 9/27/2010 4:47 AM, Lawrence Teo wrote:
>>>>> [...]
>>>>> nlm = NonlinearModelFit[sbbBN, a*x^2 + b*x + c, {a, b, c}, x]
>>>>> nlm["RSquared"]
>>>>>
>>>>> The RSquared by Mathematica is 0.963173
>>>>> Meanwhile, Excel and manual hand calculation show that R^2 should
>>>>> be equal to 0.7622.
>>>>>
>>>>> Is Mathematica wrong? Thanks!
>>>> This is as designed. For nonlinear models, the corrected (i.e. with
>>>> the mean subtracted out) sum of squares is sometimes used. This is
>>>> consistent with comparing to a constant model, but most nonlinear
>>>> models do not include a constant in an additive way. For this reason,
>>>> NonlinearModelFit uses the uncorrected (i.e. without subtracting out
>>>> the mean) sum of squares.
>>> This information should be included in the "Goodness-of-Fit Measures"
>>> section of the NonlinearModelFit documentation, which should also
>>> point out that RSquared is computed as  1 - (Residual SS)/(Total SS),
>>> and that in nonlinear models this is generally different from the
>>> ratio (Model SS)/(Total SS) that is sometimes cited -- e.g.,
>>> http://reference.wolfram.com/mathematica/RegressionCommon/ref/RSquared.html
>>> -- as the definition of RSquared.
>> The RegressionCommon documentation is for a now obsolete standard
>> package. The "RSquared" property for nonlinear models is described
>> near the bottom of
>>
>> http://reference.wolfram.com/mathematica/tutorial/StatisticalModelAnalysis.html
>>
>> The current statement is:
>>
>> "The coefficient of determination "RSquared" is the ratio of the model
>> sum of squares to the total sum of squares."
>>
>> I will modify this to mention that the total is the uncorrected total
>> for the next version.
> Also, the  n-1  in the formula for AdjustedRSquared should be n,
> because the total sum of squares is uncorrected.
>
> However, all that misses the main point I was trying to make, which
> is that simply changing from corrected to uncorrected sums of squares
> will not give  1 - SS_res/SS_tot, which is how NonlinearModelFit
> calculates RSquared. The reason is that the residuals are not
> generally orthogonal to the fitted values, so the decomposition
> SS_tot = SS_fit + SS_res  that holds for linear models does not
> generally hold for nonlinear models.
>
> For instance, using the data and model from the "Goodness-of-Fit
> Measures" section of the NonlinearModelFit documentation,
> the fitted values are
>
> {13.658, 2.00568, 1.48485, 14.8951, 5.6088, 10.1695,
>   11.0627, 5.77841, 4.51702, 5.67666, 13.4947, 11.4323},
>
> and the residuals are
>
> {0.742037, 9.09432, 5.01515, -3.79512, 1.1912, 0.930521,
>   1.3373, 3.12159, 4.08298, 5.72334, -1.69468, -0.532303}.
>
> Their uncentered inner product is 50.2468; centering gives -159.435.
>

Thanks for catching the AdjustedRSquared typo. The code is (effectively) 
using n. I've corrected the docs.

I see your point about the orthogonality now. I missed it in the 
original example because the original example was actually a linear 
model. I'll have to take a closer look and decide if the code or the 
docs need to be corrected.

Darren Glosemeyer
Wolfram Research


  • Prev by Date: Mathematica "Fresh Start" on a new computer?
  • Next by Date: Re: Framing a Graph
  • Previous by thread: Re: Mathematica "Fresh Start" on a new computer?
  • Next by thread: Re: Mathematica calculates RSquared wrongly?