• Tidak ada hasil yang ditemukan

Histograma y densidad Gamma

Dalam dokumen Santana El arte de programar en R (Halaman 124-130)

CAPÍTULO 5. ESCRITURA DE FUNCIONES 121

CAPÍTULO 5. ESCRITURA DE FUNCIONES 122

# En primer lugar se indica que se usará

# la biblioteca que contien la función fitdistr():

library(MASS)

# Se llama a la función con: (1) Los datos: pp$Precip,

# (2) La función de densidad: dgamma, y (3) una lista

# que provee los nombres de los parámetros y sus valores

# iniciales; se guarda el resultado en una variable 'ff'

ff <- fitdistr(pp$Precip, dgamma, start=list(shape=p0[1],

scale=p0[2]))

# Veamos el contenido de la variable:

ff

## shape scale

## 4.1128 28.0696

## ( 0.8725) ( 6.3318)

Se puede observar que, los parámetros resultantes no son iguales que los obtenidos con el método anterior; si bien, sus valores son de alguna manera se- mejantes. Para comparar los resultados visualmente, es conveniente tener las curvas correspondientes en un mismo gráfico. Por esta razón se elaborará tam- bién una función particular, como se hizo para el método anterior, que pueda ser graficada mediante la funcióncurve(), de la siguiente manera.

# Los parámetros encontrados se encuentran en los componentes

# de la variable 'ff', como sigue:

# (1) shape: ff$estimate[[1]]

# (2) scale: ff$estimate[[2]]

# Entonces la función particular para estos parámetros es:

dgammaXX <- function(x) {

dgamma(x, shape=ff$estimate[[1]], scale=ff$estimate[[2]]) }

Ahora se procede a hacer la gráfica comparativa con las dos curvas como sigue:

# La primera curva; agregaremos límites al

# eje X para su graficado

curve(dgammaX, col="green", lwd=2, ylab="Densidad",

ylim=c(0,0.012), # Límites de Y

xlim=c(0,max(pp$Precip))) # Límites de X

# La otra curva se agrega a la anterior,

# por eso el argumento add=T

curve(dgammaXX, col="red", lwd=2, add=T)

# Se agregará un leyenda para hacer más

# comprensible el gráfico:

CAPÍTULO 5. ESCRITURA DE FUNCIONES 123

0 50 100 150 200 250

0.000 0.004 0.008 0.012

x

Densidad

Metodo parametros Metodo max simil

Figura 5.13: Comparación de dos métodos de ajuste de la curva de densidad de probabilidades

legend("topright",

c("Metodo parametros", "Metodo max simil"), lwd=2, col=c("green", "red"))

Los resultados del código anterior se pueden apreciar en la Fig. 5.13. Nótese que la diferencia entre ambas curvas es mínima.

Capítulo 6

Graficación con R

Una de las grandes virtudes del lenguaje R, es la facilidad que ofrece para presentar la información correspondiente a los datos que maneja o a los cálcu- los que desarrolla, de una manera gráfica. El lenguaje cuenta, no con uno, sino con varios sistemas, en general separados, para organizar o especificar visua- lizaciones gráficas. En este capítulo se revisará uno de ellos, el sistema gráfico básico, que es el que está inmediatamente disponible en la instalación inicial del lenguaje. Éste, y otros sistemas gráficos disponibles en el lenguaje, se pue- den consultar a más detalle en Murrell [2006], Chang [2012].

6.1. Motivación

Anteriormente, en el capítulo 5, se vio colateralmente la manera para pro- ducir histogramas sencillos, a partir de un conjunto de datos. Sin embargo, en ese capítulo, la producción de estos histogramas, se hizo sin alterar o controlar la apariencia final del gráfico resultante; esto es, se dispuso de las opciones que el sistema otorga por ausencia, o pordefault. No obstante, la Fig. 5.12 de ese ca- pítulo, exhibe una apariencia que no es generada por el código de ejemplo que se muestra allí mismo, en la sección 5.5.6 en la página 120. La producción de la gráfica en cuestión, requiere de la alteración de las opciones que el sistema ofrece por ausencia.

En el código que se muestra a continuación se puede observar cómo se mo- difican algunas de las opciones de apariencia, para generar el gráfico deseado, que se presenta nuevamente en la Fig. 6.1.

hist(pp$Precip, freq=F, breaks=15,

col="blueviolet", # Color de las barras

density=30, # Densidad de sombreado de las barras main="Histograma y densidad Gamma", # Título xlab="precipitacion (mm)", # Etiqueta del eje X ylab="Densidad") # Etiqueta del eje Y

124

CAPÍTULO 6. GRAFICACIÓN CON R 125

Histograma y densidad Gamma

precipitacion (mm)

Densidad

50 100 150 200 250

0.000 0.004 0.008

Figura 6.1: Gráfico con atributos

curve(dgammaX, add=T,

col="green", # Color de la curva lwd=3) # Ancho de línea de la curva

Hasta aquí, se ha visto como producir histogramas y curvas. Existen varios otros tipos de gráficos, además de que hay muchas otras opciones para mani- pular su apariencia; algunos de estos tipos, así como algunas de sus opciones, se revisarán en las siguientes secciones del presente capítulo.

6.2. La función más básica de graficación: plot()

La función más simple para graficar esplot(). Antes de explicar sus po- sibilidades, veremos qué es lo que hace en el caso más sencillo. Para ello se empleará el mismo conjunto de datos último ejemplo del capítulo 5.

plot(pp$Precip) # Produce un gráfico de "dispersión"

CAPÍTULO 6. GRAFICACIÓN CON R 126

Figura 6.2: Un sencillo gráfico dedispersión

El resultado de la operación anterior se puede ver en la Fig. 6.2, con algunas anotaciones acerca de los valores que ha tomado el lenguaje por omisión.

En general, la funciónplot() toma como argumentos dos vectores de la misma dimensión, uno para los valores de las abscisas,x, y otro para los valo- res de las ordenadas,y. Sin embargo, cuando se omite uno de ellos, el lenguaje entiendeque las abscisas serían simplemente los índices de los elementos en el vector provisto, y que las ordenadas serán, por tanto, cada uno de los elemen- tos del vector. De igual manera, el lenguajesuponeque lo que se quiere graficar son los puntos como tal y con el color y tipo de símbolo seleccionados por omisión. La funciónplot()tiene una gran variedad de argumentos que per- miten cambiar ese comportamiento por omisión y que pueden ser consultados en línea mediante la instrucción“?plot”.

En seguida, se grafica la misma información que en el gráfico anterior, pero ahora como líneas azules, y considerando como abscisas los años de los datos, que en este caso son los nombres de los renglones deldata frameque contiene los datos,pp.

# Para el manejo de etiquetas especiales,

# con caracteres "raros para el Inglés",

lab <- "Años" # Etiqueta para las abscisas

plot(as.numeric(rownames(pp)), # las abscisas pp$Precip, # las ordenadas

type="l", # tipo de grafico: líneas

CAPÍTULO 6. GRAFICACIÓN CON R 127

1970 1980 1990 2000 2010

50 100 150 200 250

Dalam dokumen Santana El arte de programar en R (Halaman 124-130)