Sunteți pe pagina 1din 4

Primera Clase Victor Chung

October 9, 2017

In [2]: import pandas as pd


import numpy as np

In [4]: ACP = pd.read_csv("C:/Users/LENOVO/Documents/pythonChungAlva/ACP.csv")


ACP.head()

Out[4]: ventas beneficios ventas_T beneficios_T


0 775104 23795 1.26 0.56
1 775218 58778 1.23 1.93
2 700963 1531 0.70 -0.32
3 674063 -12756 0.49 -0.88
4 631003 14729 0.17 0.20

In [13]: # seleccionamos la Columnas con las ue trbajaremos


ACP1 = ACP.iloc[:,0:2]
print( "Base de Datos \n",ACP1)

Base de Datos
ventas beneficios
0 775104 23795
1 775218 58778
2 700963 1531
3 674063 -12756
4 631003 14729
5 537744 9059
6 489155 12541
7 448465 13495
8 445853 -34824

In [38]: X = ACP1.values
print("Matriz de Datos \n",X)

Matriz de Datos
[[775104 23795]
[775218 58778]
[700963 1531]
[674063 -12756]

1
[631003 14729]
[537744 9059]
[489155 12541]
[448465 13495]
[445853 -34824]]

In [39]: Xt = np.transpose(X)
print("Transpuesta de la Matriz X \n", Xt)

Transpuesta de la Matriz X
[[775104 775218 700963 674063 631003 537744 489155 448465 445853]
[ 23795 58778 1531 -12756 14729 9059 12541 13495 -34824]]

In [40]: XtX = Xt.dot(X)


print("Matriz XtX \n", XtX)

Matriz XtX
[[3473970977082 67309799250]
[ 67309799250 6037226410]]

In [41]: uno = np.ones(len(X))


print("Vector de Unos \n",uno)

Vector de Unos
[ 1. 1. 1. 1. 1. 1. 1. 1. 1.]

In [42]: media = uno.dot(X)/len(X)


print("Vector de Medias \n", media)

Vector de Medias
[ 608618.66666667 9594.22222222]

In [43]: media = np.array([media])


mediat = media.T
print("Transpuesta del Vector de Medias \n",mediat)

Transpuesta del Vector de Medias


[[ 608618.66666667]
[ 9594.22222222]]

In [44]: Varianza = XtX/len(X)-mediat.dot(media)


print("Matriz de Covarianzas \n", Varianza)

2
Matriz de Covarianzas
[[ 1.55800938e+10 1.63964385e+09]
[ 1.63964385e+09 5.78753834e+08]]

In [51]: ds1 = Varianza[0,0]**(1/2)


ds2 = Varianza[1,1]**(1/2)
print("Desviacin estndar de la Ventas = ", ds1)
print("Desviacin estndar de los Beneficios = ", ds2)

Desviacin estndar de la Ventas = 124820.246019


Desviacin estndar de los Beneficios = 24057.3031405

In [47]: diagonal = np.array([1/ds1,1/ds2])


D = np.diagflat(diagonal)
print("Inversa de la Matriz Diagonal \n", D)

Inversa de la Matriz Diagonal


[[ 8.01152082e-06 0.00000000e+00]
[ 0.00000000e+00 4.15674190e-05]]

In [48]: R = D.dot(Varianza).dot(D)
print("Matriz de Correlacin \n", R)

Matriz de Correlacin
[[ 1. 0.54603131]
[ 0.54603131 1. ]]

In [49]: # para Multiplicar sin utilizar .dot


np.linalg.multi_dot([D,Varianza,D])

Out[49]: array([[ 1. , 0.54603131],


[ 0.54603131, 1. ]])

In [50]: eigenvalues, eigenvectors = np.linalg.eig(R)


print("Valores Propios \n", eigenvalues)
print("Vectores Propios \n", eigenvectors)

Valores Propios
[ 0.45396869 1.54603131]
Vectores Propios
[[-0.70710678 -0.70710678]
[ 0.70710678 -0.70710678]]

3
In [52]: # ordenando los valores propios
idx = eigenvalues.argsort()[::-1]
vp = eigenvalues[idx]
vectores = eigenvectors[:,idx]
print("Valores Propios \n", vp)
print("Vectores Propios \n", vectores)

Valores Propios
[ 1.54603131 0.45396869]
Vectores Propios
[[-0.70710678 -0.70710678]
[-0.70710678 0.70710678]]

S-ar putea să vă placă și