Advertisement
EditorRUS

Eta

Jul 6th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.00 KB | None | 0 0
  1. def eta(*measurements):
  2.     """General safe implementation to calculate correlation coefficient disregarding NaNs"""
  3.     nanless_measurements = [
  4.         measurement[measurement == measurement]
  5.         for measurement in measurements
  6.     ]
  7.  
  8.     category_means = np.array([
  9.         np.mean(measurement)
  10.         for measurement in nanless_measurements
  11.     ])
  12.  
  13.     population_mean = sum(
  14.         np.sum(measurement)
  15.         for measurement in nanless_measurements
  16.     ) / sum(
  17.         np.size(measurement)
  18.         for measurement in nanless_measurements
  19.     )
  20.  
  21.     summed_local_delta_squares = sum(
  22.         np.sum((measurement - respective_mean) ** 2)
  23.         for measurement, respective_mean in zip(nanless_measurements, category_means)
  24.     )
  25.  
  26.     summed_global_delta_squares = sum(
  27.         np.sum((measurement - population_mean) ** 2)
  28.         for measurement in nanless_measurements
  29.     )
  30.  
  31.     return abs(summed_global_delta_squares - summed_local_delta_squares) / summed_global_delta_squares
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement