>

> There is an overflow:

>

> octave:4> anova(samples,grps)

> warning: division by zero

Note that I do not get a division by 0 warning on this example. But I

do get quite a few division by zero warnings on other examples (always

when the sample values are all identical). Because some of the results

seemed right, I just disabled the warnings, but I don't feel I can

trust the results at all right now.

> One-way ANOVA Table:

>

> Source of Variation Sum of Squares df Empirical Var

> *********************************************************

> Between Groups 944.4969 1 944.4969

> Within Groups 0.0000 159 0.0000

> ---------------------------------------------------------

> Total 944.4969 160

>

> Test Statistic f Inf

> p-value 0.0000

>

> ans = 0

At least you get the desired result (pval==0), while I get the opposite...

I have looked into the source code, which states the following:

total_mean = mean (y(:));

SSB = sum (group_count .* (group_mean - total_mean) .^ 2);

SST = sumsq (reshape (y, n, 1) - total_mean);

SSW = SST - SSB;

df_b = k - 1;

df_w = n - k;

v_b = SSB / df_b;

v_w = SSW / df_w;

f = v_b / v_w;

pval = 1 - fcdf (f, df_b, df_w);

Now the place where the problematic division takes place is

f = v_b / v_w

which is variance_between by variance_within. This is the right thing

to do according to Wikipedia, but of course variance_within can quite

possibly be 0.

Now from my statistical intution the following results are expected:

v_b != 0 && v_w == 0 -> pval = 1

v_b == 0 && v_w == 0 -> pval = 0

But I am no expert on this... also I don't know what to do if v_w is

really close to 0 but not 0.

Does anyone know more?

> octave:5> version

> ans = 3.6.1

I updated to 3.6.1 as well, no change.

Best,

Hannes

_______________________________________________

Help-octave mailing list

[hidden email]
https://mailman.cae.wisc.edu/listinfo/help-octave