예제 #1
0
    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)
예제 #2
0




    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])
예제 #3
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()