MyFisher: Matlab实现的RxC矩阵Fisher精确检验

需积分: 34 4 下载量 177 浏览量 更新于2024-12-23 收藏 4KB ZIP 举报
资源摘要信息: "MyFisher:任何RxC矩阵的Fisher精确和条件检验的确定函数-matlab开发" 本资源提供了用于在Matlab环境下执行Fisher精确检验的函数。Fisher精确检验是一种统计方法,用于在数据集中的频数较小,不足以使用正态近似或卡方检验时,计算观察到的频数的概率。在RxC(行数为R,列数为C)列联表中,Fisher精确检验尤其适用于2x2、2x3、2x4或3x3这类小型矩阵,因为它能够精确地计算概率而不是进行近似。 Fisher精确检验的计算涉及到多个阶乘的计算,但是由于阶乘的增长速度非常快,直接计算非常困难。Matlab提供了一种便捷的方式来计算阶乘的对数,即使用gamma函数及其自然对数版本gammaln。这是因为对于任意正数x,阶乘的对数等于gamma函数的对数加1,即log(x!) = gammaln(x+1)。 在实际应用中,计算所有可能的矩阵集合可能会非常耗时,特别是当矩阵的行数和列数较多时。因此,MyFisher函数采用了两种策略来处理这个问题:对于特定的小型矩阵,它会使用预先编写的特定函数(ad hoc functions),这些函数可以是作者之前开发的,或者可能是下载得到的。而对于大于特定尺寸的矩阵,MyFisher函数采用蒙特卡罗方法来近似计算Fisher精确检验的概率值。 蒙特卡罗方法是一种基于随机抽样的计算方法,它通过模拟大量的随机事件来得到问题的数值解。在Fisher精确检验的上下文中,蒙特卡罗方法可以用来估计在给定的边际和条件下,观察到特定列联表的概率。 MyFisher函数还集成了Peter J. Acklam编写的rldecode函数。Acklam是知名的Matlab社区成员,提供了多个实用的Matlab函数。rldecode函数在MyFisher中可能被用来处理与编码或者数据解码相关的问题,但这需要查看该函数的具体代码才能确定其具体作用。 作者朱塞佩卡迪罗(Giuseppe Cardillo)通过电子邮件giuseppe.cardillo-edta@poste.it提供了这款工具,并感谢所有对该项目有贡献的人。 为了使用MyFisher函数,用户需要从提供的压缩包文件名列表中下载名为"myfisher.zip"的压缩文件。解压缩后,用户应该能够找到一个Matlab函数文件,该文件包含了执行Fisher精确检验所需的全部代码。用户可以根据自己的需要进行调整和使用这个函数,比如输入自己的RxC矩阵数据,然后调用该函数执行检验并获取结果。 这个Matlab函数可能还包括对输入数据的验证、检查矩阵的尺寸是否符合特定函数的要求,以及对于更大型矩阵的蒙特卡罗模拟参数设置等。用户需要确保自己具有Matlab软件环境,以及对于使用Matlab进行编程和统计分析有一定的了解,这样才能有效地使用这个资源。