问题
我有两个数组,我们称它们为 ar1 和 ar2(大小 (192,289)),它们代表标准差的经纬度图,并且我有一个大小相似的它们的差异数组。我想绘制差异,并在顶部绘制一个点画图案,其中两个数组之间的差异在 95% 置信水平(alpha = 0.05)上具有统计显着性。
编码
我正在使用此示例进行编码-
我使用了 Joel Cornett 的解决方案,用ar1
andar2
代替 X 和 Y。
F = np.var(ar1) / np.var(ar2)
print np.var(ar1), np.var(ar2)
print F
0.118586507371 0.161485609461
0.734347213766
对于下一部分,我需要 N-2 个自由度来进行分析,其中 N 是数组中的点数,在本例中为 55848 (192 x 289)。len(ar1)
并且len(ar2)
在这里不起作用,因为那些只给出第一个维度的长度,所以我尝试将数组展平以获得正确的长度。
df1 = len(np.ndarray.flatten(sdmod)) - 2
df2 = len(np.ndarray.flatten(sdcon)) - 2
print df1, df2
55486 55486
但是,继续前进,我的 p 值为 9.88365269356e-289(基本上为 0)。这是一个单一的值,正如我在这种特殊情况下所期望的那样,在统计上是微不足道的,但我需要一组值来进行点画,以便我可以查看网格上是否存在差异显着的地方。我只是不确定如何在二维数组上执行此测试,因为我找到的所有示例都使用列表或其他一维数据类型,而且我以前也从未做过这样的分析。(我是应我的顾问的要求做的,他不使用 Python)。
问题
如何对两个二维数组执行 f 检验,结果给出一个大小相似的数组,为每个网格点提供一个 p 值?
如果可能的话,我可以修改它以填写由于对主题缺乏了解而可能遗漏的任何内容(让我知道我得到的 p 值似乎不正确),但如果它太复杂或不完整求大神帮忙,我删了