matlab - 检查天气预报值是否遵循高斯分布或不使用 matlab?

标签 matlab gaussian normal-distribution

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

我该怎么做?如果我能以数字数据的形式得到一些结果就更好了。代码如下,
m = 均值(ypred); % 均值 r s = std(ypred); r 的 % 标准差 pd = makedist('正常','mu',m,'sigma',s); % 用 mu = m 和 sigma = s 做概率分布 [h,p] = kstest(ypred,'CDF',pd); % 计算它是正态分布的概率 ypred 值是从matlab 的fitrgp 获得的输出。附上 ypred 值示例 here

[figure] 2是测量值和预测值的残差qq_plot

最佳答案

你可以制作一个One-sample Kolmogorov-Smirnov test :

x = 1 + 2.*randn(1000,1); % just some random normal distributed data, replace it with your actual 1900x1 vector.

m = mean(x); % mean of r
s = std(x); % stdev of r
pd = makedist('Normal','mu',m,'sigma',s); % make probability distribution with mu = m and sigma = s
[h,p] = kstest(x,'CDF',pd); % calculate probability that it is a normal distribution

在哪里p是服从正态分布的概率,h = 1如果原假设被拒绝且显着性为 0.05。由于原假设是“服从正态分布”,h = 0表示服从正态分布。

x在这个例子中是从正态分布中抽样的,很可能是h = 0p > 0.05 .如果您使用

运行上面的代码
x = 1 + 2.*rand(1000,1); % sampled from uniform distribution

h很可能是 1 和 p<0.05 .当然你可以把整个东西写成一行以避免创建 m , spd .

关于matlab - 检查天气预报值是否遵循高斯分布或不使用 matlab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44631894/

相关文章:

r - 从具有多个统计测试结果列表的列表中提取统计值

python - 使用 Python/Matlab 在图像中人为地合并非刚性运动以生成数据

image-processing - 高斯模糊问题

loops - Spss 循环和测试正态分布

c++ - 从 C/C++ 中的对数正态分布生成随机数

c - 高斯消元法 - 线性方程矩阵,算法

matlab - Matlab 中 scatter3 的图例

MATLAB - 整数与小数赋值奇怪的错误

matlab - 3点在matlab中意味着什么(...)?

image - RGB 图像的 Matlab 低通滤波器