Archivo del Autor: rnica

Curso práctico de análisis de datos con R

Aquí un curso de R para seguir.

Recuerden que R es un software libre para el tratamiento estadístico de datos. Su fuerte son los más de 5 mil paquetes para análisis estadísticos, econométricos y financiero. Dificilmente algo que quieras hacer no esté ahí, lo que convierte a R en el software cuantitativo de moda en las universidades.

Espero que lo aprovechen.

Obtener Series de Fibonacci en R y Python

La sucesión o serie de fibonacci empieza con los números 1 y 1, luego cada término es la suma de los últimos dos términos.

1, 1, 2, 3, 5, 8, 13, 21, 34 …

Por medio de un poco de programación podemos obtenerla con cualquier software cuantitativo. En este ejemplo lo haremos en R y en Python. Con la palabra mágica while.

http://www.theswarmlab.com/wp-content/uploads/2014/01/R-Python.jpg

En R

Ver mas

 

Hacer un mapa de Nicaragua en R

El gran número de programadores que han apoyado a la iniciativa libre de R, ha influído en muchos de sus usos avanzados, algunas de estos usos apenas con mínima relación con las estadísticas. Ahora en R podemos crear páginas web de informes, hacer presentaciones, elaborar documentos, gráficos dinámicos, analizar canciones, mapas, etc. Lo bueno que nos disponen de sus paquetes para trabajar estos elementos que hace años se pensaban en R y sin conocimientos de programación no llegaríamos tan lejos. Ahora pues veremos como trabajar con mapa.

Los trazos y datos de un mapa están contenidos en un archivo llamado shapefile, existen otras extensiones a shp  pero esta es más conocida en el mundo del trazo de mapas.

Primero necesitamos ese shapefile y segundo, tener claro qué datos vamos a representar en el mapa.

El conjunto de paquetes a usar son:

install.packages(“sp”)

install.packages(“maptools”)

install.packages(“ggplot2″)

install.packages(“maptools”)

Continuar…

Rplot1

Deybi Morales León

Economista

morales.economia@gmail.com

 

Descomposición estacional en R (Parte I)

He estado escribiendo estos tutoriales para el blog institucional de la UCA. Agradezco en nombre de la iniciativa de Usuarios R Nicaragua el espacio otorgado. El blog está en: http://blog.uca.edu.ni/rnica/ . Puede ser consultado, comentado y quienes deseen agregar aportes, con gusto. El blog está enfocado a la programación para el tratamiento gráfico y estadísticos de datos.
Veamos la descomposición estacional de series de tiempo. En este ejemplo vamos a usar una base de datos puesta a disposición por Paul S.P. Cowpertwait. Tasas de desempleo de los Estados Unidos desde enero 1996 hasta octubre del 2006.
Especificando la dirección web de los datos
USdesempleo <- ‘http://staff.elena.aut.ac.nz/Paul-Cowpertwait/ts/USunemp.dat’
Importando los datos
US.mensual <- read.table(USdesempleo, header = T)
Visualizando los datos
View(US.mensual)
Se nota no es una serie de tiempo. Entonces hacemos la conversión.

attach(US.mensual)

US.mensual.ts <- ts(USun, start=c(1996,1), end=c(2006,10), freq=12)
US.mensual.ts

Note hemos importado una serie de tiempo.

 

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1996 5.6 5.5 5.5 5.6 5.6 5.3 5.5 5.1 5.2 5.2 5.4 5.4
1997 5.3 5.2 5.2 5.1 4.9 5.0 4.9 4.8 4.9 4.7 4.6 4.7
1998 4.6 4.6 4.7 4.3 4.4 4.5 4.5 4.5 4.6 4.5 4.4 4.4
1999 4.3 4.4 4.2 4.3 4.2 4.3 4.3 4.2 4.2 4.1 4.1 4.0
2000 4.0 4.1 4.0 3.8 4.0 4.0 4.0 4.1 3.9 3.9 3.9 3.9
2001 4.2 4.2 4.3 4.4 4.3 4.5 4.6 4.9 5.0 5.3 5.5 5.7
2002 5.7 5.7 5.7 5.9 5.8 5.8 5.8 5.7 5.7 5.7 5.9 6.0
2003 5.8 5.9 5.9 6.0 6.1 6.3 6.2 6.1 6.1 6.0 5.9 5.7
2004 5.7 5.6 5.7 5.5 5.6 5.6 5.5 5.4 5.4 5.4 5.4 5.4
2005 5.2 5.4 5.1 5.1 5.1 5.0 5.0 4.9 5.1 4.9 5.0 4.9
2006 4.7 4.8 4.7 4.7 4.6 4.6 4.8 4.7 4.6 4.4

 

 

Si ha quedado como el ejemplo, ha sido un éxitos. 

 

Obtenemos opcional una visualización gráfica de la serie:

 

plot(US.mensual.ts, col = "Blue", ylab="Tasas de desempleo", xlab="Meses", lwd = 3)
Para una descomposición multiplicativa aplicamos las líneas:
US.mensual.ts.decom <- decompose(US.mensual.ts, type = “multiplicative”)
plot(US.mensual.ts.decom)

 

 

Para una descomposición aditiva aplicamos las líneas:


 US.mensual.ts.decom <- decompose(US.mensual.ts, type = “additive”)

 

plot(US.mensual.ts.decom)

 

En la parte 2 se enseñará a extraer los datos de las gráficas.
Deybi Morales
Economista
morales.economia@gmail.com

 

Extraer lista de Sismos de Ineter con R

En este post quiero mostrarle un truco para extraer la lista de los sismos del día desde la página del Ineter utilizando el programa R.

1.Instalar el paquete rvest y activarlo
2.Especificar la página web con el html de los datos que publica www.ineter.com, a este truco le llamaría barrer todo html en busca del origen de la información, es la página web que necesitamos.
3.Visualizar el html de origen de la información para ubicar el prefijo que separa la información que queremos.
4.Por último si quiero imprimir en la consola solo ejecuto datos, a pesar de que mi última línea ha creado un archivo de txt llamado Sismos en mis documentos para que ubiques y lo habras.

##########################################
install.packages(“rvest”)
library(rvest)
Sismos <- html(“http://webserver2.ineter.gob.ni/geofisica/sis/events/sismos.php”)
datos <- Sismos %>%
html_nodes(“pre”) %>%
html_text()
write.table(datos, ‘Sismos.txt’, sep=’\t’)
############################################

Para visualizar los html ejecute:
html(“http://www.ineter.gob.ni“)
html(“http://webserver2.ineter.gob.ni/geofisica/sis/events/sismos.php”)

 

Econometría en R project. Salida de Regresión. Damodar Gujarati. (Ejemplo Pag. 5)

Tabla I.1. Datos sobre Y (gasto de consumo personal) y X (producto interno bruto, 1960-2005), en miles de millones de dólares de 2000. Página 6. Econometría. 5 edición, Damodar Gujarati.

Este ejemplo nos solicita estimar los parámetros de la función consumo. Esto es análisis de regresión.

Verifique en el libro la ecuación con los parámetros calculados. ¿Cómo hacerlo con R?

Primeramente obtenga los datos. Estos están subidos en el siguiente enlace:

https://www.facebook.com/download/367134676814772/Table%20I_1.csv

Al dar clic puede descargarlo y exportarlo a R. Sino pues respete la sintaxis que lo importa desde el internet a R.

tablaI.1 <- read.table(‘https://www.facebook.com/download/824826450907183/Table%20I_1.csv’, sep=’,’ , header=TRUE) 

Si no ha dado error, se ha importado con éxito. Si desea ver la tabla aplique:

View(tablaI.1)

La función para ejecutar un mínimos cuadrado ordinario es lm. No olvidar de poner la virgulilla ~. En windows se puede con las combinaciones Alt 126.   


Un attach para separar la variables de forma temporal en la memoría virtual de R. Esto ayuda a llamarla por su propio nombre.

 
attach(tablaI.1)
reg <- lm(PCE.Y.~GDP.X.)

 

Al nombrar reg. Aparecerá una salida  particular con solo coeficientes.

reg

Call:
lm(formula = PCE.Y. ~ GDP.X.)

Coefficients:
(Intercept)       GDP.X.  
  -299.5913       0.7218 


Sin embargo la forma completa de salida es aplicando summary a reg.

Call:
lm(formula = PCE.Y. ~ GDP.X.)

Residuals:
     Min       1Q   Median       3Q      Max 
-151.094  -50.358   -6.161   37.199  165.532 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -2.996e+02  2.876e+01  -10.41 1.88e-13 ***
GDP.X.       7.218e-01  4.423e-03  163.19  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 73.57 on 44 degrees of freedom
Multiple R-squared:  0.9984,	Adjusted R-squared:  0.9983 
F-statistic: 2.663e+04 on 1 and 44 DF,  p-value: < 2.2e-16


Para graficarlo:

plot(reg) 

 

 

 

 

Al dar enter llegaremos a cuatro gráficos para testear la regresión.

Pero el señor Gujarati presenta una gráfica de ejes x y de las variable. Esto es sencillo.

plot( GDP.X., PCE.Y. )

abline(reg)

 

 
 Listo ya hemos hecho una salida de regresión del PIB en función del Consumo.
 
Deybi Morales León
morales.economia@gmail.com
Economista

Ejemplo 2.5. Econometría. 5 edición. Damodar Gujarati. (R project)

Ejemplo 2.5. Econometría. 5 edición. Damodar Gujarati.

La tabla 2.6 proporciona datos sobre el nivel de estudios (medido en años de
escolaridad), el salario promedio por hora devengado por las personas
por nivel de escolaridad y el número de personas en un nivel de
estudios. Erns Berndt obtuvo originalmente los datos de la tabla de la
encuesta de población de mayo de 1985.

Trazar el salario promedio en función del grado de escolaridad.

Archivo en: https://www.facebook.com/download/1560475107569756/Table%202_6.csv

Importación del archivo

tabla2.6 <- read.table(“https://www.facebook.com/download/1560475107569756                          /Table%202_6.csv”, sep=”,”, header=TRUE)

Para observar

View(tabla2.6)

 

Escolaridad Salario_Promedios Numero_personas
1 6 4.4567 3
2 7 5.7700 5
3 8 5.9787 15
4 9 7.3317 12
5 10 7.3182 17
6 11 6.5844 27
7 12 7.8182 218
8 13 7.8351 37
9 14 11.0223 56
10 15 10.6738 13
11 16 10.8361 70
12 17 13.6150 24
13 18 13.5310 31

Graficar El salario promedio en función del grado de escolaridad.

Colocar según x, y

plot(tabla2.6$Escolaridad, tabla2.6$Salario_Promedios,
type=”b”, xlab= “Escolaridad”, ylab= “Salario Promedio”)

 

 

 


Deybi Morales

Economista 

Importar serie de tiempo a R o convertir a serie de tiempo

Una variable mensual compuesta por los Activos del Banpro, Bancentro, Bdf, Bac, Procredit y Citibank desde el 2010 al 2014 puede ser importado desde excel guardando en  formato delimitado por comas, csv. Ser usaria la función read.csv() para leerlo.

Para este ejemplo el archivo está adjunto en:

http://raw.githubusercontent.com/usuariosrnicaragua/Datos/master/Activos.csv

Puedes abrir el enlace, observar el archivo y descargarlo de forma manual. Una columna son los meses y la segunda los Activos en millones de dólares.

La dirección se obtiene dando clic derecho-propiedades.

 
Para importar. Observe la ubicación entre comillas donde he guardado el archivo, no olvide invertir las plecas:

Activos <- read.csv(“C:/Users/Deybi.Morales/Documents/GitHub/Datos/Activos.csv”)

Con View se pueden observar mejor ya en R:

View(Activos)

Para convertir a serie de tiempo se usa la función ts(), entre comillas está el nombre de la columna que contiene los Activos en la base importada Activos, año que empieza y frecuencia, se agruparán los valores en meses si es igual a 12, en trimestre si es 4, en semestre si se pone 2, etc:

Activos.ts <- ts(Activos[“Activos”], start = 2010, freq = 12)
Activos.ts

Listo, si desea graficar:

plot(Activos.ts)
Si deseas una descomposición estacional seria otro tema, muy pronto.

Deybi Morales León

Economia UCA

Matrices en R-project (Programación)

Para Usuarios R Nicaragua. Búscanos en Facebook y conviertete en parte de esta comunidad de grupo R.

Practiquemos un poco de matrice en R utilizando las clases de O’reilly, marca registrada.

Hagamos una matrix de 3 filas por 4 columnas, compuestas de ceros.

>matrix(0, 3, 4)

.       [,1] [,2] [,3] [,4]
[1,]     0     0      0     0
[2,]     0     0      0     0
[3,]     0     0      0     0
.La matrix anterior esta conformada con 12 elementos. Vamos pues a llenarla con 12 números. manera sencilla podemos aplicar a forma de ejemplo, la secuencia del 1 al 12.

>a <- 1:12

.Para mostrar el valor de “a” escribimos.

>print(a)

La salidad será:

[1] 1 2 3 4 5 6 7 8 9 10 11 12

.Introduzcamos “a” a la matriz.

 >matrix(a, 3, 4)


.         [,1] [,2] [,3] [,4]
[1,]      1       4     7   10
[2,]      2       5     8    11
[3,]      3       6     9    12
.Debemos destacar que los elementos empiezan a ordenarse de arriba hacia abajo.
Podemos crear una matriz con la función dim.

Por ejemplo, crear el vector, para este caso solo tomaremos “a”.
>dim(a) <- c(3, 4)

.Simplemente colocamos las dimenciones. Como resultado quedará la matriz:

.       [,1] [,2] [,3] [,4]
[1,]      1     4     7    10
[2,]     2     5     8     11
[3,]     3     6     9     12

.”a” ya será una matriz.

.Podemos extraer la el elemento de la tercera fila y segunda columna de esta manera.

.Cambiar el 6 por 4.
a[3, 2] <- 4

.Extraer una fila, por ejemplo, la fila 2.
a[2,]
[1] 2, 5, 8, 11

.Extraer una columna, por ejemplo, la fila 4.
a[,4]
[1] 10, 11, 12

.Extraer múltiples filas y múltiples columnas.
a[, 2:4]
.        [,1] [,2] [,3]
[1,]     4     7    10
[2,]     5     8     11

.Graficar una matriz es sencillo. Podemos utilizar la función contour.
elevacion <- matrix(1, 10, 10)
elevacion[4, 6] <- 0
contour(elevacion)

. En 3D.
>persp(elevacion)

.Una mejor vista


 

>persp(elevaion, expand=0.2)

Hazte miembro de nuestro grupo en facebook o en google plus. Usuarios R Nicaragua.

Lic. Deybi Morales León

morales.economia@gmail.com