MATLAB: HOW TO USE Chi Squared Test to test Triangle Distribution

chi2gofprobabilitystatisticstool box

Hi, I have generated 1000 random variables with the triangle distribution. I am then doing a significance test on the variables against the same triangle distribution with the Chi Squared test. However, the test rarely rejects the null hypothesis (i.e. h = 0 & p > 0.05 mostly) which is contradictory in that the test data was generated from the same distribution. Please see my code below. Am I using the chi2gof() function incorrectly?
for i = 1:1000
x = rand;
random_vars(i) = icdf('Triangular',x,'a',1,'b',2,'c',4);
end
pd = makedist('Triangular','a',1,'b',2,'c',4);
[h,p] = chi2gof(random_vars,'CDF',pd)

Best Answer

It sounds like you are expecting h=1 and p<.05 when the fit is good, but that is not the way the test works, but that is backwards from how chi2gof actually works.
chi2gof tests the null hypothesis that the data come from the hypothesized distribution (i.e., your triangular). Since the data really do come from that distribution, the null hypothesis should indeed be rejected rarely. That means you will usually get h=0 and p>.05 by that test when you compare the generated data against the distribution from which they were truly generated.