gestión y análisis de datos para las ciencias económicas con python y r

36
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R Emancipando la Economía Computacional Francisco Palm Spiralia :: SoLVe :: ULA

Upload: universidad-de-los-andes

Post on 05-Dec-2014

2.550 views

Category:

Technology


1 download

DESCRIPTION

El desarrollo conjunto de Python y R representan probablemente el factor individual más decisivo en el futuro del análisis de datos y el cómputo numérico.

TRANSCRIPT

Page 1: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Gestión y Análisis de Datos para las Ciencias

Económicas conPython y R

Emancipando la Economía Computacional

Francisco PalmSpiralia :: SoLVe :: ULA

Page 2: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿Economía Computacional?

Intersección entre el Análisis Económico y la Informática

Page 3: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿De qué hay que liberarse?

Page 4: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿De qué hay que liberarse?

Herramientas inferiores

Enfoques limitados

Formatos cerrados

Obsolencia planificada

Interoperabilidad reducida

Page 5: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

"...es probable que el crecimiento conjunto de

Python y R sea el factor más importante en el futuro de la estadística computacional".

"The Future of Statistical Computing"Leland Wilkinson

(TECHNOMETRICS, Vol. 50, Num. 4, Nov. 2008),

Page 6: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿Qué es Python?

Page 7: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿Qué es Python?➔Lenguaje dinámico

➔multiparadigma, multipropósito, multiplataforma,

multiimplementación... multi*➔ El único compromiso es la

productividad del programador➔ Viene con las pilas puestas

Page 8: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿Qué es R?

Page 9: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿Qué es R?➔Entorno para computación

estadística y gráficos➔ Un amplio rango de técnicas y

utilidades (2000+ Paquetes) ➔ Varios años por delante de sus

contrapartes privativas (SAS, SPSS).➔ Potentes capacidades gráficas

Page 10: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿En qué se parecen Python y R?

Page 11: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿En qué se parecen Python y R?

Lenguajes interpretados Libres

"Armas secretas" de Google Desarrollados por comunidades internacionales e independientes

Amplia difusión internacional Modulares y extensibles

Page 12: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿En qué se diferencian Python y R?

Page 13: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

¿En qué se diferencian? Python R

 Horizontal, multipropósito

Diseñado para ser sencillo

Técnicas avanzadas de programación

Incluido en Linux

 Vertical, análisis estadístico

Orientación científica

Funcional, pero conservador

Hay que instalarlo (incluso en Linux)

Page 14: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: numpyhttp://numpy.scipy.org/

Page 15: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

>>> from numpy import *>>> from numpy.linalg import solve>>>>>> # Sistema a resolver para (x0,x1,x2):>>> # 3 * x0 + 1 * x1 + 5 * x2 = 6>>> # 1 * x0 + 8 * x2 = 7>>> # 2 * x0 + 1 * x1 + 4 * x2 = 8>>>>>> a = array([[3,1,5],[1,0,8],[2,1,4]])>>> b = array([6,7,8])>>> x = solve(a,b)>>> print x # La solución![-3.28571429 9.42857143 1.28571429]>>>>>> dot(a,x) # Verificaciónarray([ 6., 7., 8.])

Page 16: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: scipyhttp://www.scipy.org/

Page 17: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

from scipy import optimize, specialfrom numpy import *from pylab import *x = arange(0,10,0.01)for k in arange(0.5,5.5): y = special.jv(k,x) plot(x,y) f = lambda x: -special.jv(k,x) x_max = optimize.fminbound(f,0,6) plot([x_max], [special.jv(k,x_max)],'ro')

title(u'Funciones Bessel con optimos locales')show()

Page 18: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: Matplotlibhttp://matplotlib.sourceforge.net/

Page 19: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

from mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cmimport matplotlib.pyplot as pltimport numpy as np

fig = plt.figure()ax = Axes3D(fig)X = np.arange(-5, 5, 0.25)Y = np.arange(-5, 5, 0.25)X, Y = np.meshgrid(X, Y)R = np.sqrt(X**2 + Y**2)Z = np.sin(R)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet)

plt.show()

Page 20: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: persistencia

picklemarshall

sqlitezodb

sqlalchemy

Page 21: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: Djangohttp://www.djangoproject.com/

Page 22: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python: moinhttp://moinmo.in

Page 23: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: Análisis Espacialhttp://cran.r-project.org/web/views/Spatial.html

Page 24: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

library(spatstat)data(cells)cells planar point pattern: 42 points window: rectangle = [0,1] x [0,1]plot(cells)plot(density.ppp(cells))plot(Kest(cells))

Page 25: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: Econometría y series de tiempo

http://cran.r-project.org/web/views/Econometrics.html http://cran.r-project.org/web/views/TimeSeries.html

Page 26: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

> mort = ts(scan("cmort.dat"),start=1970, frequency=52)Read 508 items> part = ts(scan("part.dat"),start=1970, frequency=52)Read 508 items> ded = ts.intersect(mort,part,part4=lag(part,-4),dframe=TRUE)> fit = lm(mort~part+part4, data=ded, na.action=NULL)> summary(fit)

Call:lm(formula = mort ~ part + part4, data = ded, na.action = NULL)

Residuals: Min 1Q Median 3Q Max -22.7429 -5.3677 -0.4136 5.2694 37.8539

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 69.01020 1.37498 50.190 < 2e-16 ***part 0.15140 0.02898 5.225 2.56e-07 ***part4 0.26297 0.02899 9.071 < 2e-16 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 8.323 on 501 degrees of freedomMultiple R-squared: 0.3091, Adjusted R-squared: 0.3063 F-statistic: 112.1 on 2 and 501 DF, p-value: < 2.2e-16

Page 27: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: Finanzashttp://cran.r-project.org/web/views/Finance.html

Page 28: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: Optimizaciónhttp://cran.r-project.org/web/views/Optimization.html

Page 29: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

# Formular el problema: maximizar# x1 + 9 x2 + x3 sujeto a# x1 + 2 x2 + 3 x3 <= 9# 3 x1 + 2 x2 + 2 x3 <= 15#f.obj <- c(1, 9, 3)f.con <- matrix (c(1, 2, 3, 3, 2, 2), nrow=2, byrow=TRUE)f.dir <- c("<=", "<=")f.rhs <- c(9, 15)## Ejecutar.#lp ("max", f.obj, f.con, f.dir, f.rhs)## Salida: Exito: la funcion objetivo es 40.5lp ("max", f.obj, f.con, f.dir, f.rhs)$solution## Salida: [1] 0.0 4.5 0.0## Obtener variables dualeslp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals## Salida: [1] 4.5 0.0 -3.5 0.0 -10.5

Page 30: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: rattlehttp://rattle.togaware.com/

Page 31: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

R: persistencia

read.table, write.table

DBI, filehash, filehashsqlite, RMySQL, RODBC, ROracle,

RPostgreSQLTSSQLite, TSMySQL, TSodbc,

TSPostgreSQL ...

Page 32: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python & R: Sagehttp://www.sagemath.org/

Page 33: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Page 34: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Python & R: manageRhttp://www.ftools.ca/manageR/

Page 35: Gestión y Análisis de Datos para las Ciencias Económicas con Python y R

Notas Finales

Komodo Edit – Sciviews-Khttp://www.sciviews.org/SciViews-K/index.html