Você está na página 1de 29

Parcial_3_astroestadistica

June 14, 2017

In [1]: import numpy as np


import scipy as sp
import scipy.stats as st
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
get_ipython().magic(u'matplotlib inline')

1 Codigo para hacer los experimentos

2
#N es el numero de veces que se va a realizar el exprimento # #n es la longitud del experimento #
#f_aj es la funcion de ajuste, f_nor es la funcion para generar el exp # #p_0 es una lista con suposi-
ciones iniciales de los parametros # #opc es 1 o 0. Si es 0 entonces la funcion de ajuste solo tiene
parametros a,b # #si es 1 entonces la funcion de ajuste tiene parametros a,b,c # #xs1 son los valores
de x, si se pasa un int entonces el programa genera los x # #aleatoriamente, si se pasa una lista
el programa usara esa. # #var es la varianza, a y b son los extremos para generar los aleatorios. # # #
######################################################################################

In [ ]: def exp1(N,n,f_aj,f_nor,xs1,p_0,opc,var,a1,b1):
#Almacenamiento
A = []
B = []
C = []
COV = []

#Se usa bounds en curve_fit, dependiendo de si hay 2 o 3


#parametros se usuna u otra de las siguientes
if opc==0:limits=([-10,-10],[10,10])
if opc==1:limits=([-10,-10,-10],[10,10,10])

#Se realiza el experimento N veces


while len(A)<N:
np.random.seed()
if type(xs1)==int:
xs1 = a1 + (b1-a1)*np.random.rand(n)

1
fs1 = []
for j in xrange(len(xs1)):
fs1.append( f_nor(xs1[j]) + np.random.normal(0.0,np.sqrt(var))

try:
popt1,pcov1 = curve_fit(f_aj,xs1,fs1,p0=p_0,bounds=limits)
except:
dummy = 1
continue

A.append(popt1[0])
B.append(popt1[1])

#Si hay 2 parametros para ajustar


if opc==0:C.append(0.0)
#Si hay 3 parametros para ajustar
if opc==1:C.append(popt1[2])
COV.append(pcov1)

D = [A,B,C,COV]

return D

#Funcion que analiza el signo de las matrices de covarianza para dos parame
def Cov1(dat):
Sig = []
for i in xrange(len(dat[3])):
if dat[3][i][0][1]<0.0:
Sig.append(1)
return sum(Sig)

3 Parte 1, Lunes
In [3]: var = 0.1

#Funcion de mapeo
def f1(x):
return 1.5/x

#Funcion de ajuste
def fj1(x,a,b):
return a*x**b

#Datos
xs1 = 0.5 + (3.0-0.5)*np.random.rand(6)
fs1 = []

2
for i in xrange(len(xs1)):
fs1.append( f1(xs1[i]) + np.random.normal(0.0,np.sqrt(0.1)) )

#print xs1

In [4]: #Ajuste
popt,pcov = curve_fit(fj1,xs1,fs1)
a = popt[0]
b = popt[1]

print 'a =',a,'b =',b

#Grafico
xj = np.linspace(0.5,3,100)
plt.plot(xs1,fs1,'bo')
plt.plot(xj,fj1(xj,a,b))

a = 1.42218739513 b = -0.517086892662

Out[4]: [<matplotlib.lines.Line2D at 0x8ac71d0>]

" Los valores de los parametros a y b son cercanos a los esperados. Los que esperabamos
inicialmente eran de a=1.5 y b=-1.0. Aunque en este ajuste no parecen muy similares en muchas
de las otras ocaciones en que se hizo el mismo experimento se obtuvieron valores muy similares a
los esperados. "

3
In [5]: #Experimento 1
#def exp1(N,n,f_aj,f_nor,xs1,p_0,opc,var,a1,b1):

In [6]: #Numero de repeticiones del experimento


b1 = 10
b2 = 100
b3 = 1000
b4 = 10000

#Supocision inicial para los parametros


pi1 = [1.0,0.0]

#Experimento para esas n veces


n1 = exp1(b1,6,fj1,f1,1,pi1,0,var,0.5,3)
n2 = exp1(b2,6,fj1,f1,1,pi1,0,var,0.5,3)
n3 = exp1(b3,6,fj1,f1,1,pi1,0,var,0.5,3)
n4 = exp1(b4,6,fj1,f1,1,pi1,0,var,0.5,3)

In [104]: #Grafica de los valores a contra los b


plt.figure(figsize=(17,17))
plt.subplot(221)
plt.plot(n1[1],n1[0],'bo')

plt.subplot(222)
plt.plot(n2[1],n2[0],'bo')

plt.subplot(223)
plt.plot(n3[1],n3[0],'bo')

plt.subplot(224)
plt.plot(n4[1],n4[0],'bo')

Out[104]: [<matplotlib.lines.Line2D at 0x13c55ab0>]

4
In [110]: #El numero que arroja la funcion Cov nos dice cuantas de las matrices de
#negativo (lo cual implica una relacion inversa entre a y b). En base a e
#de relacion entre parametros.
sig1 = Cov1(n1)
sig2 = Cov1(n2)
sig3 = Cov1(n3)
sig4 = Cov1(n4)
print sig1,sig2,sig3,sig4

2 0 998 10000

" En los graficos de a contra b para el experimento 1 vemos que para 3 de ellos el compor-
tamineto entre a y b es muy similar, si uno aumenta el otro decrece, pero en el correspondiente a las

5
100 iteraciones hay algo raro, este presenta un comportamiento contrario a los otros. Concluimos
que a medida que aumentamos N (numero de iteraciones) se ve con mayor claridad la relacion
que tienen los parametros entre si, el caso de N=100 no se entiende porque el comportamineto es
totalmente contrario al esperado. "

In [8]: #Histogramas
bins1 = 3
bins2 = 10
bins3 = 50
bins4 = 100

plt.figure(figsize=(17,17))
plt.subplot(211)
hist1a = plt.hist(n1[0],bins1,histtype='step',normed= True,label='media = %
hist2a = plt.hist(n2[0],bins2,histtype='step',normed= True,label='media = %
hist3a = plt.hist(n3[0],bins3,histtype='step',normed= True,label='media = %
hist4a = plt.hist(n4[0],bins4,histtype='step',normed= True,label='media = %
plt.xlabel('Parametro a')
plt.legend()

plt.subplot(212)
hist1b = plt.hist(n1[1],bins1,histtype='step',normed= True,label='media = %
hist2b = plt.hist(n2[1],bins2,histtype='step',normed= True,label='media = %
hist3b = plt.hist(n3[1],bins3,histtype='step',normed= True,label='media = %
hist4b = plt.hist(n4[1],bins4,histtype='step',normed= True,label='media = %
plt.xlabel('Parametro b')
plt.legend()

Out[8]: <matplotlib.legend.Legend at 0x923ee30>

6
" A modo general, todos los histogramas estan normalizados, representan una densidad de
probabilidad, el area bajo sus curvas es 1. Vemos que a medida que se aumenta el valor de N se
obtienen mejores resultados para cada parametro, tanto a como b mejoran con N. Su distribucion
tiene forma simetrica respecto al valor maximo del histograma que se hace mas clara al aumentar
el numero de iteraciones por lo cual tomamos el valor de la media usando np.mean(). "
In [9]: #Experimento 2
#exp1(N,n,f_aj,f_nor,p_0,opc,var,a1,b1)
In [10]: #Se fijan para x los valores obtenidos inicialmente
xs_exp2 = xs1
n12 = exp1(b1,6,fj1,f1,xs_exp2,pi1,0,var,0.5,3)
n22 = exp1(b2,6,fj1,f1,xs_exp2,pi1,0,var,0.5,3)
n32 = exp1(b3,6,fj1,f1,xs_exp2,pi1,0,var,0.5,3)
n42 = exp1(b4,6,fj1,f1,xs_exp2,pi1,0,var,0.5,3)

7
In [71]: #Grafica de los valores a contra los b
plt.figure(figsize=(17,17))
plt.subplot(221)
plt.plot(n12[1],n12[0],'bo')
plt.xlabel('b')
plt.ylabel('a')

plt.subplot(222)
plt.plot(n22[1],n22[0],'bo')
plt.xlabel('b')
plt.ylabel('a')

plt.subplot(223)
plt.plot(n32[1],n32[0],'bo')
plt.xlabel('b')
plt.ylabel('a')

plt.subplot(224)
plt.plot(n42[1],n42[0],'bo')
plt.xlabel('b')
plt.ylabel('a')

Out[71]: <matplotlib.text.Text at 0x139a3730>

8
In [119]: #Calculo signo de la matriz de covarianza
sig12 = Cov1(n12)
sig22 = Cov1(n22)
sig32 = Cov1(n32)
sig42 = Cov1(n42)
print sig12,sig22,sig32,sig42

2 46 399 4097

" Vemos ahora que la relacion entra a y b ya no es tan clara, aparece ahora alta discrepancia
entre el numero de matrices de covarianza que dan una relacion positiva o negativa, llegando a
ser aproximadamente la mitad en cada caso de unos y otros. Concluimos entonces que al fijar el
valor de los x se esta incertando un error en el experimento. "

9
In [12]: #Histogramas

plt.figure(figsize=(17,17))

plt.subplot(211)
hist1a2 = plt.hist(n12[0],bins1,histtype='step',normed= True,label='N, med
hist2a2 = plt.hist(n22[0],bins2,histtype='step',normed= True,label='N, med
hist3a2 = plt.hist(n32[0],bins3,histtype='step',normed= True,label='N, med
hist4a2 = plt.hist(n42[0],bins4,histtype='step',normed= True,label='N, med
plt.xlabel('Parametro a')
plt.legend()

plt.subplot(212)
hist1b2 = plt.hist(n12[1],bins1,histtype='step',normed= True,label='N, med
hist2b2 = plt.hist(n22[1],bins2,histtype='step',normed= True,label='N, med
hist3b2 = plt.hist(n32[1],bins3,histtype='step',normed= True,label='N, med
hist4b2 = plt.hist(n42[1],bins4,histtype='step',normed= True,label='N, med
plt.xlabel('Parametro b')

plt.legend()

Out[12]: <matplotlib.legend.Legend at 0xc0bbdd0>

10
" En este segundo experimento los valores obtenidos de los parametros son muy similares
a los obtenidos en el experimento 1 y de hecho un poco mejores (muy poco), entonces al fijar x
podriamos decir que forzamos nuestro experimento a que nos de un resultado, lo cual tambien da
cuenta del sesgo mensionado anteriormente. "

4 Parte 2, modelo con Background


In [13]: #Funcion de mapeo
def f2(x):
return 1.5/x + 0.5

#Funcion de ajuste
def fj2(x,a2,b2,c2):

11
return a2*x**b2 + c2

#Datos
xs2 = 0.5 + (5.0-0.5)*np.random.rand(14)
fs2 = []

for i in xrange(len(xs2)):
fs2.append( f2(xs2[i]) + np.random.normal(0.0,np.sqrt(var)) )
#print xs2

In [14]: #Ajuste
popt2,pcov2 = curve_fit(fj2,xs2,fs2,p0=[1.0,-0.5,0.0],maxfev=10000)
a2j = popt2[0]
b2j = popt2[1]
c2j = popt2[2]

#Grafico

a = popt[0]
b = popt[1]

print 'a1 =',a,'b1 =',b


print 'a2 =',a2j,'b2 =',b2j,'c2 =',c2j

#Sin Background
xj = np.linspace(0.5,5.0,100)
plt.plot(xs1,fs1,'ro',label='Exp sin Background')
plt.plot(xj,fj1(xj,a,b),color='red',label='Ajuste sin Background')

#Con Background
xj2 = np.linspace(0.5,5.0,100)
plt.plot(xs2,fs2,'bo',label='Exp con Bacground')
plt.plot(xj2,fj2(xj2,a2j,b2j,c2j),color='blue',label='Ajuste, Background')

plt.xlabel('x')
plt.ylabel('F(con y sin background)')
plt.legend()

a1 = 1.42218739513 b1 = -0.517086892662
a2 = 1.39347212627 b2 = -1.5393435969 c2 = 0.694771229719

Out[14]: <matplotlib.legend.Legend at 0xbd7dc50>

12
" En los dos casos los valores de los parametros son cercanos a los esperados, pero en el
caso del background estos valores son mas diferentes (esto no es tan claro en estos valores, pero
en la mayoria de los casos que se corrio el experimento esto paso). Podriamos decir que la baja
en la calidad de los datos al introducir un tercer parametro es que este se relaciona con los dos
primeros afectandolos considerablemente. Tambien se debe tener en cuenta el intervalo en el cual
se esta haciendo el ajuste para el background, es mayor para este, y como se dijo anteriormente al
aumentar el intervalo del ajuste tambien se deberia aumentar el numero de puntos para mejorar
el ajuste de los parametros. Esperariamos entonces que el valor de los parametros del ajuste varie
segun dos cosas en especifico. La primera es con la longitud del intervalo, la segunda es con el
numero de puntos con que se trabaja en dicho intervalo.De modo que al aumentar el intervalo
tambien se aumente el numero de puntos para el calculo de parametros en ese intervalo. El valor
del background nos introduce un factor adicional a los datos de modo que los transporta a todos
arriba en el eje y en un factor que se hace aproximadamente constante a mayores valores de x y
que no lo es para los pequeos valores. "

In [15]: #Experimento 1
#def exp1(N,n,f_aj,f_nor,xs1,p_0,opc,var,a1,b1)

In [115]: pi2 = [1.0,-0.5,0.0]


np21 = exp1(b4,14,fj2,f2,1,pi2,1,var,0.5,5.0)

In [116]: #Relacion parametros b-a, c-a y c-b


plt.figure(figsize=(10,15))

#Relacion b-a

13
plt.subplot(311)
plt.plot(np21[1],np21[0],'bo')
plt.title('b-a')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np21[2],np21[0],'bo')
plt.title('c-a')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np21[2],np21[1],'bo')
plt.title('c-b')
plt.xlabel('c')
plt.ylabel('b')

Out[116]: <matplotlib.text.Text at 0x14fa4530>

14
15
In [137]: def Cov2(dats):
ab = []
ac = []
bc = []
for i in xrange(len(dats[3])):
#Relacion entre b y a
if dats[3][i][0][1]<0.0:
ab.append(1)
#Relacion entre a y c
if dats[3][i][0][2]<0.0:
ac.append(1)
#Relacion entre b y c
if dats[3][i][1][2]<0.0:
bc.append(1)
print 'ab = ',sum(ab),',ac = ',sum(ac),',bc = ',sum(bc)
return

In [138]: Cov2(np21)

ab = 2812 ,ac = 7952 ,bc = 9998

" Si comparamos la relacion entre a y b para la parte 1 (sin background) y la parte 2 (back-
ground) vemos que no son similares, esto es debido a la aparicion de un tercer parametro:c, esto
nos dice que el nuevo parametro afecta de manera crucial la manera en que a y b se estaban
relacionando, que ahora los valores del parametro a no son solo afectados por b, tambien por c
e igual para b. Vemos en la anterior linea de codigo que la relacion entre a y b es mayoritaria-
mente positiva (el codigo arroja el numero de menos), mas sin embargo una buena parte de los
datos tienen comportamiento negativo. Se sigue entonces corroborando lo dicho anteriormente,
el nuevo parametro c afecta drasticamente la relacion entre a y b. No sabemos claramente como
es esta relacion pues en el grafico esto es dificil de deducir. Para la relacion entre ac y bc se podria
decir que es decreciente, en especial para bc, en el caso ac sucede algo parecido a lo del caso ab.
"

In [117]: #Histogramas de a,b,c


plt.figure(figsize=(12,7))
hista_p2 = plt.hist(np21[0],bins4,histtype='step',normed= True,label='N,
histb_p2 = plt.hist(np21[1],bins4,histtype='step',normed= True,label='N,
histc_p2 = plt.hist(np21[2],bins4,histtype='step',normed= True,label='N,

plt.xlabel('Parametro a,b,c')
plt.legend()

Out[117]: <matplotlib.legend.Legend at 0x1568d9f0>

16
" Ahora para el caso de los tres parametros es claro que no hay una distribucion gaussiana
para los parametros a,b y c como sucedia en la parte 1 (para a y b). Claramente es debido a la
presencia del tercer parametro, vemos que para a si hay una distribucion un poco mas similar a
una gaussiana. Para b y c la distribucion si es muy diferente a la gaussiana. Suponemos que este
comportamiento se debe a que el parametro c restringe los valores que puedan tomar a y b, porque
y como lo hace no es muy claro en este punto. Supongamos que otrogamos a los parametros por
valor el de la media de los datos, para otrogar una medida del error de estos usamos el valor de la
desviacion estandar, que lo obtendriamos usando el comando np.std().
"

In [19]: #Experimento 2, fijando los x


#def exp1(N,n,f_aj,f_nor,xs1,p_0,opc,var,a1,b1)

In [20]: np22 = exp1(b4,14,fj2,f2,xs2,pi2,1,var,0.5,5.0)

In [21]: #Histogramas de a,b,c


plt.figure(figsize=(12,7))
hista_p2 = plt.hist(np22[0],bins4,histtype='step',normed= True,label='N, m
histb_p2 = plt.hist(np22[1],bins4,histtype='step',normed= True,label='N, m
histc_p2 = plt.hist(np22[2],bins4,histtype='step',normed= True,label='N, m

plt.xlabel('Parametro a,b,c')
plt.legend()

Out[21]: <matplotlib.legend.Legend at 0xd655310>

17
In [22]: #Relacion parametros b-a, c-a y c-b
plt.figure(figsize=(10,15))

#Relacion b-a
plt.subplot(311)
plt.plot(np22[1],np22[0],'bo')
plt.title('b-a')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np22[2],np22[0],'bo')
plt.title('c-a')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np22[2],np22[1],'bo')
plt.title('c-b')
plt.xlabel('c')
plt.ylabel('b')

Out[22]: <matplotlib.text.Text at 0xd6c3150>

18
19
In [140]: Cov2(np22)

ab = 0 ,ac = 10000 ,bc = 10000

" Ahora, si fijamos los x mejora la relacion entre ellos. ab es totalmente creciente y ac, bc es
totalmente decreciente. Esto debe ser tambien muestra del hecho de que al fijar los valores de x
se esta imponiendo condiciones sobre los posibles resultados del experimento. Los valores que se
obtienen para los parametros son algo ambiguos, por esto no seria bueno dar una estimacion de
ellos para este caso, de cualquier manera dariamos para la incertidumbre de las medidas al igual
que antes la desviacion estandar de los datos. "

5 Parte 3
In [52]: #Intervalo 0.5,3
np3int1 = exp1(b4,14,fj2,f2,1,pi2,1,var,0.5,3.0)

In [53]: #Intervalo 3.5,5


np3int2 = exp1(b4,14,fj2,f2,1,pi2,1,var,3.5,5.0)

In [54]: #Con 30 datos


np3int3 = exp1(b4,30,fj2,f2,1,pi2,1,var,0.5,3.0)

In [55]: #Intervalo 0.5,7


np3int4 = exp1(b4,14,fj2,f2,1,pi2,1,var,0.5,7.0)

In [56]: #Copias de seguridad


"""
np.savetxt(part1_exp11,n1)
np.savetxt(part1_exp12,n2)
np.savetxt(part1_exp13,n3)
np.savetxt(part1_exp14,n4)

np.savetxt(part1_exp21,n12)
np.savetxt(part1_exp22,n22)
np.savetxt(part1_exp23,n32)
np.savetxt(part1_exp24,n42)

np.savetxt(part2_exp1,np21)
np.savetxt(part1_exp2,np22)
"""

Out[56]: '\nnp.savetxt(part1_exp11,n1)\nnp.savetxt(part1_exp12,n2)\nnp.savetxt(part

In [57]: #Relacion parametros b-a, c-a y c-b


plt.figure(figsize=(10,15))

#Relacion b-a
plt.subplot(311)

20
plt.plot(np3int1[1],np3int1[0],'bo')
plt.title('b-a, intervalo (0.5-3)')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np3int1[2],np3int1[0],'bo')
plt.title('c-a, intervalo (0.5-3)')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np3int1[2],np3int1[1],'bo')
plt.title('c-b, intervalo (0.5-3)')
plt.xlabel('c')
plt.ylabel('b')

Out[57]: <matplotlib.text.Text at 0x10ce9690>

21
22
In [58]: #Relacion parametros b-a, c-a y c-b
plt.figure(figsize=(10,15))

#Relacion b-a
plt.subplot(311)
plt.plot(np3int2[1],np3int2[0],'bo')
plt.title('b-a, intervalo (3.5-5)')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np3int2[2],np3int2[0],'bo')
plt.title('c-a, intervalo (3.5-5)')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np3int2[2],np3int2[1],'bo')
plt.title('c-b, intervalo (3.5,5)')
plt.xlabel('c')
plt.ylabel('b')

Out[58]: <matplotlib.text.Text at 0x11701c90>

23
24
In [61]: #Relacion parametros b-a, c-a y c-b
plt.figure(figsize=(10,15))

#Relacion b-a
plt.subplot(311)
plt.plot(np3int3[1],np3int3[0],'bo')
plt.title('b-a, 30 datos,(0.5-7)')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np3int3[2],np3int3[0],'bo')
plt.title('c-a, 30 datos,(0.5-7)')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np3int3[2],np3int3[1],'bo')
plt.title('c-b, 30 datos,(0.5-7)')
plt.xlabel('c')
plt.ylabel('b')

Out[61]: <matplotlib.text.Text at 0x12272490>

25
26
In [60]: #Relacion parametros b-a, c-a y c-b
plt.figure(figsize=(10,15))

#Relacion b-a
plt.subplot(311)
plt.plot(np3int4[1],np3int4[0],'bo')
plt.title('b-a, intervalo (0.5-7)')
plt.xlabel('b')
plt.ylabel('a')

#Relacion c-a
plt.subplot(312)
plt.plot(np3int4[2],np3int4[0],'bo')
plt.title('c-a, intervalo (0.5-7)')
plt.xlabel('c')
plt.ylabel('a')

#Relacion c-b
plt.subplot(313)
plt.plot(np3int4[2],np3int4[1],'bo')
plt.title('c-b, intervalo (0.5-7)')
plt.xlabel('c')
plt.ylabel('b')

Out[60]: <matplotlib.text.Text at 0x11e077b0>

27
28
In [142]: #Analisis parte 3

In [144]: print 'intervalo 0.5,3'


Cov2(np3int1)
print 'intervalo 3.5,5'
Cov2(np3int2)
print '30 datos'
Cov2(np3int3)
print 'intervalo 0.5,7'
Cov2(np3int4)

intervalo 0.5,3
ab = 0 ,ac = 10000 ,bc = 10000
intervalo 3.5,5
ab = 6769 ,ac = 6826 ,bc = 6406
30 datos
ab = 0 ,ac = 10000 ,bc = 10000
intervalo 0.5,7
ab = 0 ,ac = 10000 ,bc = 10000

" Vemos que a cuando manejamos un intervalo que tienen en cuenta los valores de x ceranos
a 0 la relacion entre parametros es siempre muy definida, en el caso de el intervalo 3.5,5 esta no es
clara como se observa en los anteriores valores y en el grafico correspondiente. "
" Usamos ahora el valor de la mediana para dar una idea del valor esperado de los paramet-
ros, usamos esta y no la media pues la mediana es un valor fijo en nuestros calculos, se posiciona
donde la probabilidad corresponde al 50-percentil. Por lo cual es una mejor estimacion de los
parametros y es mas util para dar informacion del error de nuestra medida. Usaremos np3int3
pues se hizo para 30 datos. "

In [152]: am1 = np.median(np3int3[0])


bm1 = np.median(np3int3[1])
cm1 = np.median(np3int3[2])
print am1,bm1,cm1
print np.mean(np3int3[0]), np.mean(np3int3[1]), np.mean(np3int3[2])

1.52551891026 -0.993927931824 0.478435455791


2.19452558498 -1.01933015241 -0.200378886773

" Vemos que a comparacion de la parte 2 donde se uso la media, las medianas dan un mejor
estimativo de los valores de los parametros obtenidos "

In [ ]:

29

Você também pode gostar