Very small p value

13 次查看(过去 30 天)
Micah
Micah 2011-11-10
I am using chi2gof to test whether my data is distributed normally. Graphically, it looks very normal, and I have fitted a normal curve to it that 'looks' good.
[h,p]=chi2gof(histdata)
h =
1
p =
0
Chi2gof reports the p value as zero - any advice on calculating the actual p value? I need to know if it is p < 0.0001 or p < 0.0000001 or whatever.

采纳的回答

Wayne King
Wayne King 2011-11-10
Hi Micah, A couple things to try:
Set the format to long.
format long
[h,p] = chi2gof(histdata)
It may be that the p-value is really essentially zero, I mean if the p-value is 10^{-6}, are you really going to report that? You may as well just say p<0.001
Another thing is return the stats from chi2gof() and check that.
[h,p,st] = chi2gof(histdata);
1-chi2cdf(st.chi2stat,st.df)
Does that also just say 0?

更多回答(1 个)

Peter Perkins
Peter Perkins 2011-11-11
Micah, in recent versions of the Statistics Toolbox, chi2gof will definitely compute very small p-values correctly. In older versions, it is possible for the p-value to round down to zero if it is very small (but it'd have to be much smaller than the 1e-4 you give as an example). If you have an older version, you can still probably compute the p-value by getting the chi-squared statistic and the degrees of freedom from the third output from chi2gof, and compute the p-value as
p = gammainc(chi2stat/2,df/2,'upper')

类别

Help CenterFile Exchange 中查找有关 Hypothesis Tests 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by