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

Post on 05-Dec-2014

2.550 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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

Económicas conPython y R

Emancipando la Economía Computacional

Francisco PalmSpiralia :: SoLVe :: ULA

¿Economía Computacional?

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

¿De qué hay que liberarse?

¿De qué hay que liberarse?

Herramientas inferiores

Enfoques limitados

Formatos cerrados

Obsolencia planificada

Interoperabilidad reducida

"...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),

¿Qué es Python?

¿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

¿Qué es 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

¿En qué se parecen 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

¿En qué se diferencian 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)

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

>>> 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.])

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

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()

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

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()

Python: persistencia

picklemarshall

sqlitezodb

sqlalchemy

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

Python: moinhttp://moinmo.in

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

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))

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

> 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

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

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

# 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

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

R: persistencia

read.table, write.table

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

RPostgreSQLTSSQLite, TSMySQL, TSodbc,

TSPostgreSQL ...

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

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

Notas Finales

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

Contacto

francisco.palm@gmail.com fpalm@ula.ve

top related