def test_energy(self): """ Tests function to compute energy statistics""" self.est.set_params(est='distance', mode='var') self.assertAlmostEquals(self.est.fit(self.x, biascorr=False), dc.distance_stats(self.x, self.x)[0]) self.assertAlmostEquals( self.est.fit(self.x, biascorr=True), np.sqrt(dc.u_distance_stats_sqr(self.x, self.x)[0])) self.est.set_params(mode='com') self.assertAlmostEquals(self.est.fit(self.x, y=self.y, biascorr=False), dc.distance_covariance(self.x, self.y)) self.est.set_params(mode='mdd') self.assertAlmostEquals(self.est.fit(self.x, y=self.y, biascorr=False), 0.352427150086)
plt.savefig('SWS_Geolife_ws.png') plt.show() dfh,xcl=load_df('Harmonic mean') plot(dfh,'Harmonic mean',xcl) for _,__ in dfh.groupby(['Algorithms']): for k,v in __.groupby('ws'): print(_,k,v.median().values,v.std().values) from minepy import MINE x = __['Harmonic mean'].values y = __['ws'].values mine = MINE(alpha=0.6, c=15, est="mic_approx") mine.compute_score(x, y) from scipy.spatial import distance import dcor print("dcor:",dcor.distance_stats(x, y)) print("distance corrolation:",distance.correlation(x, y)) print("Maximal Information Coefficient :", mine.mic()) print(_,np.corrcoef(__['Harmonic mean'].values,__['ws'].values)[1][0])
r = 0.0 corrxy = 0.0 DIVISOR = 0 for i in range(nsamples): try: sample_size = min(1000, len(new_data[el_i])) new_data_sample = new_data.sample(sample_size) data_i = pd.to_numeric(new_data_sample[el_i]) data_j = pd.to_numeric(new_data_sample[el_j]) DIVISOR += 1 except ValueError: continue ri, pi = pearsonr(data_i, data_j) covxyi, corrxyi, varxi, varyi = distance_stats( data_i, data_j) r += ri corrxy += corrxyi r /= DIVISOR corrxy /= DIVISOR pearson_corr.append(r) dist_corr.append(corrxy) s = "%10s %10s %10s % f % f \n" % (j_, el_i, el_j, r, corrxy) fout.write(s) ax1.plot(dist_corr, pearson_corr, 'o', color=j_colors[j_], label=j_) fout.close()