matlab如何测试测量值之间的显着差异?
Posted
技术标签:
【中文标题】matlab如何测试测量值之间的显着差异?【英文标题】:How to test the significant difference between measured value matlab? 【发布时间】:2021-11-10 21:49:51 【问题描述】:我有一个电子元件的输出样本,我想知道我的系统稳健的 p 值。理想情况下,我想得到一个 p 值(P
我的输出:
sample=[2.180213,2.178298 ,2.310851 ,2.114255 ,3.012553 ,2.69234 ,2.079787];
我尝试使用:
[h,p] = chi2gof(sample,'CDF',pd)
[h,p,ci,stats] = ttest(x)
[h,p,stats] = fishertest(x)
[h,p,ksstat,cv] = kstest(___)
我迷路了!我应该在 MATLAB 上执行什么样的测试来真正测试我的输出彼此之间的接近程度以及我的系统输出的一致性(使用 p 值)?
编辑: 我试过这个:
sample=[2.180213,2.178298 ,2.310851 ,2.114255 ,3.012553 ,2.69234 ,2.079787];
n = numel(sample);
xobs = mean(sample); % Sample mean
s = std(sample); % Sample standard deviation
[h,p] = ttest(sample,xobs)
结果是:
h =
0
p =
1
我的数字有点接近,但结果没有意义。 h = 0 表示均值为真且未被拒绝,但 p 值为 1!为什么这么高!
【问题讨论】:
除非您比较两个样本(一组观察值)。在您的问题中,您有一个包含 7 个观察值的样本。您可以计算标准偏差 (std) 或标准误差(以获得可变性)。但是,对于单个样本,您可以使用 1 样本 t 检验来检验样本均值的假设。 我认为 1 样本 t 检验适用于当 x 中的数据来自均值为零的正态分布时。但是,我的意思不是零@AzimJ 是的,通用 1 样本 t 检验假设均值为零。您可以将数据转移到零均值(即从数据点中减去预期均值)或在 MATLAB 中使用ttest(x,m)
其中x
是您的样本,m
是预期均值(mathworks.com/help/stats/ttest.html - 请参阅@987654329 @ 用于测试非零均值)。数据仍然需要来自正态分布的人群。
您正在测试您的数据是否来自均值为xobs
的正态分布,这看起来是因为您从样本中确定了xobs
。也就是说,你的测试没有意义。我强烈建议您在不知道它们的含义的情况下随机应用统计测试之前先研究统计数据。请注意,应用测试并获得 p
您可以对数据做的唯一事情是计算均值和标准差,并确定您的均值是否足够接近预期均值,以及您的标准差是否足够小以满足您的要求。或者您可以查看数据中是否存在趋势(平均值随时间变化)。如果您必须应用统计测试,您可以将您的数据与预期分布进行比较。但看起来你没有其中之一,你甚至不知道你期望什么?
【参考方案1】:
我相信我想通了。我选择了一个任意平均值,这是我想要输出的理想值,并将其用作假设条件。
sample=[2.180213,2.178298 ,2.310851 ,2.114255 ,3.012553 ,2.69234 ,2.079787];
n = numel(sample);
xobs = mean(sample); % Sample mean
s = std(sample); % Sample standard deviation
[h,p] = ttest(sample,3)
【讨论】:
以上是关于matlab如何测试测量值之间的显着差异?的主要内容,如果未能解决你的问题,请参考以下文章