In [1]:
m9 = np.loadtxt(open("../matrices/matriz-9.csv","rb"),delimiter=",")
m10 = np.loadtxt(open("../matrices/matriz-10.csv","rb"),delimiter=",")
In [5]:
m1 = np.loadtxt(open("../matrices/cor.matrix_C_NL.csv","rb"),delimiter=";")
m2 = np.loadtxt(open("../matrices/cor.matrix_M_NL.csv","rb"),delimiter=";")
m3 = np.loadtxt(open("../matrices/exemplo_35_NT.csv","rb"),delimiter=",")
m4 = np.loadtxt(open("../matrices/exemplo_2.csv","rb"),delimiter=";")
m5 = rc.rand_corr(35, 10**-4)
m6 = rc.rand_corr(35, 10**-4)
m7 = np.loadtxt(open("../matrices/1-gorilla.csv","rb"),delimiter=",")
m8 = np.loadtxt(open("../matrices/4-hyllostomidae.csv","rb"),delimiter=",")
m9 = np.loadtxt(open("../matrices/matriz-9.csv","rb"),delimiter=",")
m10 = np.loadtxt(open("../matrices/matriz-10.csv","rb"),delimiter=",")
In [15]:
ms =[m1, m2, m3, m4, m5, m6, m7, m9, m10]
bp = []
for i in xrange(len(ms)):
b_n = rc.triang_decomp(ms[i])
p_n = rc.calc_params(b_n)
bp.append((b_n, p_n))
In [24]:
r2, flex,isoc = rc.calc_path(ms, bp, -2, -1)
In [25]:
len(r2)
Out[25]:
In [8]:
plot(r2)
Out[8]:
In [9]:
plot(flex)
Out[9]:
In [13]:
plot(rs)
Out[13]:
In [12]:
plot(isoc)
Out[12]:
In [11]:
scatter(r2, flex, c=range(0,100))
Out[11]:
In [67]:
rand_m = rc.rand_corr(35, 10**-4)
ms2 =[ms[2], rand_m]
bp2 = []
for i in xrange(2):
b_n = rc.triang_decomp(ms2[i])
p_n = rc.calc_params(b_n)
bp2.append((b_n, p_n))
r2, flex,isoc = rc.calc_path(ms2, bp2, 0, 1)
In [68]:
plot(r2)
Out[68]:
In [69]:
plot(flex)
Out[69]:
In [70]:
plot(isoc)
Out[70]:
In [71]:
scatter(r2, flex, c=range(0,100))
Out[71]:
In [54]:
plot(r2)
Out[54]:
In [55]:
plot(flex)
Out[55]:
In [56]:
plot(isoc)
Out[56]:
In [57]:
scatter(r2, flex, c=range(0,100))
Out[57]:
In [100]:
r2, flex,isoc = rc.calc_path(ms, bp, 2, 3)
In [101]:
plot(r2)
Out[101]:
In [102]:
plot(flex)
Out[102]:
In [103]:
scatter(r2, flex, c=range(0,100))
Out[103]:
In [86]:
pcolor(m4)
Out[86]:
In [87]:
pcolor(m3)
Out[87]:
In [88]:
pcolor(m1)
Out[88]:
In [89]:
pcolor(m2)
Out[89]:
In [91]:
r2, flex,isoc = rc.calc_path(ms, bp, 1, 3)
In [92]:
plot(r2)
Out[92]:
In [93]:
plot(flex)
Out[93]:
In [94]:
plot(isoc)
Out[94]:
In [95]:
scatter(r2, flex, c=range(0,100))
Out[95]:
In [7]:
pcolor(m1)
Out[7]:
In [337]:
ps = rc.calc_params(m1)
In [338]:
ps[34]
Out[338]:
In [24]:
np.random.random()/10
Out[24]:
In [364]:
rs = []
for i in xrange(100):
rp = np.tril(np.random.random(size=35*35).reshape((35,35))*np.pi/(10**10), -1)
npr = ps + rp
nm1 = rc.triang_from_params(npr)
rs.append(rc.random_skewers(m1, nm1))
In [365]:
np.median(rs)
Out[365]:
In [344]:
npr = ps + rp
In [347]:
nm1 = rc.triang_from_params(npr)
In [366]:
pcolor(nm1.dot(nm1.T))
Out[366]:
In [342]:
pcolor(m1)
Out[342]:
In [43]:
pcolor(bp[0][1])
Out[43]:
In [23]:
m1_params = bp[0][1]
In [24]:
m1_eigs = eigvals(m1)
plot(m1_eigs)
Out[24]:
In [100]:
m1_params += rt
In [27]:
m1_params.shape
Out[27]:
In [90]:
tm = np.array([[1,2,3],[4,5,6],[7,8,9]])
In [92]:
tm[tril_indices(3)] += 1
In [335]:
np.pi
Out[335]:
In [237]:
rt = np.tril(np.random.random(size=35*35).reshape((35,35)))/10
In [242]:
m1_params = bp[0][1]
m1_params[:,1] += rt[:,1]
In [243]:
new_m1 = rc.triang_from_params(m1_params)
In [244]:
nm1 = np.dot(new_m1, new_m1.T)
pcolor(nm1)
Out[244]:
In [245]:
pcolor(m1)
Out[245]:
In [246]:
plot(eigvals(nm1))
plot(eigvals(m1))
Out[246]:
In [236]:
pcolor(nm1 - m1)
Out[236]:
In [173]:
np.max(nm1 - m1)
Out[173]:
In [229]:
m1_params[:,0]
Out[229]:
In [8]:
import randomCorr as rc
rand_mat = rc.rand_corr(35, 10**-4)
In [9]:
pcolor(rand_mat)
Out[9]:
In [10]:
35*34/2
Out[10]:
In [63]:
[1,2,3,4,5][-3:]
Out[63]:
In [13]:
import randomCorr as rc
In [270]:
def krzCor (cov1, cov2):
# Calculates the Krzanowski correlation between matrices
#
# Args:
# cov.matrix.(1,2): covariance being compared
# ret.dim: number of retained dimensions in the comparison,
# default for nxn matrix is n/2-1
# Return:
# Kzranowski correlation
ret_dim = cov1.shape[0]/2.0 - 1
ev_c1 = np.linalg.eig(cov1)[1][0:ret_dim]
ev_c2 = np.linalg.eig(cov2)[1][0:ret_dim]
s = np.dot(ev_c2.T, ev_c1).dot(np.dot(ev_c1.T, ev_c2))
print np.dot(ev_c1.T,ev_c2)
sl = np.sum(np.linalg.eigvals(s)) / ret_dim
return sl
In [271]:
krzCor(ms[0], ms[1])
Out[271]:
In [84]:
rcParams['figure.dpi'] = 100
rcParams['figure.figsize'] = (20,10)
In [93]:
%load_ext rmagic
In [97]:
m0 = ms[0]
m1 = ms[1]
In [99]:
%Rpush m0 m1
In [263]:
%%R
KrzCor <- function (cov.matrix.1, cov.matrix.2, ret.dim = NULL)
# Calculates the Krzanowski correlation between matrices
#
# Args:
# cov.matrix.(1,2): covariance being compared
# ret.dim: number of retained dimensions in the comparison,
# default for nxn matrix is n/2-1
# Return:
# Kzranowski correlation
{
if (is.null(ret.dim))
ret.dim = dim(cov.matrix.1)[1]/2 - 1
EigenVectors <- function (x) return (eigen(x)$vectors[,1:ret.dim])
A <- EigenVectors (cov.matrix.1)
B <- EigenVectors (cov.matrix.2)
S <- (t(A) %*% B )%*% (t(B) %*% A)
print(t(A) %*% B)
SL <- sum (eigen(S)$values) / ret.dim
return (SL)
}
KrzCor(m0, m1)
In [272]:
def random_skewers(matrix1, matrix2, num_vectors=1000):
traits = matrix1.shape[0]
rand_vec = np.random.multivariate_normal(np.zeros(traits),
np.identity(traits, float),
num_vectors).T
delta_z1 = np.dot(matrix1, rand_vec)
delta_z2 = np.dot(matrix2, rand_vec)
ndelta_z1 = delta_z1/np.sqrt((delta_z1*delta_z1).sum(0))
ndelta_z2 = delta_z2/np.sqrt((delta_z2*delta_z2).sum(0))
return np.mean(np.diag(np.dot(ndelta_z1.T, ndelta_z2)))
In [276]:
reload(rc)
Out[276]:
In [320]:
r2, flex,isoc, rs = rc.calc_path(ms, bp, 0, 1, calc_rs=True)
In [321]:
scatter(rs, r2)
Out[321]:
In [322]:
plot(rs)
plot(r2)
Out[322]:
In [318]:
rr2 = []
for rm in xrange(1000):
rr2.append(rc.calc_r2(rc.rand_corr(35, 10**-4)))
In [319]:
hist(rr2)
Out[319]:
In [293]:
rc.calc_r2(ms[2])
Out[293]:
In [294]:
random_skewers(ms[0], ms[2])
Out[294]:
In [331]:
plot(rs)
plot(r2)
Out[331]:
In [334]:
scatter(r2, rs)
Out[334]:
In [6]:
m = m8
ms = [m]
b_n = rc.triang_decomp(m)
p_n = rc.calc_params(b_n)
bp = [(b_n, p_n)]
for i in xrange(1000):
rand_matrix = rc.rand_corr(35, 10**-4)
b_n = rc.triang_decomp(rand_matrix)
p_n = rc.calc_params(b_n)
ms.append(rand_matrix)
bp.append((b_n, p_n))
In [19]:
r2_a = []
flex_a = []
isoc_a = []
for i in xrange(1,12):
r2, flex,isoc = rc.calc_path(ms, bp, 0, i)
# rand_idx = np.random.randint(0,100, size=3)
# for j in rand_idx:
r2_a.append(r2[1])
flex_a.append(flex[1])
isoc_a.append(isoc[1])
In [20]:
scatter(r2_a, flex_a, c=range(11))
Out[20]:
In [1]:
import randomCorr as rc
In [12]:
rc.calc_r2(m)
Out[12]:
In [13]:
rc.flexibility(m)
Out[13]:
In [17]:
len(r2_a)
Out[17]:
In [15]:
reload(rc)
Out[15]:
In [21]:
r2, flex,isoc = rc.calc_path(ms, bp, 0, 17)
In [22]:
scatter(r2, flex, c=range(100))
Out[22]:
In [ ]: