Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. import scipy.stats as st
  2.  
  3. dist_list = [st.gamma, st.expon]
  4. dist_params_list = []
  5.  
  6. for dist in dist_list:
  7.     dist_params = dist.fit(df_test_1_1.values)
  8.     dist_params_list.append(dist_params)
  9.  
  10.  
  11. chisqs, p_values = [], []
  12.  
  13. hist_values, bounds = np.histogram(df_test_1_1.values, bins=100)
  14. for dist, dist_params in zip(dist_list, dist_params_list):
  15.     dist_theor = dist(*dist_params)
  16.  
  17.    
  18.  
  19.     hist_values = hist_values / hist_values.sum()
  20.    
  21.     theor_hist_values = []
  22.     for low_bound, upper_bound in zip(bounds[:-1], bounds[1:]):
  23.         theor_hist_values.append((dist_theor.cdf(upper_bound) + dist_theor.cdf(low_bound)) / 2)
  24.    
  25.     theor_hist_values = np.array(theor_hist_values)
  26.     theor_hist_values = theor_hist_values / theor_hist_values.sum()
  27.    
  28.     chisq, p_value = st.chisquare(hist_values, f_exp=theor_hist_values)
  29.  
  30.     chisqs.append(chisq)
  31.     p_values.append(p_value)
  32.  
  33. p_values
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement