Hi Jason

Yes, I concur that the function "Levene" named in my package should really 
be called Brown-Forsthe.

I was vacillating between this correct naming versus following the 
nomenclature of scipy 
<https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.levene.html>from
 
which my implementation is numerically tested against.

I looked at a couple of popular statistics software, and it seems that most 
differentiate between Levene and Brown-Forsythe

* JMP 
<https://www.jmp.com/support/help/en/17.2/#page/jmp/unequal-variances-reports.shtml>
* SPSS 
<https://www.ibm.com/docs/en/spss-statistics/28.0.0?topic=anova-one-way-options>
* R <https://search.r-project.org/CRAN/refmans/ALSM/html/3_bftest.html>

Therefore, perhaps I should not be following scipy and rename my function 
from Levene to BrownForsythe?
I admit I am no statistician and would appreciate some professional 
guidance.
On Monday, 30 October 2023 at 10:41:23 UTC+8 Jason E. Aten wrote:

> 王富民awaw: Very nice.
>
> The Levene function, though, is confusingly named. The Levene test is 
> distinct from the Brown-Forsthe test, so mixing up the names
> seems odd.[1]
>
> [1] quoting 
> https://www.statisticshowto.com/brown-forsythe-test/#:~:text=The%20Levene%20test%20uses%20deviations,a%20test%20that's%20more%20robust.
>   
> below: (see the underlined sentence, underline and bold there is mine)
>
> How the Test Works
>
> Both the Levene and B-F tests transform dependent variables 
> <https://www.statisticshowto.com/dependent-variable-definition/> for use 
> in an ANOVA  
> <https://www.statisticshowto.com/probability-and-statistics/hypothesis-testing/anova/>test.
>  
> The only difference between the two tests is in how those transformed 
> variables are constructed. The Levene test uses deviations from group 
> means <https://www.statisticshowto.com/mean/>, which usually results in a 
> highly-skewed set of data; This violates the assumption of normality 
> <https://www.statisticshowto.com/assumption-of-normality-test/>.* The 
> Brown-Forsythe test attempts to correct for this skewness  
> <https://www.statisticshowto.com/probability-and-statistics/descriptive-statistics/skewness/>by
>  
> using deviations from group medians 
> <https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/mean-median-mode/#median>.*
>  
> The result is a test that’s more robust 
> <https://www.statisticshowto.com/robust-statistics/>. In other words, the 
> B-F test is less likely than the Levene test to incorrectly declare that 
> the assumption of equal variances has been violated.
>
> The test works as follows:
>
>    - The median is calculated for each factor level group.
>    - The median value is subtracted from each dependent variable in the 
>    group.
>    - An ANOVA 
>    
> <https://www.statisticshowto.com/probability-and-statistics/hypothesis-testing/anova/>
>  is 
>    run with the transformed variables. If a factor’s p-value 
>    
> <https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/p-value/>
>  is 
>    less than the significance level 
>    
> <https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/what-is-an-alpha-level/>
>  (usually 
>    5%), the population variances are not equal.
>
> W or F statistic?
>
> The test statistic used in a regular ANOVA is an F-statistic 
> <https://www.statisticshowto.com/probability-and-statistics/f-statistic-value-test/>.
>  
> The statistic used in an ANOVA with transformed variables is sometimes 
> called a W-Statistic — but it’s really just an F-Statistic with a 
> different name. It should not be confused with the coefficient of 
> concordance W-statistic 
> <https://www.statisticshowto.com/concordance-correlation-coefficient/>, 
> which is used to assess agreement between raters.
> Cautions
>
> For the most part, the B-F test is thought to perform as well as or better 
> than other available tests for equal variances. However, Glass and Hopkins 
> (1996 p. 436) state that the Levene and B-F tests are “fatally flawed”; It 
> isn’t clear how robust they are when there is significant differences in 
> variances and unequal sample sizes. Hill et. al (2006) advise repeating the 
> test using a non-parametric 
> <https://www.statisticshowto.com/probability-and-statistics/statistics-definitions/parametric-and-non-parametric-data/>
>  method.
>
> On Monday, October 30, 2023 at 1:08:19 AM UTC 王富民awaw wrote:
>
>> Hi Jan,  Martin, and Jason
>>
>> Thanks for your tips and encouragement for rolling our sleeves.
>> I have put together a small statistics library:
>>
>> stat package - github.com/fumin/stat - Go Packages 
>> <https://pkg.go.dev/github.com/fumin/stat>
>>
>> For my own needs, in addition to Brown-Forsythe, I also needed the Welch 
>> t-test and tools for multiple testing, so these are what's in the above 
>> package.
>>
>> On Monday, 30 October 2023 at 07:25:50 UTC+8 Jason E. Aten wrote:
>>
>>> For the ANOVA, I usually just call from Go into R for such things -- at 
>>> least until I 
>>> can validate if its the right thing to do/ meets the sensitivity/power 
>>> needs of the analysis.
>>>
>>> https://statsandr.com/blog/anova-in-r/
>>>
>>>
>>> https://github.com/glycerine/rmq#and-the-reverse-embedding-r-inside-your-golang-program
>>>
>>>
>>> On Wednesday, October 25, 2023 at 6:48:56 AM UTC+1 Jan wrote:
>>>
>>>> So cool!
>>>> On Monday, October 23, 2023 at 5:44:29 PM UTC+2 Martin Schnabel wrote:
>>>>
>>>>> Hi, 
>>>>>
>>>>> I attempted to translate the linked JS implementation for fun. Maybe 
>>>>> someone can use it as a starting point and correct or verify its 
>>>>> correctness. 
>>>>>
>>>>> https://go.dev/play/p/Wrw2yDRof0z 
>>>>>
>>>>> Have fun! 
>>>>>
>>>>> On 10/23/23 07:38, Jan wrote: 
>>>>> > hi, I did a quick search and I didn't find anything in Go. But 
>>>>> looking 
>>>>> > at the definition and at one implementation in JS 
>>>>> > <
>>>>> https://github.com/lukem512/brown-forsythe-test/blob/master/src/brown-forsythe.js>,
>>>>>  
>>>>> it sounds something relatively easy to write and share :)  You can use 
>>>>> the 
>>>>> R implementation to create some test datasets. Maybe gonum/stat <
>>>>> https://godocs.io/gonum.org/v1/gonum/stat> would be a potential home 
>>>>> for such a function ? What do you think ? 
>>>>> > 
>>>>> > cheers 
>>>>> > On Friday, October 20, 2023 at 10:54:55 AM UTC+2 王富民awaw wrote: 
>>>>> > 
>>>>> > Hi follow Gophers 
>>>>> > 
>>>>> > I wonder is there a canonical, verifiably correct Go package for 
>>>>> > statistics? 
>>>>> > In particular, Go code that does the Brown-Forsythe test of equal 
>>>>> > variance. 
>>>>> > Ideally in pure Go, but linking with CGo is OK. 
>>>>> > 
>>>>> > A search on Google and pkg.go.dev <http://pkg.go.dev> does not 
>>>>> > return helpful results. 
>>>>> > I wonder is there anything that the community could share? 
>>>>> > 
>>>>> > -- 
>>>>> > You received this message because you are subscribed to the Google 
>>>>> > Groups "golang-nuts" group. 
>>>>> > To unsubscribe from this group and stop receiving emails from it, 
>>>>> send 
>>>>> > an email to golang-nuts...@googlegroups.com 
>>>>> > <mailto:golang-nuts...@googlegroups.com>. 
>>>>> > To view this discussion on the web visit 
>>>>> > 
>>>>> https://groups.google.com/d/msgid/golang-nuts/7ee10c0f-8af6-4b31-baaf-ce2ccb9c0211n%40googlegroups.com
>>>>>  
>>>>> <
>>>>> https://groups.google.com/d/msgid/golang-nuts/7ee10c0f-8af6-4b31-baaf-ce2ccb9c0211n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>>>  
>>>>>
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/dc170b8a-2ec0-40ca-945a-bef352d5af93n%40googlegroups.com.

Reply via email to