毕设开发手记(四)

      昨天磕了一天,没能吧STING算法完工。问题卡在数据正态性检测上了,STING原著论文里提到用X^2假设检验来验证数据的正态性。我搜遍网络,没有找到用C写的源码。自己磕吧,抱着随机数学的书开始写算法,写到一半觉得不对劲。X^2检验正态性是指用的皮尔逊统计量进行的分布拟合检验。而皮尔逊的的统计量在样本量充分大(n>=50)时才近似的服从X^2分布。这意味着基于皮尔逊的X^2正态性检验在小样本中无效(n>=3 && n<50)!

      样本量50是啥概念?以STING的网格来说,最底层(也是最高分辨率)的网格假设是100×100,这个数不算高了。这时每个网格中的统计量来自于至少50个数据。由此得到数据量要50×100×100=50W!50W的数据量才有最高100×100的分辨率,无疑太低了点。再说,我这目前也找不到>=50W的巨型语料库……

      换个正态性检验算法?找到一个不错的——Shapiro-Wilk正态性检验,适用样本量为(n>=3 && n<5000)。哎,随机学太烂,不知道它怎么检测的,搞不出来算法,也找不到有这个算法的免费的数学库。只知道R里有的,但要用的话还要包含一大堆DLL,还是算了吧!

posted @ 2010-05-08 12:37  紫红的泪  阅读(294)  评论(0编辑  收藏  举报