理解matlab中的chi2gof函数
Understanding the chi2gof function in matlab
我试图通过一个非常简单的测试来了解如何在 matlab 中使用 chi2gof 函数。假设我抛硬币 190 次,得到 94 次正面和 96 次反面。零假设应该是我得到 95h,95t。据我了解文档,我应该能够通过 运行
来检验假设
[h,p,stats] = chi2gof([94,96], 'expected', [95,95])
然而,这个returnsh = 1,按理说是拒绝原假设的意思,没有意义。另一个特别之处是 stats
returns 中的 O
参数与 O: [0 2]
一样——但这不应该是我的输入 ([94,96]
) 吗?我做错了什么?
我做错了什么?
问题是您将抛硬币的累积结果传递给 chi2gof
。必须对整个样本进行拟合优度检验。来自官方文档(参考here):
x
= 假设检验的样本数据,指定为向量(代码的错误部分)
Expected
= 每个 bin 的预期计数(代码的正确部分)
让我们用正确的变量做一个例子:
ct = randsample([0 1],190,true,[0.49 0.51]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);
h
的返回值为0
,绝对正确
现在,让我们举一个应该失败的例子:
ct = randsample([0 1],190,true,[0.05 0.95]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);
如您所见,从第二次测试返回的 h
将等于 1
。
最后,不要忘记看一下第二个输出参数,它是测试的p-value
,是评估结果重要性的重要元素。
我试图通过一个非常简单的测试来了解如何在 matlab 中使用 chi2gof 函数。假设我抛硬币 190 次,得到 94 次正面和 96 次反面。零假设应该是我得到 95h,95t。据我了解文档,我应该能够通过 运行
来检验假设[h,p,stats] = chi2gof([94,96], 'expected', [95,95])
然而,这个returnsh = 1,按理说是拒绝原假设的意思,没有意义。另一个特别之处是 stats
returns 中的 O
参数与 O: [0 2]
一样——但这不应该是我的输入 ([94,96]
) 吗?我做错了什么?
我做错了什么?
问题是您将抛硬币的累积结果传递给 chi2gof
。必须对整个样本进行拟合优度检验。来自官方文档(参考here):
x
= 假设检验的样本数据,指定为向量(代码的错误部分)Expected
= 每个 bin 的预期计数(代码的正确部分)
让我们用正确的变量做一个例子:
ct = randsample([0 1],190,true,[0.49 0.51]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);
h
的返回值为0
,绝对正确
现在,让我们举一个应该失败的例子:
ct = randsample([0 1],190,true,[0.05 0.95]);
[h,p,stats] = chi2gof(ct,'Expected',[95 95]);
如您所见,从第二次测试返回的 h
将等于 1
。
最后,不要忘记看一下第二个输出参数,它是测试的p-value
,是评估结果重要性的重要元素。