如何针对特定的正态分布测试我的数据?

机器算法验证 r 正态分布 非参数 matlab
2022-04-02 20:24:19

我需要测试我的数据以查看它是否遵循具有特定平均值和标准的正态分布,例如 N~(mu, std) 我知道这可以通过 Kolmogorov-Smirnov 测试来完成,该测试在 MATLAB 和 R 中都有一个函数,但是这些函数的默认值是标准正常的,我不知道应该如何在函数中指定我的 mu 和 std。如果您能在这两个软件中的任何一个中帮助我,我将不胜感激。

3个回答

ks.testinR允许调整要测试的分布的均值和标准差。例如

x <- rnorm(1000, 4, 10)
ks.test(x, "pnorm", mean = 4, sd = 10)

在 R 中,您可以只使用ks.test带有以下参数的函数:

ks.test(your_data, "pnorm", mean=test_mu, sd=test_sd)

your_data您的数据向量在哪里,test_mu是理论正态分布的特定平均值test_sd及其标准偏差。

要以图形方式检查数据,您可以使用包中的qqPlot函数car只需将其与以下参数一起使用:

qqPlot(your_data, "norm", mean=test_mu, sd=test_sd)

这将生成一个带有比较线和 95% 逐点置信包络的 QQ 图(默认情况下)。

希望有帮助。

所以不要使用默认值!如前所述,R 允许您指定总体均值和标准差。

以下是如何在 MATLAB 或其他任何无法指定选项的情况下执行此操作:

通过总体参数标准化您的变量: zi=xiμ0σ0

...然后根据标准正常进行测试。

(但是,如果那些μσ值来自样本......不要这样做!)