Autor Tema: Análisis de coeficientes principales con python

0 Usuarios y 1 Visitante están viendo este tema.

08 Marzo, 2016, 07:20 am
Leído 935 veces

marsi

  • Novato
  • Mensajes: 120
  • Karma: +0/-0
  • Sexo: Femenino
Hola, espero puedan ayudarme con lo siguiente:
Me pidieron realizar el análisis de coeficientes principales, pero no sé si este haciendo el procedimiento correcto a la hora de programar, esto es lo que tengo:
X1=[ 0. 56. 38. 134. 804. 213. 242. 93. 0. 104.
2621. 492. 492. 458. 514. 659. 388. 122. 46. 791.
338. 148. 109. 301. 176. 433. 412. 318. 38. 1280.
237. 169.]
X2=[ 3.95388745 3.54900299 3.50932407 3.75996313 4.1997148 3.5672546
3.73093164 3.53977554 3.52112017 3.90807648 3.94190676 4.10977109
3.99836109 3.88252275 3.88621978 3.89964364 3.70512848 3.63711259
3.77632171 3.90266526 4.01128119 3.89498203 3.51986151 3.92666346
3.79770285 3.66035377 3.85751196 3.58895079 4.12491693 3.7105939
3.75576998 3.86993742]
X3=[ 1.16277303 1.26665937 1.07130697 0.9206689 0. 0.95451146
1.08282505 1.40357496 0.47038141 1.16883537 0.98319487 0.7925191
0.48986252 0.06235258 0.59990324 0.2064521 0.71364469 0.72530484
1.14226178 0.58951107 0.77785688 0.9888759 1.05809137 0.93454583
0.61335991 1.01689888 0.79148081 1.15620494 0.9040832 0.81415175
1.17087652 0.95155396]
X4=[ 8.18027211e-01 3.85560676e-01 3.33333333e-01 2.95681063e-01
0.00000000e+00 2.37639061e-01 6.49621212e-01 1.17543860e+00
0.00000000e+00 3.28566786e-01 0.00000000e+00 5.54967168e-02
2.00951420e-01 1.09383995e-01 3.57781753e-03 1.40845070e-04
9.97326203e-01 1.72413793e-02 2.47165160e+00 2.09319145e-01
4.95088780e-01 6.04782882e-01 3.78960710e-01 2.91821561e-01
1.75732218e-01 6.72000000e-01 9.46208684e-01 2.22696766e-01
8.95442359e-01 3.92599934e-01 2.90559120e-01 1.17413572e+00]
X5=[ 7.09183673e-01 2.61136713e-02 6.91823899e-02 1.66112957e-02
5.91579512e-02 5.33065513e-02 2.46212121e-01 5.38011696e-01
0.00000000e+00 2.82092948e-01 4.86627907e-01 0.00000000e+00
0.00000000e+00 2.47553253e-02 4.47227191e-03 1.40845070e-04
9.49197861e-01 6.48275862e-02 2.31306491e+00 3.77105073e-02
2.93917643e-01 1.82504720e-01 2.15462611e-02 2.41842214e-01
1.02700647e-01 1.69454545e-01 3.38302009e-01 5.24710189e-02
8.12332440e-01 8.40436075e-02 1.83318057e-03 5.87067862e-01]
# Lo primero  es:
sample = np.concatenate((X1,X2,X3,X4,X5), axis=1)
assert [sample.shape == (5,32)," The matrix has not the dimensions 5x32"]
print sample
mean_x = np.mean(sample[1])
mean_y = np.mean(sample[2])
mean_z = np.mean(sample[3])
mean_w = np.mean(sample[4])
mean_v = np.mean(sample[5])
mean_vector = np.array([[mean_x],[mean_y],[mean_z],[mean_w],[mean_v]])
#-----imprimo el vector de Medias

print mean_vector
#-------------En las siguientes parte trato de calcular la matriz de dispersión, pero no me compila mi código y no encuentro como corregirlo
matrix = np.zeros((5,32))
for i in range(sample.shape[1]):
matrix += (sample[:i].reshape(5,1) - mean_vector).dot((sample[:i].reshape(5,1) - mean_vector).T)
print matrix
#------------por otra parte mi pregunta es que después de crear la matriz de dispersión con la siguiente instrucción podría calcular la matriz de covarianza.
cov_mat = np.cov([sample[0:],sample[1:],sample[2:]])
#------------- porque también probé solo con  la siguiente instrucción pero no sé si agá los cálculos de manera correcta o si los demás cálculos que hice antes están de mas
cov_mat = np.cov([X1X2,X3,X4,X5])
Mc=np.corrcoef([X1X2,X3,X4,X5])
print Mc