ACCLAB / DABEST-python

Data Analysis with Bootstrapped ESTimation
https://acclab.github.io/DABEST-python/
Apache License 2.0
339 stars 47 forks source link

Adding a Likelihood Q-Ratio Test #83

Closed adam2392 closed 4 years ago

adam2392 commented 4 years ago

Hi, I was wondering what your thoughts on adding a robust statistic, such as the LqrT either to replace the t-test, or to add an additional column in the statistical testing? A quick summary: Compared to Wilcoxon Rank-Sum tests, it is more robust when the model is misspecified under a gross error model. See figure 9 of the paper for a most compelling result.

Proposed solution: Adding the https://github.com/alyakin314/lqrt package into the requirements.txt and incorporating that into the statistical results dataframe result.

Reference:

  1. http://www3.stat.sinica.edu.tw/statistica/oldpdf/A27n422.pdf
josesho commented 4 years ago

Hi @adam2392 ,

I'm happy to receive a PR that implements this additional test in the results dataframe. You will need to do a decent job of explaining the test in the documentation as it is obscure.

Do you have any examples of this test being used in biomedical research papers?

Joses

adam2392 commented 4 years ago

Hi @josesho so in terms of the documentation, would this just be adding documentation into:

Or are there additional files to change regarding this.

Do you have any examples of this test being used in biomedical research papers?

No because it is a new publication, but the test is proven to be more robust (compared to the t-test) in terms of power for even small changes away from a perfectly Gaussian model, and it is better then the Wilcoxon rank-sum test in this aspect. So in terms of biomedical data, this would be nice because typically no data is perfectly modeled as a single Gaussian. I am using it though for my own research now as a result. The paper and pip package came out of my university, so I found out about it as soon as it was published.

alyakin314 commented 4 years ago

@adam2392 Adam, I suggest using both the equal_var=True and equal_var=False flags for the unpaired Lq-likelihood-ratio-type test (LqRT), similarly to how it's done for the t-test here . syntax should be almost identical to the one of the scipy's t-test.

also, just as a clarification LqRT does not assume a gross-error model, it assumes normal distribution, but degrades less if there is contamination in the sample.

lastly, there is a preprint that discusses this package specifically, as opposed to the general LqRT; it can be found here.

josesho commented 4 years ago

Closed with #89