C Program For Chi-Square Test | C Programming

Chi-Square Test

Formalizes this notion of distribution fit
Oi represents the number of observed data values in the i-th interval.
pi is the probability of a data value falling in the i-th interval under the hypothesized distribution.
So we would expect to observe Ei = npi, if we have n observations

So the chi-squared statistic is

So the hypotheses are
H0: the random variable, X, conforms to the distributional assumption with parameters given by the parameter estimates.
H1: the random variable does not conform.

C Program For Chi-Square Test

#include<stdio.h>

int main()

{

int n,i,e,calc=0,z=16.9;

printf("Total number : ");

scanf("%d",&n);

int arr[n],o[10]={0,0,0,0,0,0,0,0,0,0},oo[10],ooo[10];

printf("Enter %d number : ",n);

for(i=0;i<n;i++)

{

scanf("%d",&arr[i]);

}

for(i=0;i<n;i++)

{

if(arr[i]<10)

o[0]++;

else if(arr[i]<20 && arr[i]>=10)

o[1]++;

else if(arr[i]<30 && arr[i]>=20)

o[2]++;

else if(arr[i]<40 && arr[i]>=30)

o[3]++;

else if(arr[i]<50 && arr[i]>=40)

o[4]++;

else if(arr[i]<60 && arr[i]>=50)

o[5]++;

else if(arr[i]<70 && arr[i]>=60)

o[6]++;

else if(arr[i]<80 && arr[i]>=70)

o[7]++;

else if(arr[i]<90 && arr[i]>=80)

o[8]++;

else

o[9]++;

}

e=n/10;

for(i=0;i<10;i++)

{

oo[i]=(o[i]-e)*(o[i]-e);

ooo[i]=oo[i]/e;

calc=calc+ooo[i];

}

if(calc<=z)

printf("Null hypo accepted. The value are uniformly distributed.");

else

printf("Alt hypo accepted. The value are not uniformly distributed.");

return 0;

}