是否使用matlab检查天气预测值是否遵循高斯分布?

是否使用matlab检查天气预测值是否遵循高斯分布?,matlab,gaussian,normal-distribution,Matlab,Gaussian,Normal Distribution,我使用高斯过程进行预测。现在让我们假设预测值存储在大小为1900 x 1的x中。现在我想检查它的分布是否遵循高斯分布。我需要这个来比较其他方法预测值的分布函数,比如NN,KNN,来判断哪个是平滑高斯分布函数还是正态分布函数 我怎么能做到?如果我能以数值数据的形式得到一些结果就更好了。代码编写如下, m=平均值(ypred);%r均值 s=std(ypred);%r的stdev pd=makedist('Normal','mu',m,'sigma',s);%用mu=m和sigma=s进行概率分布

我使用高斯过程进行预测。现在让我们假设预测值存储在大小为1900 x 1的
x
中。现在我想检查它的分布是否遵循高斯分布。我需要这个来比较其他方法预测值的分布函数,比如NN,KNN,来判断哪个是平滑高斯分布函数还是正态分布函数

我怎么能做到?如果我能以数值数据的形式得到一些结果就更好了。代码编写如下,
m=平均值(ypred);%r均值
s=std(ypred);%r的stdev
pd=makedist('Normal','mu',m,'sigma',s);%用mu=m和sigma=s进行概率分布
[h,p]=kstest(ypred,'CDF',pd);%计算它是正态分布的概率
ypred
值是从matlab的
fitrgp
获得的输出。随附
ypred
值样本

这是测量值和预测值的残差
qq\u图。

您可以:

其中,
p
为服从正态分布的概率,
h=1
若无效假设被拒绝,显著性为0.05。由于零假设是“它遵循正态分布”,因此
h=0
意味着它是正态分布的

由于本例中的
x
是从正态分布中取样的,因此很可能
h=0
p>0.05
。如果您使用

x = 1 + 2.*rand(1000,1); % sampled from uniform distribution

如果你的预测是基于高斯过程的,那么
h
很可能是1,
pI不知道:那么根据定义,这些数据是正态分布的?否?是的,但我正在与其他方法(如NN、KNN)进行比较,并想知道其中哪一种方法遵循平滑高斯函数或正态分布函数。我确实这样做了,但我正在寻找数值结果。QQ情节都是关于图形效果的。没错。然后,您需要的是
kstest
——但您需要一些知识才能正确地进行测试。但坦率地说,在这种情况下,图形分析和数值分析一样有效,但你不能说:“是的,那些数据是正态分布的”或“不是的,那些数据不是正态分布的”。泊松分布可以类似于正态分布。但是你可以用“Kolmogorov-Smirnov检验”来检验服从正态分布的概率。这个r值是来自我的预测值还是测量输入值?如果没有,那么如何将输出结果放入代码中。从输入值的ur代码u中可以看出。如何将获得的预测值添加到此代码中?我可以看到,但我的问题是,使用的变量u用于输入或预测输出结果,在本例中为x?使用您的代码后,我从两种方法收到这些值,分别为p=6.5987e^-09和p=2.2983e^-11。这意味着什么?是否p=6.5987e^-09方法比p=2.2983e^-11方法更平滑?正态分布与“平滑”无关。只是有些统计方法需要数据服从正态分布才能正常工作。该输出表明这两个数据集不太可能是正态分布的。你能用你实际做的事来编辑你的问题吗?只是为了确保你用正确的方法实现了它,qq图是剩余图。我附上了我写的代码,请看一看。我确信q图是非常正确的,但不知何故kktest编码是错误的。
x = 1 + 2.*rand(1000,1); % sampled from uniform distribution