예제 #1
0
 def cor_expected(self, ts_key, standardize=False):
     x, y, sol = self.ts[ts_key][0:3]
     decimal = self.ts[ts_key][3] if len(self.ts[ts_key]) == 4 else 7
     corr = corsubs(x, y, standardized=standardize)
     assert_almost_equal(corr, sol, decimal=decimal)
예제 #2
0
 def lagcor_is_shiftcor(self, h):
     a = self.a
     b = self.b
     outlen = a.shape[-1] - h
     assert_almost_equal(lagcor(a, b, h),
                         corsubs(shift(a, h), shift(b, 0, outlen)))
예제 #3
0
 def lagcor_is_trimcor(self, h):
     a = self.a
     b = self.b
     assert_almost_equal(lagcor(a, b, h),
                         corsubs(trim(a, h=h), trim(b, h=-h)))
예제 #4
0
 def test_axis_arg(self):
     assert_almost_equal(corsubs(self.a_3dim.T, self.b_3dim.T, axis=0),
                         self.corrs_3dim.T,
                         decimal=3)
예제 #5
0
 def test_shape_mismatch(self):
     try:
         corsubs(np.arange(10), np.arange(11))
         raise BaseException('returned correlation for mismatched dims')
     except ValueError:
         pass
예제 #6
0
 def lagcor_equal_subcor(self, key, standardized=False):
     x, y = self.ts[key][0:2]
     assert_almost_equal(lagcor(x, y, 0), corsubs(x, y))
예제 #7
0
 def test_cor_3d(self):  #test against all data in giant 3d mat
     assert_almost_equal(corsubs(self.a_3dim, self.b_3dim),
                         self.corrs_3dim,
                         decimal=3)
예제 #8
0
 def lagcor_is_trimcor(self, h):
     a = self.a
     b = self.b
     assert_almost_equal(lagcor(a,b,h),
                         corsubs(trim(a, h=h), trim(b, h=-h)))
예제 #9
0
 def cor_expected(self, ts_key, standardize=False):
     x,y,sol = self.ts[ts_key][0:3]
     decimal = self.ts[ts_key][3] if len(self.ts[ts_key]) == 4 else 7
     corr = corsubs(x,y, standardized=standardize)
     assert_almost_equal(corr, sol, decimal=decimal)
예제 #10
0
 def test_shape_mismatch(self):
     try: 
         corsubs(np.arange(10), np.arange(11))
         raise BaseException('returned correlation for mismatched dims')
     except ValueError: pass
예제 #11
0
 def lagcor_is_shiftcor(self, h):
     a = self.a
     b = self.b
     outlen = a.shape[-1]-h
     assert_almost_equal(lagcor(a, b, h), 
                         corsubs(shift(a, h), shift(b, 0, outlen)))
예제 #12
0
 def test_axis_arg(self):
     assert_almost_equal(corsubs(self.a_3dim.T, self.b_3dim.T, axis=0), self.corrs_3dim.T, decimal=3)
예제 #13
0
 def test_cor_3d(self):                                  #test against all data in giant 3d mat
     assert_almost_equal(corsubs(self.a_3dim, self.b_3dim), self.corrs_3dim, decimal=3)
예제 #14
0
 def lagcor_equal_subcor(self, key, standardized=False):
     x, y = self.ts[key][0:2]
     assert_almost_equal(lagcor(x,y,0), corsubs(x,y))
예제 #15
0
파일: test_funcs.py 프로젝트: machow/pycorr
np.random.seed(10)

dims = (2,2, 10)
nsubs = 3
subs = [np.random.random(dims) for ii in range(nsubs)]
for M in subs: M[0,0] = range(dims[-1])   #0,0 is 1:N
for M in subs: standardize(M, inplace=True)
subs[0][1,1] = np.NAN                     #1,1 sub 0 has a NaN timecourse

C_all = crosscor(subs, standardized=True)
C_all[1,1,0] = np.NAN
isc1 = intersubcorr(C_all)

M_ttl = np.nansum(subs, axis=0)
isc2 = np.array([corsubs(M, M_ttl-M) for M in subs]).transpose([1,2,0])

isc3_list = []
for M in subs:
    r_all = corsubs(M, M_ttl)
    s_all = np.std(M_ttl, axis=-1, ddof=1)
    s_i = np.std(M, axis=-1, ddof=1)
    M_cors = (r_all*s_all - s_i) / \
            np.sqrt(s_i**2 + s_all**2 - 2*s_i*s_all*r_all) #wherry formula
    isc3_list.append(M_cors)
isc3 = np.array(isc3_list).transpose([1,2,0])

def test_intersubcorrXmeantc():
    assert_almost_equal(isc1, isc2)

def test_intersubcorrXwherry():
예제 #16
0
dims = (2, 2, 10)
nsubs = 3
subs = [np.random.random(dims) for ii in range(nsubs)]
for M in subs:
    M[0, 0] = range(dims[-1])  #0,0 is 1:N
for M in subs:
    standardize(M, inplace=True)
subs[0][1, 1] = np.NAN  #1,1 sub 0 has a NaN timecourse

C_all = crosscor(subs, standardized=True)
C_all[1, 1, 0] = np.NAN
isc1 = intersubcorr(C_all)

M_ttl = np.nansum(subs, axis=0)
isc2 = np.array([corsubs(M, M_ttl - M) for M in subs]).transpose([1, 2, 0])

isc3_list = []
for M in subs:
    r_all = corsubs(M, M_ttl)
    s_all = np.std(M_ttl, axis=-1, ddof=1)
    s_i = np.std(M, axis=-1, ddof=1)
    M_cors = (r_all*s_all - s_i) / \
            np.sqrt(s_i**2 + s_all**2 - 2*s_i*s_all*r_all) #wherry formula
    isc3_list.append(M_cors)
isc3 = np.array(isc3_list).transpose([1, 2, 0])


def test_intersubcorrXmeantc():
    assert_almost_equal(isc1, isc2)