标签: statistical-sampling

k 样本的 scipy Anderson-Darling 测试中的数学溢出错误

我想比较 Kolmogorov-Smirnov (KS) 和 Anderson-Darling (AD) 测试的样本对。我分别用scipy.stats.ks_2samp和实现了这个scipy.stats.anderson_ksamp。我希望类似样本的统计数据较低(相同样本为 0),而更多不同样本的统计数据较高。

在相同样本和非常不同的样本(没有重叠)的情况下,ks_2samp提供预期的结果,同时anderson_ksamp为相同的样本提供负值,更重要的是,对于非常不同的样本抛出错误(可能是由于样本大小:200在下面的例子中)。

以下是说明这些发现的代码:

import scipy.stats as stats
import numpy as np
normal1 = np.random.normal(loc=0.0, scale=1.0, size=200)
normal2 = np.random.normal(loc=100, scale=1.0, size=200)
Run Code Online (Sandbox Code Playgroud)

在相同样本上使用 KS 和 AD:

sstats.ks_2samp(normal1, normal1)
sstats.anderson_ksamp([normal1, normal1])
Run Code Online (Sandbox Code Playgroud)

分别返回:

# Expected
Ks_2sampResult(statistic=0.0, pvalue=1.0) 
# Not expected
Anderson_ksampResult(statistic=-1.3196852620954158, critical_values=array([ 0.325,  1.226,  1.961,  2.718,  3.752]), significance_level=1.4357209285296726)
Run Code Online (Sandbox Code Playgroud)

在不同的样本上:

sstats.ks_2samp(normal1, normal2)
sstats.anderson_ksamp([normal1, normal2])
Run Code Online (Sandbox Code Playgroud)

分别返回:

# Expected
Ks_2sampResult(statistic=1.0, pvalue=1.4175052453413253e-89)
# Not expected
---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last) …
Run Code Online (Sandbox Code Playgroud)

python scipy statistical-sampling

5
推荐指数
1
解决办法
949
查看次数

伊辛模型中的瞬态或瞬态阶段意味着什么?

从此链接下载了C# 中Ising 模型简单实现

除了以下例程之外,我或多或少地理解了整个代码:

    private static void transient_results(double T)
    {
        for (int a = 1; a <= transient; a++)
        {
            array_to_list();
            for (int b = 1; b <= L * L; b++)
            {
                choose = choose_random_site("i", 0);
                posx = choose_random_site("x", choose);
                posy = choose_random_site("y", choose);

                if (test_flip(posx,posy,T))
                {
                    flip(posx,posy);
                }

                list.RemoveAt(choose);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

transient_results()将温度T作为实际值。

transient是直接从控制台读取的整数。这代表瞬态站点的数量。

array_to_list()正在清空字符串列表并使用模式的新字符串对其进行初始化"i , j"。这用作站点定位器。即跟踪已处理/未处理站点的位置。

这个街区

choose = choose_random_site("i", 0);
posx = choose_random_site("x", …
Run Code Online (Sandbox Code Playgroud)

c# simulation montecarlo statistical-sampling

5
推荐指数
1
解决办法
317
查看次数