Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import csv
  2. import numpy as np
  3. import random
  4. from math import sqrt
  5. import scipy.stats
  6.  
  7.  
  8. def get_data(file):
  9.     csv_x = csv.reader(open(file))
  10.     data = []
  11.     for row in csv_x:
  12.         data.append(row)
  13.     return data
  14.  
  15. def extrapolate(data_list, diagnosis):
  16.     data = []
  17.     for tuple in data_list:
  18.         if tuple[0] == diagnosis:
  19.             data.append(float(tuple[1]))
  20.     return data
  21.  
  22. def sig_test(reference, symptom, tail):
  23.  
  24.     alpha = 0.05
  25.  
  26.     ref_sample_size = len(reference)        
  27.     sample_size = len(symptom)
  28.     se = sqrt(np.std(symptom)**2/sample_size + np.std(reference)**2/ref_sample_size)
  29.     t = abs(np.mean(symptom) - np.mean(reference))/se
  30.     p_value = 1 - scipy.stats.t.cdf(t, min(sample_size, ref_sample_size) - 1)
  31.     s = sqrt(((sample_size - 1)*np.std(symptom)**2 + (ref_sample_size - 1)*np.std(reference)**2)/(sample_size + ref_sample_size - 2))
  32.     d = abs(np.mean(symptom) - np.mean(reference))/s
  33.     if tail == 2:
  34.         p_value *= 2
  35.  
  36.     print "   Standard error:", se, "   T-score:", t, "   P-value:", p_value, "   Difference of means:", np.mean(symptom) - np.mean(reference)
  37.  
  38.     if p_value <= alpha/3:
  39.         print "Significant difference"
  40.         print "Cohen's d:", d
  41.         print "Difference of means:", np.mean(symptom) - np.mean(reference)
  42.     else:
  43.         print "No significant difference"
  44.  
  45. ###########################################################
  46.  
  47. fever = get_data('fever.csv')
  48. WBC = get_data('WBC.csv')
  49. fever_None = extrapolate(fever, 'No')
  50. fever_Py2_7 = extrapolate(fever, 'Py2.7')
  51. fever_Py3 = extrapolate(fever, 'Py3')
  52. WBC_None = extrapolate(WBC, 'No')
  53. WBC_Py2_7 = extrapolate(WBC, 'Py2.7')
  54. WBC_Py3 = extrapolate(WBC, 'Py3')
  55.  
  56. print "Fever tests:"
  57. print "Normal and Py2.7:"
  58. sig_test(fever_None, fever_Py2_7, 1)
  59. print "Normal and Py3:"
  60. sig_test(fever_None, fever_Py3, 1)
  61. print "Py2.7 and Py3:"
  62. sig_test(fever_Py2_7, fever_Py3, 2)
  63. print ""
  64. print "WBC tests:"
  65. print "Normal and Py2.7:"
  66. sig_test(WBC_None, WBC_Py2_7, 1)
  67. print "Normal and Py3:"
  68. sig_test(WBC_None, WBC_Py3, 1)
  69. print "Py2.7 and Py3:"
  70. sig_test(WBC_Py2_7, WBC_Py3, 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement