José Bustos1 & Alex Mellado2

1 José Bustos1 & Alex Mellado2Sesión II.2 José Bustos1 & ...
Author: Carlos Ramírez Padilla
0 downloads 0 Views

1 José Bustos1 & Alex Mellado2Sesión II.2 José Bustos1 & Alex Mellado2 1 Magister Estadística Aplicada, Análisis Estadístico Profesional AESpro. 2 Magister (c) Epidemiología, Departamento de Salud Pública, PUC. Martes 19 de Julio de 2011

2 Pierre Simon, Marqués de Laplace (1749-1827)>(“Es destacable que una ciencia, la cual comenzó con el estudio sobre las chances en los juegos de azar, se haya convertido en el objeto más importante del conocimiento humano… las preguntas más importantes sobre la vida son, en su mayor parte, en realidad sólo problemas de probabilidad” ) Pierre Simon, Marqués de Laplace ( ) AESpro

3 ESTADISTICA DESCRIPTIVA: Comandos básicosUna definición de “estadística descriptiva” es “describir los datos en forma concisa”, la forma más común de describir un conjunto de datos relacionados entre sí es reportar un valor medio y una dispersión alrededor de dicho valor medio (Risk, 2006). edad=c(22,22,23,24,25,25,26,27,28,29,29,29,29,29,31,31,32,33,34,35,35,35,36,38,39,39,42,42,44,44,45,45, 45,47,48,52,59,66,67,69,69) >length(edad) >mean(edad) >median(edad) >moda(edad) >range(edad) >var(edad) [1] >sd(edad) [1] >quantile(edad,0.5) 50% 35 >fivenum(edad) [1] 100*sd(edad)/mean(edad) [1] > length(edad) [1] 41 > mean(edad) [1] > median(edad) [1] 35 > moda(edad) [1] 29 >range(edad) [1] 22 69 >var(edad) >sd(edad) >quantile(edad,0.5) >fivenum(edad) >100*sd(edad)/mean(edad) AESpro

4 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosLa estadística descriptiva nos permite caracterizar con números un conjunto de datos, sin embargo en ciertas ocasiones un gráfico permite comunicar mejor las características de los datos. AESpro

5 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosLa estadística descriptiva nos permite caracterizar con números un conjunto de datos, sin embargo en ciertas ocasiones un gráfico permite comunicar mejor las características de los datos. Gráficos unidimensionales >boxplot() Se usa para graficar una o mas variables en cajas >boxplot(objeto1,main=“titulo principal”,ylab=“nombre y”) >boxplot(edad) >boxplot(edad,main="Edad reproductiva") >boxplot(edad,main="Edad reproductiva", ylab="Edad (años)") # en x? AESpro

6 >hist() ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráficos unidimensionales >hist () se usa para observar la distribución de una variable numérica. Una desventaja del histograma como estimador de una distribución es que su forma depende del ancho elegido para los intervalos, lo que modifica el número de casos en cada barra (y la simetría observada). >hist() >hist(name,main=“titulo", xlab=“titulo",ylab=“titulo")

7 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráficos unidimensionales >Density () Estima la densidad de una variable numérica, usando una grilla de intervalos de la variable y aproximaciones lineales para producir un gráfico continuo. Se grafica con el comando: plot( density(variable) ). > plot( density(edad), main=“Densidad de edad”, xlab=“edad (años)” )

8 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráficos unidimensionales >lines(density(name, na.rm=T) ) El comando lines se usa para agregar información a un gráfico existente. Si usáramos plot( density(talla) ) se borraría el histograma. >hist(edad, probability=T, main="Distribución de edad") > lines( density(edad, na.rm=T) )

9 … más opciones útiles (para hist, plot, etc.)Colores de componentes del gráfico col=“color” # color de las barras col=codigo # color de las barras col.axis=“color” # de valores en ejes X e Y col.lab=“color” # de textos en ejes X e Y col.main=“color” # de texto en título principal col.sub=“color” # de texto en subtítulo código color 1 black 2 red 3 green 4 blue 5 pale blue 6 purple 7 yellow Tamaño de textos cex.axis=valor # de valores en ejes X e Y cex.lab=valor # de textos en ejes X e Y cex.main=valor # de texto en título principal cex.sub=valor # de texto en subtítulo Por defecto, los textos tienen tamaño 1 y el título tiene tamaño 1.2 pulgadas. Fonts font.axis=valor # de valores en ejes X e Y font.lab=valor # de textos en ejes X e Y font.main=valor # de texto en título principal font.sub=valor # de texto en subtítulo valor font 1 plain text 2 bold face 3 italic 4 bold italic

10 #Ejercicio 1: utilice su vector “IMC” y realice un grafico de caja acinturado de color rojo con borde verde. Indique un titulo al gráfico y un nombre a la variable ambos color azul. #Ejercicio 2: utilice su objeto “IMC” y realice un histograma de cinco barras. AESpro

11 main=“texto” # título principal del gráfico ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Gráficos bidimensionales Opciones útiles para gráficos de 2 ejes main=“texto” # título principal del gráfico sub=“texto” # subtítulo del gráfico xlab=“texto” # título para el eje X ylab=“texto” # título para el eje Y xlim=c(0,2) # limites inferior y superior eje X ylim=c(0,250) # limites inferior y superior eje Y probability=T # grafica probabilidad en vez de frecuencias freq=T # grafica frecuencias en vez de probabilidad labels=T # muestra el valor sobre cada barra0

12 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosPar () El comando par permite indicar los parámetros de modo que afecten a todos los gráficos. Además, algunas opciones no pueden darse directamente en hist u otros comandos gráficos, como bg (color de fondo del gráfico) y fg (color de foreground). > par(col.main="blue", cex.main=1.5, fg="black", bg="cyan“, font.main=4) Una de las opciones más importantes de par es la posibilidad de hacer múltiples gráficos sobre un mismo dispositivo, con las opciones mfrow y mfcol. > par(mfrow=c(1,2)) # hace una fila de dos gráficos > par(mfcol=c(2,2)) # hace dos columnas de dos gráficos cada una Para ver una lista de los subcomandos disponibles en par, use el comando > help(par)

13 > hist(edad,xlab=“edad (años)",ylab="Frecuencia",main=“Edad")ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Ejemplo: > par(col.main="blue", cex.main=1.5, fg="black", bg="cyan“, font.main=4) > hist(edad,xlab=“edad (años)",ylab="Frecuencia",main=“Edad") bg (color de fondo del gráfico)

14 opciones útiles (plot):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Gráfico de variable numérica. Index Plot El Index Plot es útil para chequear errores en los datos. El gráfico es de una variable numérica con comando plot, la cual es graficada versus su posición en el vector. opciones útiles (plot): main=“Detección errores” xlab=“Indice” ylab=“Peso(kg)” ylim=c(40,180) col=“black” # color symbol (default) cex= # size symbol (default:1) pch= # tipo symbol (default) > plot(edad) pch symbol 19 solid circle 20 smaller circle 21 circle (default) 22 square

15 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráfico de Normalidad. Comandos qqnorm y qqline El comando qqnorm(variable) hace un gráfico de cuantiles que permite determinar gráficamente si una variable tiene distribución normal y qqline(variable) agrega una línea en 45 grados al gráfico, correspondiente al “ajuste ideal” de los datos. > qqnorm(talla) > qqline(talla)

16 opciones útiles (pie):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Gráfico de variable categórica. Comando pie El comando pie permite hacer un gráfico circular de una variable o vector (tabulando previamente la variable con comando table) o de porcentajes o cantidades ya resumidas (sin usar el comando table). > pie( table(sexo) ) opciones útiles (pie): main=“Distribución según Sexo” labels=c("hombres","mujeres") col=c("cyan","blue" ) radius=1.05 # default: 0.8 clockwise=T

17 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosUso de pie con datos resumidos Si se tienen porcentajes o cantidades ya resumidas, se grafican directamente, sin usar el comando table. > pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12) > names(pie.sales) <- c("Blueberry", "Cherry", "Apple", "Boston Cream", "Other", "Vanilla") > pie (pie.sales, col=c("purple","violetred1","green3","cornsilk","cyan","white"), main=“Flavor”) Hazlo tu mismo

18 opciones útiles (barplot):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Gráfico de variable categórica. Comando barplot El comando barplot permite hacer gráficos de barras. Al igual que pie, se puede usar sobre datos en un vector (usando table) o datos resumidos (sin usar table). > barplot( table(sexo) ) # grafico de frecuencias (default) > barplot( 100*table(sexo)/length(sexo) ) # grafico de porcentajes opciones útiles (barplot): main=“Distribución por Sexo” names.arg=c(“Masc",“Fem") xlab=“Sexo” ylab=“Frecuencia” col=c("cyan","blue" ) ylim=c(0,800) space=0.1 # default: 0.2 horiz=F # por defecto

19 opciones útiles (boxplot):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Numérica según categórica. Comando boxplot El comando boxplot permite hacer un box-plot (o cajón con bigotes). > boxplot(x) # box-plot de x (variable numerica) > boxplot(num~cat) # box-plot de num para cada nivel de cat > boxplot(num~cat1*cat2) # box-plot de num para combinaciones de cat1*cat2 opciones útiles (boxplot): main=“Peso según HTA” mames=c("(+)", "(-)") xlab=“HTA” ylab=“Peso(kg)” col=“green” # o bien col=3 notch=T # gráfico acinturado horizontal=F # por defecto ylim=c(20,140) log=“both” # también “x”, “y”

20 opciones útiles (barplot):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Numérica según categórica. Comando barplot El comando barplot, además de gráficar variables categóricas, permite graficar variables numéricas según categóricas, al usarlo junto al comando tapply. > tapply(resp, fact, FUN) # FUN = mean, median, sd, etc. > barplot(tapply(resp,fact,median), names.arg=c(“Basal","tiempo1","tiempo2",“Final")) opciones útiles (barplot): main=“Medianas según Tiempo” names.arg=c(“Basal",“t1”,”t2”,”Final”) xlab=“Tiempo” ylab=“Respuesta” ylim=c(0,15) space=0.1 # default: 0.2 horiz=F # por defecto

21 Gráfico de dos variable numéricas. Comando plotEl comando plot (además de hacer el Index Graph) permite hacer un gráfico de dispersión de dos variables numéricas. > plot(x,y) # gráfico cartesiano: x versus y > plot(y~x) # formula: y en funcion de x opciones útiles (plot): main=“Peso en función de Talla” xlab=“Talla(cms)” ylab=“Peso(kg)” xlim=c(1.2,1.9) ylim=c(20,160) col=“forestgreen“ # borde de symbol bg=“white” # interior (default) pch=21 # circle (default) cex= # tamaño symbol (def:1) lwd= # ancho de lineas

22 opciones útiles (abline):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Agregar línea de tendencia a un plot El comando abline permite agregar una línea de tendencia (regresión lineal simple) a un gráfico de dispersión. El intercepto y pendiente se pueden obtener de un modelo (ajustado con comando lm) o se pueden indicar directamente en abline. > plot(peso~talla) > abline( lm(peso~talla) ) opciones útiles (abline): col=“red“ # default: black h= # linea en y=100 v= # linea en x=1.7 lwd=2 # ancho (default:1) lty=1 # tipo linea (2=segmentos) > # intercepto y pendiente conocidos: > abline(-21.52, 52.39, col=“red”)

23 opciones útiles (lowess):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Agregar suavizamiento no paramétrico a un plot El comando lowess permite agregar una línea de suavizamiento no paramétrico a un gráfico de dispersión. La línea suavizada se agrega al gráfico con comando lines. > plot(talla, peso) > lines( lowess(talla, peso) ) # nota: lowess no acepta NA’s opciones útiles (lowess): f=0.1 # span (default:2/3). # proporcion puntos vecinos # que influencia cada punto opciones útiles (lines): col=“red“ # default: black lwd= # ancho (default:1) lty= # tipo linea (2=segmentos) type=“l” # default (“p” para puntos)

24 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosAgregar texto a un gráfico: comando text El comando text permite agregar texto a a un dispositivo gráfico abierto. > text(xpos, ypos,”texto”) > text(xpos, ypos,label=variable) > primates species bodywt brainwt 1 Potar monkey Gorilla Human 4 Rhesus monkey Chimp > plot(bodywt, brainwt, pch=21, cex=0.7) > text(bodywt+20, brainwt,labels=species) opciones útiles (text): cex=0.8 # text size (default: 1) font=2 # text font (default: 1)

25 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráfico de dos grupos de datos: points y legend El comando points permite agregar puntos a un dispositivo gráfico abierto. El comando legend permite agregar leyendas a un gráfico. > points(x,y) > legend(locator(1)) Opciones útiles (points): pch= # simbolo (19 = circulo lleno) col=“black” # color del simbolo (borde) bg=“green” # color del simbolo (interior) cex= # tamaño de simbolo (defecto:1) Opciones útiles (legend): pch= # simbolo col=“black” # borde de simbolo c(“Masc”,”Fem”) # texto de legenda Ejemplo: gráfico de dispersión de peso (eje Y) según talla (eje X), diferenciando los puntos según sexo (1=Masc y 2=Fem). > plot(peso~talla, main="Peso según Talla", type="n") > points(talla[sexo==1],peso[sexo==1], col=“black”, bg="red", pch=19, cex=1.2) > points(talla[sexo==2],peso[sexo==2], col=“black”, bg="green", pch=19, cex=1.2) > legend(locator(1), pch=c(19,19), col=c("red","green"), c("Masc","Fem"))

26 ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicosGráfico de dos grupos de datos: points y legend

27 Lea el archivo worms.txt y ensaye distintos comandos de R:Ejercitacion Lea el archivo worms.txt y ensaye distintos comandos de R: > worms <- read.table(file.choose(),header=T) > names(worms) > list(worms) > worms > fix(worms) # ¿igual a edit(worms)? > list(worms$Area) # igual a worms$Area > mean(worms$Area) > attach(worms) > summary(Area) > hist(Area) > hist(Area,main=“Title”, ylab=“EjeY”, xlab=“EjeX”) > plot(density(Area), main=“Title”, xlab=“NameX”) > par(mfrow=c(1,2)) > hist(Area,main=“Títle”, ylab=“EjeY”, xlab=“EjeX”)

28 opciones útiles (pairs):ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Gráfico de múltiples variables: Comando pairs El comando pairs permite hacer múltiples gráficos de dispersión sobre un dispositivo gráfico. > pairs( datos[,c(“edad”,”talla”,”imc”)] ) # comando alternativo > pairs(~edad+talla+imc, data=datos) # todas las variables de un dataframe > pairs(datos) opciones útiles (pairs): main=“Gráficos suavizados” labels=c(“edad(años)”,”talla(mt)”,IMC”) panel=panel.smooth #suavizamiento col=“black” # color de puntos subset=(sexo==1) # seleccion datos pch=21

29 opciones útiles (TukeyHSD)ESTADISTICA DESCRIPTIVA (gráfica): Comandos básicos Numérica según categórica. Comparación múltiple A veces interesa determinar si existen diferencias significativas entre medias de una variable numérica según los niveles de una categórica. Para esto, podemos ajustar una ANOVA (con comando aov) y detectar diferencias con comando TukeyHSD. # ANOVA con un factor > modelo = aov( y ~ factor(x) ) # comparacion multiple > plot( TukeyHSD(modelo) ) opciones útiles (TukeyHSD) ordered=T # difs. crecientes conf.level=0.99 # nivel confianza

30 Gráfico de librería lattice: comando xyplotLa librería lattice tiene varios formatos gráficos diferentes a los ya vistos. Para acceder a estos comandos se debe invocar la librería con library(lattice). > library(lattice) > xyplot(y ~ x | grupo) # x e y son numericas y grupo es categorica opciones útiles (xyplot): main=“Iris Data” xlab=“Sepal length” ylab=“Sepal width” type=“p” # default. tendencia: “a” col=“blue” # default pch=21 layout=c(2,2) # par(mfrow=c(2,2)) scales=“free” # default: NULL subset=(sexo==1)