import pandas as pd import numpy as np #import scipy.stats as stats from scipy.stats.distributions import chi2 as chi2dist #df = 31 df = 11 chi_1 = np.empty(df) chi_2 = np.empty(df) chi_3 = np.empty(df) chi_4 = np.empty(df) chi_5 = np.empty(df) chi_6 = np.empty(df) # repeat r times: for j in range(df): chi_1[j] = chi2dist.ppf(0.01, df=j) j=j+1 for j in range(df): chi_2[j] = chi2dist.ppf(0.05, df=j) j=j+1 for j in range(df): chi_3[j] = chi2dist.ppf(0.1, df=j) j=j+1 for j in range(df): chi_4[j] = chi2dist.ppf(0.9, df=j) j=j+1 for j in range(df): chi_5[j] = chi2dist.ppf(0.95, df=j) j=j+1 for j in range(df): chi_6[j] = chi2dist.ppf(0.99, df=j) j=j+1 chi_square = pd.DataFrame({'p=0.99':chi_1,'p=0.95':chi_2,'p=0.9':chi_3,'p=0.1':chi_4,'p=0.05':chi_5,'p=0.01':chi_6}) chi_sq = chi_square.dropna(how='all') # to drop if all values in the row are NaN round(chi_sq, 3) print("Chi-square Distribution Table with 'p=0.99, ..., p=0.01' : ", f'\n{round(chi_sq, 3)}\n')