commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mikkel Meyer Andersen <m...@mikl.dk>
Subject Re: [math] SummaryStatistics.setVarianceImpl Usage
Date Fri, 21 Oct 2011 08:51:26 GMT
Dear Warren,

As far as I know, in [math] we have adopted the standard naming
convention (as you seem to use yourself), which is:
E[X^2]: second moment
E[(X - E[X])^2]: central second moment

And similar for higher orders moments.

Cheers, Mikkel.

2011/10/21 Warren Tang <warren.c.tang@gmail.com>:
> The getSecondMoment does not return the real second central moment which
> should be equal to variance. I think it is confusing and should be
> stressed in the document.
>
>
> On 10/17/2011 1:23 AM, Warren Tang wrote:
>> Thanks for the workaround. I've reported the bug here:
>> https://issues.apache.org/jira/browse/MATH-691
>>
>> Regards,
>> Warren Tang <http://blog.tangcs.com>
>>
>>
>> On Sunday, October 16, 2011 11:24:26 PM, Mikkel Meyer Andersen wrote:
>>> Dear Warren,
>>>
>>> This is probably a bug. Sorry for this. Would you be so kind to report
>>> it as described on http://commons.apache.org/math/issue-tracking.html
>>> .
>>>
>>> What you can do instead is this:
>>> int[] scores = {1, 2, 3, 4};
>>>
>>> SummaryStatistics stats = new SummaryStatistics();
>>> for(int i : scores) {
>>> stats.addValue(i);
>>> }
>>> double sd = FastMath.sqrt(stats.getSecondMoment() / stats.getN());
>>>
>>> System.out.println(sd);
>>>
>>> So, calculating sd as:
>>> double sd = FastMath.sqrt(stats.getSecondMoment() / stats.getN());
>>>
>>> And then there is no need to stats.setVarianceImpl(new Variance(false)).
>>>
>>> Cheers, Mikkel.
>>>
>>> 2011/10/16 Warren Tang <warren.c.tang@gmail.com>:
>>>> Hi, Mikkel
>>>>
>>>> I'm using commons-math 2.2. The code to reproduce the issue.
>>>>
>>>> import org.apache.commons.math.stat.descriptive.SummaryStatistics;
>>>> import org.apache.commons.math.stat.descriptive.moment.Variance;
>>>>
>>>> @Test public void testStandardDeviation() {
>>>> int[] scores = {1, 2, 3, 4};
>>>> SummaryStatistics stats = new SummaryStatistics();
>>>> stats.setVarianceImpl(new Variance(false)); //use "population variance"
>>>> for(int i : scores) {
>>>> stats.addValue(i);
>>>> }
>>>> double sd = stats.getStandardDeviation();
>>>> System.out.println(sd);
>>>> }
>>>>
>>>> Regards,
>>>> Warren Tang <http://blog.tangcs.com>
>>>>
>>>> On 10/16/2011 10:43 PM, Mikkel Meyer Andersen wrote:
>>>>>
>>>>> Dear Warren,
>>>>>
>>>>> Could you provide values for the scores-variable in the current
>>>>> example making it possible to reproduce?
>>>>>
>>>>> Are you in fact using version 1.2 as reflected by the link you gave?
>>>>> Or which version are you using?
>>>>>
>>>>> Cheers, Mikkel.
>>>>>
>>>>> 2011/10/16 Warren Tang<warren.c.tang@gmail.com>:
>>>>>>
>>>>>> Hello, everyone
>>>>>>
>>>>>> I'm trying to get a "population standard deviation
>>>>>>
>>>>>> <http://commons.apache.org/math/api-1.2/org/apache/commons/math/stat/descriptive/moment/StandardDeviation.html>"
>>>>>>
>>>>>> (non-bias-corrected) from SummaryStatistics.
>>>>>>
>>>>>> This is what I did:
>>>>>>
>>>>>> SummaryStatistics stats = new SummaryStatistics();
>>>>>> stats.setVarianceImpl(new Variance(false)); //use "population
>>>>>> variance"
>>>>>> ( sum((x_i - mean)^2) / n )
>>>>>> for(int i : scores) {
>>>>>> stats.addValue(i);
>>>>>> }
>>>>>> double sd = stats.getStandardDeviation();
>>>>>>
>>>>>> However, the value of "sd" is "NaN". How can I do it correctly?
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Warren Tang<http://blog.tangcs.com>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>> For additional commands, e-mail: user-help@commons.apache.org
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message