Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
________________________________________________________________________
PRACTICA 2
INTRODUCCIN AL ANLISIS ESTADSTICO DEL OLEAJE
En el fichero oleaje.dat estn disponibles los registros de oleaje de una localizacin concreta
cada 3 horas. La informacin incluye ao, mes, da y hora de cada registro y la altura de ola
en metros. Se admite que la distribucin de oleaje en rgimen medio sigue una distribucin
logartmica normal, y que los mximos anuales de altura de ola de la serie son una variable
aleatoria que se distribuye segn una Gumbel de mximos. Se pide:
1. Dibuja los histogramas de altura de ola para cada uno de los meses del ao.
2. Dibuja el grfico boxplot para analizar de forma conjunta los oleajes de rgimen medio
de cada uno de los meses. Comenta los resultados haciendo referencia a si hay
estacionalidad, como evolucionan los valores medios y varianzas a lo largo del ao, y si
las distribuciones tienen coeficientes de asimetra positivos o negativos y por qu.
Consultar el comando boxplot() de Matlab o el comando PERCETIL en Excel.
3. Realiza un ajuste en papel probabilstico (con ayuda de Excel o Matlab) de las series
mensuales para las distribuciones Normal y LogNormal. Explique paso a paso el
procedimiento realizado, anexe las grficas y discuta los resultados obtenidos de manera
comparativa.
SERIE DE TIEMPO:
PROMEDIO = 1.62 m
DESVIACIN ESTNDAR= 0.92
CURTOSIS= 7.42
ASIMETRA= 1.75
Asimetra = Es positiva, sesgo hacia la izquierda, oleajes menores a la media (1.61), de baja altura.
Curtosis = Es positiva, ms apuntada y con colas menos anchas que la normal. leptocrtica,
AJUSTE NORMALIZADO:
ALTURAS = Log (ALTURAS)
PROMEDIO = 0.346113475246
DESVIACIN ESTNDAR= 0.512812450205
CURTOSIS= 2.79654714586
ASIMETRA= 0.25024008726
Asimetra = Es cercana a cero (0), datos sin sesgo.
Curtosis = Cercana a 3, Mesocurtica.
AGRUPACIN DE DATOS MENSUALES:
1. import datetime
2. import matplotlib.pyplot as plt
3. import numpy as np
4. import scipy.stats as sp
5. import pandas as pd
6. from scipy.stats import norm
7.
8.
9. Datos = np.genfromtxt ('./oleaje.dat', dtype = str)
10. Datos
11.
12. FECHAS = []
13. ALTURAS = []
14.
15. for i in range (len(Datos)):
16. FECHAS.append(datetime.datetime(int(Datos[i,0]), int(Datos [i,1]),int(Datos [i
,2]), int( Datos [i,3])))
17. ALTURAS.append(float (Datos[i,4]))
18.
19.
20. # SERIE DE ALTURA A LO LARGO DEL TIEMPO
21.
22.
23. plt.figure (figsize=[15,6])
24. plt.plot (FECHAS, ALTURAS, linestyle='-.', color='k', alpha=0.5)
25. plt.title(u'Altura de ola significante a lo largo del tiempo', fontsize =15)
26. plt.xlabel(u'FECHA')
27. plt.legend(handles=[L1], loc=4)
28. plt.grid(color = '0.5', linestyle ='--', linewidth=0.5)
29. plt.ylabel ('Hs [m]')
30. L1=plt.axhline(0.24, linestyle= '-.',color='c', label = u'Mn')
31. L2=plt.axhline(10.46, linestyle= '-.',color='r', label = u'Mx = 10.46')
32. plt.legend(handles=[L2], loc=2)
33. plt.savefig('ALTURA_TIEMPO.png')
34.
35.
36. # HISTOGRAMA
37.
38. plt.figure (figsize=[10,6])
39. bins = np.linspace(0, 12, 25)
40. plt.hist(ALTURAS,bins=bins, color = 'r',alpha=0.7, histtype='bar',ec='k')
41. plt.title(u'Histograma de altura de ola',fontsize = 20)
42. plt.xlabel(u'Hs [m]',fontsize = 15)
43. plt.grid(color = '0.5', linestyle ='--', linewidth=0.5)
44. plt.ylabel (u"$n. datos$", fontsize = 15)
45. plt.ticklabel_format(style='sci', axis='y')
46. plt.xticks(np.arange(0., 13., 1.0))
47. plt.savefig('HISTOGRAMA_TOTAL.png')
48.
49. # VARIABLES ESTADISTICAS
50.
51. print 'PROMEDIO =', np.mean(ALTURAS)
52. print 'DESVIACION_ESTANDAR=', np.std(ALTURAS)
53. print 'CURTOSIS=', sp.kurtosis (ALTURAS,axis=0,fisher=False,bias=True)
54. print 'ASIMETRIA=', sp.skew(ALTURAS)
55.
56.
57. # HISTOGRAMA NORMALIZADO
58.
59.
60. plt.figure (figsize=[10,6])
61. bins = np.linspace(-3, 3, 31)
62. plt.hist(np.log(ALTURAS),bins=bins, color = 'r',alpha=0.7, histtype='bar',ec='k')