Professional Documents
Culture Documents
Notas sobre R: Un entorno de programacin para Anlisis de Datos y Grcos o a a Versin 1.0.1 (2000-05-16) o
Copyright c 1990, 1992 W. Venables Copyright c 1997, R. Gentleman & R. Ihaka Copyright c 1997, 1998 M. Mchler a c 2000, Andrs Gonzlez y Silvia Gonzlez Copyright e a a Copyright c 1999, 2000 R Development Core Team Se autoriza la realizacin y distribucin de copias literales de este manual, siempre y cuando o o las advertencias del copyright y de este permiso se conserven en todas las copias. Se autoriza la realizaci^^f3n y distribucin de copias modicadas de este manual, en las miso mas condiciones de las copias literales, siempre y cuando la totalidad del trabajo resultante se distribuya bajo los trminos de una advertencia de permiso id^^e9ntica a esta. e Se autoriza la realizaci^^f3n y distribucin de traducciones de este manual a otros idiomas, o en las mismas condiciones de las copias modicadas, siempre y cuando la traduccin de la o advertencia de este permiso sea aprobada por el Equipo Central de Desarrollo de R.
Indice General
Prlogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 o 1 Introduccin y Preliminares . . . . . . . . . . . . . . . . 2 o
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 El entorno R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programas relacionados. Documentacin . . . . . . . . . . . . . . . . . . o Estad stica con R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R en un sistema de ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilizacin interactiva de R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Una sesin inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Ayuda sobre funciones y capacidades . . . . . . . . . . . . . . . . . . . . . Ordenes de R. Maysculas y minsculas. . . . . . . . . . . . . . . . . . . u u Recuperacin y correccin de rdenes previas . . . . . . . . . . . . . . o o o Ejecucin de rdenes desde un archivo y redireccin de la o o o salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 Almacenamiento y eliminacin de objetos . . . . . . . . . . . . . . . . o 2 2 2 3 3 4 4 5 5 5 6
ii
5.5
5.6 5.7
iii
10
11
iv
12
Procedimientos grcos . . . . . . . . . . . . . . . . . . 69 a
12.1 Funciones grcas de nivel alto . . . . . . . . . . . . . . . . . . . . . . . . . 69 a 12.1.1 La funcin plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 o 12.1.2 Representacin de datos multivariantes . . . . . . . . . 70 o 12.1.3 Otras representaciones grcas . . . . . . . . . . . . . . . . 70 a 12.1.4 Argumentos de las funciones grcas de nivel alto a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Funciones grcas de nivel bajo . . . . . . . . . . . . . . . . . . . . . . . . 72 a 12.2.1 Anotaciones matemticas . . . . . . . . . . . . . . . . . . . . . 74 a 12.2.2 Fuentes vectoriales Hershey. . . . . . . . . . . . . . . . . . . . 74 Funciones grcas interactivas . . . . . . . . . . . . . . . . . . . . . . . . . . 74 a Uso de parmetros grcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 a a 12.4.1 Cambios permanentes. La funcin par() . . . . . . . 76 o 12.4.2 Cambios temporales. Argumentos de las funciones grcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 a Parmetros grcos habituales . . . . . . . . . . . . . . . . . . . . . . . . . 76 a a 12.5.1 Elementos grcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 a 12.5.2 Ejes y marcas de divisin. . . . . . . . . . . . . . . . . . . . . . 78 o 12.5.3 Mrgenes de las guras . . . . . . . . . . . . . . . . . . . . . . . 78 a 12.5.4 Figuras mltiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 u Dispositivos grcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 a 12.6.1 Inclusin de grcos PostScript en documentos . . 81 o a 12.6.2 Dispositivos grcos mltiples . . . . . . . . . . . . . . . . . 82 a u Grcos dinmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 a a
12.2
12.3 12.4
12.5
12.6
12.7
Apendice A Apendice B
B.1 B.2
Apendice C
C.1 C.2 C.3
El editor de rdenes . . . . . . . . . . . . 93 o
Prlogo o
Prlogo o
Estas notas sobre R estn escritas a partir de un conjunto de notas que describ los a an entornos S y S-Plus escritas por Bill Venables y Dave Smith. Hemos realizado un pequeo n nmero de cambios para reejar las diferencias entre R y S. u R es un proyecto vivo y sus capacidades no coinciden totalmente con las de S. En estas notas hemos adoptado la convencin de que cualquier caracter o stica que se vaya a implementar se especica como tal en el comienzo de la seccin en que la caracter o stica es descrita. Los usuarios pueden contribuir al proyecto implementando cualquiera de ellas. Deseamos dar las gracias ms efusivas a Bill Venables por permitir la distribucin de a o esta versin modicada de las notas y por ser un defensor de R desde su inicio. o Cualquier comentario o correccin sern siempre bienvenidos. Dirija cualquier correspono a dencia a R-core@r-project.org.
Sugerencias al lector
La primera relacin con R deber ser la sesin inicial del Apendice A [Ejemplo de sesion], o a o pgina 84. Est escrita para que se pueda conseguir cierta familiaridad con el estilo de las a a sesiones de R y para comprobar que coincide con la versin actual. o Muchos usuarios eligen R fundamentalmente por sus capacidades grcas. Si ese es su a caso, deber leer antes o despus el Cap a e tulo 12 [Gracos], pgina 69, sobre capacidades a grcas y para ello no es necesario esperar a haber asimilado totalmente las secciones a precedentes.
1 Introduccin y Preliminares o
1.1 El entorno R
R es un conjunto integrado de programas para manipulacin de datos, clculo y grcos. o a a Entre otras caracter sticas dispone de: almacenamiento y manipulacin efectiva de datos, o operadores para clculo sobre variables indexadas (Arrays), en particular matrices, a una amplia, coherente e integrada coleccin de herramientas para anlisis de datos, o a posibilidades grcas para anlisis de datos, que funcionan directamente sobre pantalla a a o impresora, y un lenguaje de programacin bien desarrollado, simple y efectivo, que incluye o condicionales, ciclos, funciones recursivas y posibilidad de entradas y salidas. (Debe destacarse que muchas de las funciones suministradas con el sistema estn escritas en a el lenguaje R) El trmino entorno lo caracteriza como un sistema completamente diseado y coe n herente, antes que como una agregacin incremental de herramientas muy espec o cas e inexibles, como ocurre frecuentemente con otros programas de anlisis de datos. a R es en gran parte un veh culo para el desarrollo de nuevos mtodos de anlisis interactivo e a de datos. Como tal es muy dinmico y las diferentes versiones no siempre son totalmente a compatibles con las anteriores. Algunos usuarios preeren los cambios debido a los nuevos mtodos y tecnolog que los acompaan, a otros sin embargo les molesta ya que algn cdigo e a n u o anterior deja de funcionar. Aunque R puede entenderse como un lenguaje de programacin, o los programas escritos en R deben considerarse esencialmente ef meros.
bibliotecas estndar) pero otras muchas estn disponibles a travs de Internet en CRAN a a e (http://www.r-project.org). Como hemos indicado, muchas tcnicas estad e sticas, desde las clsicas hasta la ultima a metodolog estn disponibles en R, pero los usuarios necesitarn estar dispuestos a trabaa, a a jar un poco para poder encontrarlas. Existe una diferencia fundamental en la losof que subyace en R (o S) y la de otros a sistemas estad sticos. En R, un anlisis estad a stico se realiza en una serie de pasos, con unos resultados intermedios que se van almacenando en objetos, para ser observados o analizados posteriormente, produciendo unas salidas m nimas. Sin embargo en SAS o SPSS se obtendr de modo inmediato una salida copiosa para cualquier anlisis, por ejemplo, a a una regresin o un anlisis discriminante. o a
R preguntar si desea salvar los datos de esta sesin de trabajo. Puede responder yes a o (Si), no (No) o cancel (cancelar) pulsando respectivamente las letras y, n o c, en cada uno de cuyos casos, respectivamente, salvar los datos antes de terminar, terminar a a sin salvar, o volver a la sesin de R. Los datos que se salvan estarn disponibles en la a o a siguiente sesin de R. o Volver a trabajar con R es sencillo: 1. Haga que trabajo sea su directorio de trabajo e inicie el programa como antes: $ cd trabajo $ R 2. D las rdenes que estime convenientes a R y termine la sesin con la orden q(). e o o Bajo Microsoft Windows el procedimiento a seguir es bsicamente el mismo: Cree una a carpeta o directorio. Ejecute R haciendo doble click en el icono correspondiente. Seleccione New dentro del men File para indicar que desea iniciar un nuevo problema (lo que eliminar u a todos los objetos denidos dentro del espacio de trabajo) y a continuacin seleccione Save o dentro del men File para salvar esta imagen en el directorio que acaba de crear. Puede u comenzar ahora los anlisis y cuando salga de R, ste le preguntar si desea salvar la imagen a e a en el directorio de trabajo. Para continuar con este anlisis posteriormente basta con pulsar en el icono de la imagen a salvada, o bien puede ejecutar R y utilizar la opcin Open dentro del men File para o u seleccionar y abrir la imagen salvada.
Las versiones de Microsoft Windows de R poseen otros sistemas de ayuda opcionales. Utilice > ?help para obtener detalles adicionales.
> sink("resultado.lis") enviar el resto de la salida, en vez de a la pantalla, al archivo del sistema operativo, a resultado.lis, dentro del directorio de trabajo. La orden > sink() devuelve la salida de nuevo a la pantalla. Si utiliza nombres absolutos de archivo en vez de nombres relativos, los resultados se almacenan en ellos, independientemente del directorio de trabajo. a
El punto inicial del nombre de este archivo indica que es invisible en UNIX.
Con argumentos diferentes, por ejemplo listas, la accin de c() puede ser diferente. Vea Seccin 6.2.1 o o [Concatenacion de listas], pgina 29. a El s mbolo de subrayado, _, es un sinnimo del operador de asignacin, pero no aconsejamos su utio o lizacin ya que produce un cdigo menos legible. o o Aunque, de hecho, se almacena en .Last.value hasta que se ejecute otra orden.
10
Los operadores lgicos son < (menor), <= (menor o igual), > (mayor), >= (mayor o igual), o == (igual), y != (distinto). Adems, si c1 y c2 son expresiones lgicas, entonces c1&c2 es a o su interseccin (conjuncin), c1|c2 es su unin (disyuncin) y !c1 es la negacin de o o o o o c1. Los vectores lgicos pueden utilizarse en expresiones aritmticas, en cuyo caso se transo e forman primero en vectores numricos, de tal modo que F se transforma en 0 y T en 1. Sin e embargo hay casos en que un vector lgico y su correspondiente numrico no son equivao e lentes, como puede ver a continuacin. o
En la literatura estad stica inglesa, missing value Acrnimo en ingls de Not Available, no disponible. o e Acrnimo en ingls de Not a Number, esto es, No es un nmero. o e u
11
Por otra parte, la funcin paste() une todos los vectores de caracteres que se le sumio nistran y construye una sola cadena de caracteres. Tambin admite argumentos numricos, e e que convierte inmediatamente en cadenas de caracteres. En su forma predeterminada, en la cadena nal, cada argumento original se separa del siguiente por un espacio en blanco, aunque ello puede cambiarse utilizando el argumento sep="cadena", que sustituye el espacio en blanco por cadena, la cual podr ser incluso vac a a. Por ejemplo, > labs <- paste(c("X","Y"), 1:10, sep="") almacena, en labs, el vector de caracteres c("X1", "Y2", "X3", "Y4", "X5", "Y6", "X7", "Y8", "X9", "Y10") Recuerde que al tener c("X", "Y") solo dos elementos, deber repetirse 5 veces para a 7 obtener la longitud del vector 1:10.
paste(..., collapse=ss) permite colapsar los argumentos en una sola cadena de caracteres separndolos a mediante ss. Adems existen otras rdenes de manipulacin de caracteres. como sub y substring. Puede a o o encontrar su descripcin en la ayuda del programa. o
12
> c("x","y")[rep(c(1,2,2,1), times=4)] crea un vector de caracteres de longitud 16 formado por "x", "y", "y", "x" repetido cuatro veces. 3. Un vector de nmeros naturales negativos. En este caso, los u ndices indican los elementos del vector referido que deben excluirse. As pues, > y <- x[-(1:5)] almacena en el vector y todos los elementos de x excepto los cinco primeros (suponiendo que x tiene al menos cinco elementos). 4. Un vector de caracteres. Esta opcin solo puede realizarse si el vector posee el atributo o names (nombres) para identicar sus componentes, en cuyo caso se comportar de modo a similar al punto 2. > fruta <- c(5, 10, 1, 20) > names(fruta) <- c("naranja", "pltano", "manzana", "pera") a > postre <- fruta[c("manzana","naranja")] La ventaja en este caso es que los nombres son a menudo ms fciles de recordar que a a los ndices numricos.Esta opcin es especialmente util al tratar de la estructura de e o hoja de datos (data frame) que veremos posteriormente. La variable de almacenamiento tambin puede ser indexada, en cuyo caso la asignacin e o se realiza solamente sobre los elementos referidos. La expresin debe ser de la forma o vector[vector de ndices] ya que la utilizacin de una expresin arbitraria en vez del nomo o bre de un vector no tiene mucho sentido. El vector asignado debe ser de la misma longitud que el vector de ndices y, en el caso de un vector de ndices lgico, debe ser de la misma longitud del vector que indexa. Por o ejemplo, > x[is.na(x)] <- 0 sustituye cada valor faltante de x por un cero. Por otra parte, > y[y < 0] <- -y[y < 0] equivale8 a > y <- abs(y)
Tenga en cuenta que abs() no se comporta correctamente con nmeros complejos, en ellos deber usar u a Mod().
13
Las listas son una forma generalizada de vector en las cuales los elementos no tienen por qu ser del mismo tipo y a menudo son a su vez vectores o listas. Las listas e permiten devolver los resultados de los clculos estad a sticos de un modo conveniente. Vase Seccin 6.1 [Listas], pgina 28. e o a Las hojas de datos (data frames) son estructuras similares a una matriz, en que cada columna puede ser de un tipo distinto a las otras. Las hojas de datos son apropiadas para describir matrices de datos donde cada la representa a un individuo y cada columna una variable, cuyas variables pueden ser numricas o categricas. Muchos e o experimentos se describen muy apropiadamente con hojas de datos: los tratamientos son categricos pero la respuesta es numrica. Vase Seccin 6.3 [Hojas de datos], o e e o pgina 29. a Las funciones son tambin objetos de R que pueden almacenarse en el espacio de e trabajo, lo que permite extender las capacidades de R fcilmente. Vase Cap a e tulo 10 [Escritura de funciones], pgina 46. a
14
El modo numrico consiste realmente en dos modos distintos, integer (entero) y double (doble precisin). e o En general, al forzar el cambio de numrico a carcter y de nuevo a numrico, no se obtienen los mismos e a e resultados, debido, entre otros, a los errores de redondeo.
15
modo, como para asignar un atributo a un objeto que carece de l. Es aconsejable consultar e la ayuda para familiarizarse con estas funciones.
16
y otras funciones genricas, como summary(), producirn un resultado especial; todo ello e a en funcin de la pertenencia a dicha clase. o Para eliminar temporalmente los efectos de la clase puede utilizar la funcin unclass(). o Por ejemplo, si invierno pertenece a la clase "data.frame", entonces > invierno escribe el objeto en la forma de la clase, parecida a una matriz, en tanto que > unclass(invierno) lo imprime como una lista ordinaria. Slo debe utilizar esta funcin en situaciones muy o o concretas, como, por ejemplo, si hace pruebas para comprender el concepto de clase y de funcin genrica. o e o Las clases y las funciones genricas sern tratadas muy brevemente en la Seccin 10.9 e a [Orientacion a objetos], pgina 54. a
17
Recuerde que, para un vector de caracteres, la palabra ordenado indica que est en a orden alfabtico. e Un factor se crea utilizando la funcin factor(): o > FactorEstado <- factor(estado) La funcin print() trata a los factores de un modo distinto al de los vectores ordinarios: o > FactorEstado [1] tas sa qld nsw nsw nt wa wa qld vic nsw vic qld qld sa [16] tas sa nt wa vic qld nsw nsw wa sa act nsw vic vic act Levels: act nsw nt qld sa tas vic wa Puede utilizar la funcin levels() para ver los niveles de un factor: o > levels(FactorEstado) [1] "act" "nsw" "nt" "qld" "sa" "tas" "vic" "wa"
Para quienes no conocen la estructura administrativa de Australia, existen ocho estados y territorios en la misma: Australian Capital Territory, New South Wales, Northern Territory, Queensland, South Australia, Tasmania, Victoria, y Western Australia; y sus correspondientes abreviaturas son: act, nsw, nt, qld, sa, tas, vic, y wa.
18
> MediaIngresos act nsw nt qld sa tas vic wa 44.500 57.333 55.500 53.600 55.000 60.500 56.000 52.250 La funcin tapply() aplica una funcin, en este ejemplo la funcin mean(), a cada grupo o o o de componentes del primer argumento, en este ejemplo ingresos, denidos por los niveles del segundo argumento, en este ejemplo FactorEstado, como si cada grupo fuese un vector por s solo. El resultado es una estructura cuya longitud es el nmero de niveles del factor. u Puede consultar la ayuda para obtener ms detalles. a Suponga que ahora desea calcular las desviaciones t picas de las medias de ingresos por estados. Para ello es necesario escribir una funcin en R que calcule la desviacin t o o pica de un vector. Aunque an no se ha explicado en este texto cmo escribir funciones2 , puede u o admitir que existe la funcin var() que calcula la varianza muestral o cuasi-varianza, y que o la funcin buscada puede construirse con la asignacin: o o > StdErr <- function(x) sqrt(var(x)/length(x)) Ahora puede calcular los valores buscados mediante > ErrorTipicoIngresos <- tapply(ingresos, FactorEstado, StdErr) con el siguiente resultado: > ErrorTipicoIngresos act nsw nt qld sa tas vic wa 1.500000 4.310195 4.500000 4.106093 2.738613 0.500000 5.244044 2.657536 Como ejercicio puede calcular el intervalo de conanza al 95% de la media de ingresos por estados. Para ello puede utilizar la funcin tapply(), la funcin length() para calcular los o o tamaos muestrales, y la funcin qt() para encontrar los percentiles de las distribuciones t n o de Student correspondientes. La funcin tapply() puede utilizarse para aplicar una funcin a un vector indexado por o o diferentes categor simultneamente. Por ejemplo, para dividir la muestra tanto por el as a estado como por el sexo. Los elementos del vector se dividirn en grupos correspondientes a a las distintas categor y se aplicar la funcin a cada uno de dichos grupos. El resultado as a o es una variable indexada etiquetada con los niveles de cada categor a. 3 La combinacin de un vector con un factor para etiquetarlo, es un ejemplo de lo que se o llama variable indexada desastrada (ragged array) puesto que los tamaos de las subclases n son posiblemente irregulares. Cuando estos tamaos son iguales la indexacin puede hacerse n o impl citamente y adems ms ecientemente, como veremos a continuacin. a a o
La escritura de funciones ser tratada en Cap a tulo 10 [Escritura de funciones], pgina 46. a En general de una variable indexada
19
creados por la funcin ordered() los denominaremos ordinales. En la mayor de los casos o a la unica diferencia entre ambos tipos de factores consiste en que los ordinales se imprimen indicando el orden de los niveles. Sin embargo los contrastes generados por los dos tipos de factores al ajustar Modelos lineales, son diferentes.
20
Fortran
21
22
> N <- crossprod(Xb, Xv) Tambin puede construirla directamente mediante la funcin table(): e o > N <- table(bloques, variedades)
23
Si hay variables indexadas y no se produce error, el resultado es una variable indexada del mismo atributo dim que las variables indexadas que intervienen en la operacin. o
La denicin de una funcin en R se estudia en el cap o o tulo Cap tulo 10 [Escritura de funciones], pgina 46. a
24
Si hubiese escrito x %*% x el resultado es ambiguo, pues tanto podr signicar x x como xx , donde x es a la forma columna. En este tipo de casos, la interpretacin corresponde a la matriz de menor tamao, por o n lo que en este ejemplo el resultado es el escalar x x. La matriz xx puede calcularse mediante cbind(x) %*% x, mediante x %*% rbind(x) o mediante x %*% rbind(x), puesto que tanto el resultado de rbind() como el de cbind() son matrices.
25
su argumento es un vector (de longitud mayor que uno), diag(vector), lo transforma en una matriz diagonal cuyos elementos diagonales son los del vector. Y, por ultimo, si su argumento es un nmero natural, n, lo transforma en una matriz identidad de tamao u n n n.
26
> MinCua <- lsfit(X, y) almacena los resultados del ajuste por m nimos cuadrados de un vector de observaciones, y, y una matriz de diseo, X. Para ver ms detalles puede consultar la ayuda, y tambin la de n a e la funcin ls.diag() para los diagnsticos de regresin. Tenga en cuenta que no necesita o o o incluir un trmino independiente en X, ya que se incluye automticamente. e a Otras funciones estrechamente relacionadas son qr() y similares. Considere las siguientes asignaciones: > > > > Xplus <- qr(X) b <- qr.coef(Xplus, y) fit <- qr.fitted(Xplus, y) res <- qr.resid(Xplus, y)
que calculan la proyeccin ortogonal de y sobre X y la almacenan en fit, la proyeccin sobre o o el complemento ortogonal en res y el vector de coecientes para la proyeccin en b4 . o No se presupone que X sea de rango completo. Se buscan las redundancias y, si existen, se eliminan. Esta forma es la forma antigua, a bajo nivel, de realizar ajustes de m nimos cuadrados. Aunque sigue siendo util en algn contexto, deber ser reemplazada por los modelos u a tulo 11 [Modelos estadisticos en R], pgina 55. a estad sticos, como se ver en el Cap a
27
28
29
Aunque R permite lo contrario, deber ser distintos entre s an Hemos utilizado esta traduccin por analog con la hoja de clculo o a a
30
> cont <- data.frame(dom=FactorEstado, bot=ingresos, dis=FactorIngresos) Puede forzar que una lista, cuyos componentes cumplan las restricciones para ser una hoja de datos, realmente lo sea, mediante la funcin as.data.frame() o La manera ms sencilla de construir una hoja de datos es utilizar la funcin a o read.table() para leerla desde un archivo del sistema operativo. Esta forma se tratar a en el Cap tulo 7 [Lectura de datos desde un archivo], pgina 33. a
31
Nota: En la versin actual de R slo se pueden conectar listas y hojas de datos o o en la posicin 2 o superior. No es posible asignar directamente en una lista u o hoja de datos conectada (por tanto, en cierto sentido, son estticas). a
"package:base"
Consulte la ayuda sobre autoload para la descripcin del signicado del segundo trmino. o e
32
y, como vimos, ls (o objects) puede usarse para examinar los contenidos de cualquier posicin en la trayectoria de bsqueda. o u Por ultimo, desconectamos la hoja de datos y comprobamos que ha sido eliminada de la trayectoria de bsqueda. u > detach("lentejas") > search() [1] ".GlobalEnv" "Autoloads" "package:base"
33
Archivo de entrada con nombres de variables y etiquetas de las: Precio 52.00 54.75 57.50 57.50 59.75 Superficie 111.0 128.0 101.0 131.0 93.0 rea A 830 710 1000 690 900 Habitaciones 5 5 5 6 5 A~os n 6.2 7.5 4.2 8.8 1.9 Calef no no no no si
01 02 03 04 05 ...
Predeterminadamente, los elementos numricos (excepto las etiquetas de las las) se e almacenan como variables numricas; y los no numricos, como Calef, se fuerzan como e e factores. Es posible modicar esta accin. o
1
En UNIX puede utilizar el programa perl o los editores sed y awk. Existen versiones para Microsoft Windows.
34
> PreciosCasas <- read.table("datos.casas") A menudo no se dispone de etiquetas de las. En ese caso, tambin es posible la lectura e y el programa aadir unas etiquetas predeterminadas. As si el archivo tiene la forma n a , siguiente,
Archivo sin etiquetas de las: Precio 52.00 54.75 57.50 57.50 59.75 ... Superficie 111.0 128.0 101.0 131.0 93.0 rea A 830 710 1000 690 900 Habitaciones 5 5 5 6 5 A~os n 6.2 7.5 4.2 8.8 1.9 Calef no no no no si
podr leerse utilizando un parmetro adicional a a > PreciosCasas <- read.table("datos.casas", header=T) donde el parmetro adicional, header=T, indica que la primera l a nea es una l nea de cabeceras y que no existen etiquetas de las expl citas.
35
> X <- matrix(scan("light.dat", 0), ncol=5, byrow=TRUE) La funcin scan permite realizar lecturas ms complejas, como puede consultar en la o a ayuda.
36
37
beta binom cauchy chisq exp f gamma geom hyper lnorm logis nbinom norm pois t unif weibull wilcox
Para construir el nombre de cada funcin, utilice el nombre de la distribucin precedido o o de d para la funcin de densidad, p para la funcin de distribucin, q para la funcin o o o o de distribucin inversa, y r para la generacin de nmeros pseudoaleatorios. El primer o o u argumento es x para la funcin de densidad, q para la funcin de distribucin, p para la o o o funcin de distribucin inversa, y n para la funcin de generacin de nmeros pseudoaleatoo o o o u rios (excepto en el caso de rhyper y rwilcox, en los cuales es nn). En el momento de escribir este manual, el parmetro ncp slo est disponible prcticamente en las funciones a o a a de distribucin. Para conocer dnde puede usarlo utilice la ayuda interactiva. o o Adems de las anteriores, existen las funciones ptukey y qtukey para la distribucin del a o rango estudentizado de muestras de una distribucin normal. o Los siguientes ejemplos claricarn estos conceptos: a > ## P valor a dos colas de la distribucin t_13 o > 2*pt(-2.43, df = 13) > ## Percentil 1 superior de una distribucin F(2, 7) o
1
38
> qf(0.99, 2, 7)
Max. 5.100
The decimal point is 1 digit(s) to the left of the | 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 | | | | | | | | | | | | | | | | | | 070355555588 000022233333335577777777888822335777888 00002223378800035778 0002335578023578 00228 23 080 7 2337 250077 0000823577 2333335582225577 0000003357788888002233555577778 03335555778800233333555577778 02222335557780000000023333357778888 0000233357700000023578 00000022335800333 0370
En vez del diagrama de tallo y hojas, puede representar el histograma utilizando la funcin hist. o > # > > > hist(eruptions) define intervalos menores y a~ade un grfico de densidad n a hist(eruptions, seq(1.6, 5.2, 0.2), prob=TRUE) lines(density(eruptions, bw=0.1)) rug(eruptions) # muestra los puntos
La funcin density permite realizar grcos de densidad y la hemos utilizado para o a superponer este grco en el ejemplo. La anchura de banda, bw, ha sido elegida probando a varias, ya que el valor predeterminado produce un grco mucho ms suavizado. Si necesita a a
39
utilizar mtodos automticos de eleccin de ancho de banda, utilice las bibliotecas MASS e a o y KernSmooth.
Histogram of eruptions
0.7 Relative Frequency 0.0 1.5 0.1 0.2 0.3 0.4 0.5 0.6
2.0
2.5
3.0
3.5 eruptions
4.0
4.5
5.0
Podemos representar la funcin de distribucin emp o o rica mediante la funcin ecdf de la o biblioteca estndar stepfun. a > library(stepfun) > plot(ecdf(eruptions), do.points=FALSE, verticals=TRUE) Esta distribucin, obviamente, no corresponde a ninguna de las distribuciones estndar. o a Pero podemos estudiar qu ocurre con las erupciones de ms de tres minutos. Vamos a e a seleccionarlas, ajustarles una distribucin normal y superponer la distribucin ajustada. o o > > > > long <- eruptions[eruptions > 3] plot(ecdf(long), do.points=FALSE, verticals=TRUE) x <- seq(3, 5.4, 0.01) lines(x, pnorm(x, mean=mean(long), sd=sqrt(var(long))), lty=3)
ecdf(long)
1.0 Fn(x) 0.0 0.2 0.4 0.6 0.8
3.0
3.5
4.0 x
4.5
5.0
Los grcos cuantil-cuantil ("Q-Q plots") pueden ayudarnos a examinar los datos ms a a cuidadosamente.
40
> par(pty="s") > qqnorm(long); qqline(long) que muestran un ajuste razonable, aunque la cola de la derecha es ms corta de lo que ser a a esperable en una distribucin normal. Vamos a compararla con unos datos pseudoaleatorios o tomados de una distribucin t5 . o
Normal QQ Plot
Sample Quantiles
3.0
3.5
4.0
4.5
5.0
Theoretical Quantiles
> x <- rt(250, df = 5) > qqnorm(x); qqline(x) que la mayor de las veces (recuerde que es una muestra pseudo aleatoria) tendr colas ms a a a largas de lo que ser esperable en una distribucin normal. Podemos realizar un grco a o a cuantil-cuantil de estos datos, pero frente a la distribucin t5 , mediante o > qqplot(qt(ppoints(250), df=5), x, xlab="grfico Q-Q de t_5") a > qqline(x) Por ultimo, realicemos un contraste de hiptesis para comprobar la normalidad. La o biblioteca ctest permite realizar el contraste de Shapiro-Wilk > library(ctest) > shapiro.test(long) Shapiro-Wilk normality test data: long W = 0.9793, p-value = 0.01052 y el contraste de Kolmogorov-Smirnov > ks.test(long, "pnorm", mean=mean(long), sd=sqrt(var(long))) One-sample Kolmogorov-Smirnov test data: long D = 0.0661, p-value = 0.4284 alternative hypothesis: two.sided
41
Hemos utilizado los datos como ejemplo de uso de las funciones, sin estudiar si el mismo es vlido. En este caso no lo ser ya que se han estimado los parmetros de la distribucin a a a o normal a partir de la misma muestra.
79.94
79.96
79.98
80.00
80.02
80.04
Para contrastar la igualdad de medias de las dos poblaciones, se puede utilizar el contraste t de Student para dos muestras independientes, del siguiente modo: > t.test(A, B) Welch Two Sample t-test data: A and B t = 3.2499, df = 12.027, p-value = 0.00694
42
alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.01385526 0.07018320 sample estimates: mean of x mean of y 80.02077 79.97875 que indica una diferencia signicativa (Bajo las condiciones del modelo, incluida la normalidad). Esta funcin, de modo predeterminado, no presupone que las varianzas son iguales o (al contrario que la funcin anloga de S-Plus, t.test). Si desea contrastar la igualdad o a de varianzas, puede utilizar la funcin var.test de la biblioteca ctest. o > library(ctest) > var.test(A, B) F test to compare two variances data: A and B F = 0.5837, num df = 12, denom df = 7, p-value = 0.3938 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.1251097 2.1052687 sample estimates: ratio of variances 0.5837405 que no muestra evidencia de diferencias signicativas (Bajo las condiciones del modelo, que incluyen normalidad). Si hubisemos admitido esta hiptesis previamente, podr e o amos haber realizado un contraste ms potente, como el siguiente: a > t.test(A, B, var.equal=TRUE) Two Sample t-test data: A and B t = 3.4722, df = 19, p-value = 0.002551 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 0.01669058 0.06734788 sample estimates: mean of x mean of y 80.02077 79.97875 Como hemos indicado, una de las condiciones de aplicacin de los contrastes anteriores o es la normalidad. Si sta falla, puede utilizar el contraste de dos muestras de Wilcoxon (o e de Mann-Whitney) que solo presupone en la hiptesis nula que la distribucin comn es o o u continua. > library(ctest) > wilcox.test(A, B) Wilcoxon rank sum test with continuity correction
43
data: A and B W = 89, p-value = 0.007497 alternative hypothesis: true mu is not equal to 0 Warning message: Cannot compute exact p-value with ties in: wilcox.test(A, B) Advierta el mensaje de advertencia (Warning . . . ): Existen valores repetidos en cada muestra, lo que sugiere que los datos no proceden de una distribucin continua (puede que ello o ocurra debido al redondeo). Adems del diagrama de cajas, existen ms mtodos para comparar grcamente dos a a e a muestras. As las ordenes siguientes: , > library(stepfun) > plot(ecdf(A), do.points=FALSE, verticals=TRUE, xlim=range(A, B)) > plot(ecdf(B), do.points=FALSE, verticals=TRUE, add=TRUE) representan las dos funciones de distribucin emp o ricas. Por otra parte la funcin qqplot o realizar un grco cuantil-cuantil de las dos muestras. a a El contraste de Kolmogorov-Smirnov, que slo presupone que la distribucin comn es o o u continua, tambin puede aplicarse: e > ks.test(A, B) Two-sample Kolmogorov-Smirnov test data: A and B D = 0.5962, p-value = 0.05919 alternative hypothesis: two.sided Warning message: cannot compute correct p-values with ties in: ks.test(A, B) sindole de aplicacin la misma precaucin del contraste de Wilcoxon. e o o
44
La asignacin devuelve el resultado de modo invisible. Basta escribirla entre parntesis para comprobarlo. o e
45
> xc <- split(x, ind) > yc <- split(y, ind) > for (i in 1:length(yc)) { plot(xc[[i]], yc[[i]]); abline(lsfit(xc[[i]], yc[[i]])) } La funcin split() produce una lista de vectores dividiendo un vector de acuerdo a las o clases especicadas por un factor. Consulte la ayuda para obtener ms detalles. a Nota: En R, la funcin for() se utiliza mucho menos que en lenguajes tradio cionales, ya que no aprovecha las estructuras de los objetos. El cdigo que o trabaja directamente con las estructuras completas suele ser ms claro y ms a a rpido. a Otras estructuras de repeticin son o > repeat expr y > while (condicin) expr o La funcin break se utiliza para terminar cualquier ciclo. Esta es la unica forma (salvo o que se produzca un error) de nalizar un ciclo repeat. La funcin next deja de ejecutar el resto de un ciclo y pasa a ejecutar el siguiente2 . o Las rdenes de control se utilizan habitualmente en la escritura de funciones, que se o tulo 10 [Escritura de funciones], pgina 46, donde se vern varios ejema a tratarn en el Cap a plos.
46
47
> Proyeccion <- function(X, y) { X <- qr(X) qr.coef(X, y) } Una vez creada, puede utilizarla en cualquier expresin, como en la siguiente: o > CoefReg <- Proyeccion(matrizX, variabley) La funcin lsfit() realiza la misma accin2 . Tambin utiliza las funciones qr() y o o e qr.coef() en la forma anterior para realizar esta parte del clculo. Por lo tanto puede ser a interesante haber aislado esta parte en una funcin si se va a utilizar frecuentemente. Si o ello es as probablemente ser conveniente construir un operador binario matricial para , a que el uso sea ms cmodo. a o
Vea tambin los mtodos descritos en Cap e e tulo 11 [Modelos estadisticos en R], pgina 55 a El uso del s mbolo \ para el nombre, como en Matlab, no es una eleccin conveniente, ya que presenta o ciertos problemas en este contexto.
48
En muchos casos, puede suministrarse un valor predeterminado para algunos argumentos, en cuyo caso al ejecutar la funcin el argumento puede omitirse si el valor predeterminado o es apropiado. Por ejemplo, si fun1 estuviese denida como > fun1 <- function(datos, hoja.datos, grafico=TRUE, limite=20) { ... } la llamada a la funcin o > resultado <- fun1(d, hd) ser equivalente a cualquiera de las tres llamadas anteriores. Tenga en cuenta que puede a modicar los valores predeterminados, como en el caso siguiente: > resultado <- fun1(d, hd, limite=10) Es importante destacar que los valores predeterminados pueden ser expresiones arbitrarias, que incluso involucren otros argumentos de la misma funcin, y no estn restringidos o a a ser constantes como en el ejemplo anterior.
49
50
tiempo que ilustra el hecho de que las funciones pueden ser cortas y al mismo tiempo muy efectivas y utiles. SinNombres <- function(a) { ## Elimina los nombres de dimensiones para impresin compacta. o d <- list() l <- 0 for(i in dim(a)) { d[[l <- l + 1]] <- rep("", i) } dimnames(a) <- d a } Una vez denida la funcin, para imprimir la matriz X en forma compacta basta con o escribir > SinNombres(X) Esta funcin es de especial utilidad al imprimir variables indexadas de tipo entero y de o gran tamao, en que el inters real se centra ms en los posibles patrones que en los valores n e a en s mismos.
51
fun(f, d, b, fd, fb, a2, eps, lim - 1, fun)) } } fa <- f(a) fb <- f(b) a0 <- ((fa + fb) * (b - a))/2 fun1(f, a, b, fa, fb, a0, eps, lim, fun1) }
10.7 Ambito
Este apartado es algo ms tcnico que otras partes de este documento. Sin embargo, a e pormenoriza una de las mayores diferencias entre S-Plus y R. Los s mbolos que tienen lugar en el cuerpo de una funcin se dividen en tres clases: o parmetros formales, variables locales y variables libres. Los parmetros formales son los a a que aparecen en la lista de argumentos de la funcin y sus valores quedan determinados o por el proceso de asignacin de los argumentos de la funcin a los parmetros formales. o o a Las variables locales son aquellas cuyos valores estn determinados por la evaluacin de a o expresiones en el cuerpo de las funciones. Las variables que no son parmetros formales a ni variables locales se denominan variables libres. Las variables libres se transforman en variables locales si se les asigna valor. Para aclarar los conceptos, consideremos la siguiente funcin: o f <- function(x) { y <- 2*x print(x) print(y) print(z) } En esta funcin, x es un parmetro formal, y es una variable local y z es una variable o a libre. En R la asignacin de valor a una variable libre se realiza consultando el entorno en el o que la funcin se ha creado, lo que se denomina mbito lxico. En primer lugar denamos o a e la funcin cubo: o cubo <- function(n) { sq <- function() n*n n*sq() } La variable n de la funcin sq no es un argumento para esta funcin. Por tanto es una o o variable libre y las reglas de mbito deben utilizarse para determinar el valor asociado con a ella. En un mbito esttico (como en S-Plus) el valor es el asociado con una variable global a a llamada n. En un mbito lxico (como en R) es un parmetro para la funcin cubo puesto a e a o que hay una asignacin activa para la variable n en el momento en que se dene la funcin o o sq. La diferencia de evaluacin entre R y S-Plus es que S-Plus intenta encontrar una o variable global llamada n en tanto que R primero intenta encontrar una variable llamada n en el entorno creado cuando se activ cubo. o ## primera evaluacin en S o
52
S> cubo(2) Error in sq(): Object "n" not found Dumped S> n <- 3 S> cubo(2) [1] 18 ## la misma funcin evaluada en R o R> cubo(2) [1] 8 El mbito lexicogrco puede utilizarse para conceder a las funciones un estado cama a biante. En el siguiente ejemplo mostramos cmo puede utilizarse R para simular una cuenta o bancaria. Una cuenta bancaria necesita tener un balance o total, una funcin para realizar o depsitos, otra para retirar fondos, y una ultima para conocer el balance. o Conseguiremos esta capacidad creando tres funciones dentro de anota.importe y devolviendo una lista que los contiene. Cuando se ejecuta anota.importe toma un argumento numrico, total, y devuelve una lista que contiene las tres funciones. Puesto que estas fune ciones estn denidas dentro de un entorno que contiene a total, stas tendrn acceso a a e a su valor. El operador de asignacin especial, <<-, se utiliza para cambiar el valor asociado con o total. Este operador comprueba los entornos creados desde el actual hasta el primero hasta encontrar uno que contenga el s mbolo total y cuando lo encuentra, sustituye su valor en dicho entorno por el valor de la derecha de la expresin. Si se alcanza el nivel o superior, correspondiente al entorno global, sin encontrar dicho s mbolo, entonces lo crea en l y realiza la asignacin. Para muchos usos, <<- crea una variable global y le asigna e o el valor de la derecha de la expresin4 . Solo cuando <<- ha sido utilizado en una funcin o o que ha sido devuelta como el valor de otra funcin ocurrir la conducta especial que hemos o a descrito. anota.importe <- function(total) { list( deposito = function(importe) { if(importe <= 0) stop("Los depsitos deben ser positivos!\n") o total <<- total + importe cat("Depositado",importe,". El total es", total, "\n\n") }, retirada = function(importe) { if(importe > total) stop("No tiene tanto dinero!\n") total <<- total - importe cat("Descontado", importe,". El total es", total,"\n\n") }, balance = function() { cat("El total es", total,"\n\n") } )
4
En cierto sentido esto emula la conducta en S-Plus puesto que en S-Plus este operador siempre crea o asigna a una variable global.
53
} Antonio <- anota.importe(100) Roberto <- anota.importe(200) Antonio$retirada(30) Antonio$balance() Roberto$balance() Antonio$deposit(50) Antonio$balance() Antonio$retirada(500)
Por tanto, al comenzar su nombre con un punto, en UNIX, ser un archivo oculto. a
54
source(paste(getwd(), "/R/MisOrdenes.R", sep = "")) # ejecuta las rdenes contenidas en MisOrdenes.R o library(stepfun) # conecta la biblioteca stepfun } De modo anlogo, si existe la funcin .Last(), se ejecutar al trmino de la sesin. A a o a e o continuacin se muestra un ejemplo de esta funcin. o o > .Last <- function() { Graficos.off() # Una pequea medida de seguridad. n cat(paste(system.date(),"\nAdis\n")) o # Ya es la hora de irse. }
55
yi =
j=0
j xij + ei ,
ei NID(0, 2 ),
i = 1, . . . , n
En notacin matricial puede escribirse o y = X + e donde y es el vector de respuesta, y X es la matriz del modelo o matriz de diseo, formada n por las columnas x0 , x1 , . . . , xp , que son las variables predictoras. Muy a menudo x0 ser a una columna de unos y denir el punto de corte o trmino independiente. a e
Ejemplos
Antes de dar una denicin formal, algunos ejemplos ayudarn a centrar las ideas. o a Supongamos que y, x, x0, x1, x2, . . . son variables numricas, que X es una matriz y que e A, B, C, . . . son factores. Las frmulas que aparecen en la parte izquierda de la siguiente o tabla, especican los modelos estad sticos descritos en la parte de la derecha. yx y1+x Ambos denen el mismo modelo de regresin lineal de y sobre x. El primero o contiene el trmino independiente impl e cito y el segundo, expl cito.
y0+x y -1 + x y x - 1 Regresin lineal de y sobre x sin trmino independiente, esto es, que pasa por o e el origen de coordenadas. log(y) x1 + x2 Regresin mltiple de la variable transformada, log(y), sobre x 1 y x 2 (con un o u trmino independiente impl e cito).
56
y poly(x,2) y 1 + x + I(x^2) Regresin polinomial de y sobre x de segundo grado. La primera forma utiliza o polinomios ortogonales y la segunda utiliza potencias de modo expl cito. y X + poly(x,2) Regresin mltiple de y con un modelo matricial consistente en la matriz X y o u trminos polinomiales en x de segundo grado. e yA yA+x y y y y Anlisis de varianza de entrada simple de y, con clases determinadas por A. a Anlisis de covarianza de entrada simple de y, con clases determinadas por A, a y con covariante x.
A*B A + B + A:B B %in% A A/B Modelo no aditivo de dos factores de y sobre A y B. Los dos primeros especican la misma clasicacin cruzada y los dos ultimos especican la misma o clasicacin anidada. En trminos abstractos, los cuatro especican el mismo o e subespacio de modelos.
y (A + B + C)^2 y A*B*C - A:B:C Experimento con tres factores con un modelo que contiene efectos principales e interacciones de dos factores solamente. Ambas frmulas especican el mismo o modelo. yA*x y A/x y A/(1 + x) - 1 Modelos de regresin lineal simple separados de y sobre x para cada nivel de o A. La ultima forma produce estimaciones expl citas de tantos trminos indee pendientes y pendientes como niveles tiene A. y A*B + Error(C) Un experimento con dos factores de tratamiento, A y B, y estratos de error determinados por el factor C. Por ejemplo, un experimento split plot, con grcos completos (y por tanto tambin subgrcos) determinados por el factor a e a C. El operador se utiliza para denir una frmula de modelo en R. La forma, para un o modelo lineal ordinario es respuesta op 1 term 1 op 2 term 2 op 3 term 3 . . . donde respuesta op i term i es un vector o una matriz (o una expresin que evale a un vector o matriz) o u que denen, respectivamente, la o las variables respuesta es un operador, bien +, bien -, que implica la inclusin o exclusin, respectivao o mente, de un trmino en el modelo. El primero, +, es opcional. e es un trmino de uno de los siguientes tipos e
57
una expresin vectorial, una expresin matricial, o el nmero 1; o o o u un factor; o una expresin de frmula consistente en factores, vectores o matrices coneco o tados mediante operadores de frmula. o En todos los casos, cada trmino dene una coleccin de columnas que deben e o ser aadidas o eliminadas de la matriz del modelo. Un 1 signica un trmino n e independiente y est incluido siempre, salvo que se elimine expl a citamente. Los operadores de frmula son similares a la notacin de Wilkinson y Rogers utilizada en o o los programas Glim y Genstat. Un cambio inevitable es que el operador . se ha sustituido por : puesto que el punto es un carcter vlido para nombres de objetos en R. Un resumen a a de la notacin se encuentra en la siguiente tabla (basada en Chambers & Hastie, 1992, p.29). o Y M M1 +M2 Incluye M 1 y M 2. M1 -M2 Incluye M 1 exceptuando los trminos de M 2. e M1 :M2 El producto tensorial de M 1 y M 2. Si ambos son factores, corresponde al factor subclases. M 1 %in% M 2 Similar a M 1:M 2, pero con diferente codicacin. o M1 *M2 M 1 + M 2 + M 1:M 2. M1 /M2 M 1 + M 2 %in% M 1. M ^n I(M ) Todos los trminos de M junto a las interacciones hasta el orden n e A M. Dentro de M todos los operadores tienen su sentido aritmtico habitual sla e y este trmino aparece en la matriz del modelo. e Y se modeliza como M.
Advierta que, dentro de los parntesis que habitualmente rodean los argumentos de una e funcin, todos los operadores tienen su sentido aritmtico habitual. La funcin I() es o e o la funcin identidad, utilizada solamente para poder introducir trminos en las frmulas, o e o denindolos mediante operadores aritmticos. e e En particular, cuando las frmulas especican columnas de la matriz del modelo, la o especicacin de los parmetros es impl o a cita. Este no es el caso en otros contextos, por ejemplo en la especicacin de modelos no lineales. o
11.1.1 Contrastes
Es necesario conocer, aunque sea someramente, el modo en que las frmulas del modelo o determinan las columnas de la matriz del modelo. Esto es sencillo si las variables son
58
continuas, ya que cada una constituir una columna de dicha matriz. Del mismo modo, si a el modelo incluye un trmino independiente, contribuir con una columna de unos. e a En el caso de un factor, A, con k niveles, la respuesta depende de si el factor es nominal u ordinal. En el caso de un factor nominal, se generan k 1 columnas correspondientes a los indicadores desde el segundo hasta el k-simo nivel del factor. (Por tanto, la e parametrizacin impl o cita consiste en contrastar la respuesta del primer nivel frente a cada uno de los restantes niveles.) En el caso de un factor ordinal, las k 1 columnas son los polinomios ortogonales sobre 1, ..., k, omitiendo el trmino constante. e Esta situacin puede parecerle complicada, pero an hay ms. En primer lugar, si el o u a trmino independiente se omite en un modelo que contiene algn trmino de tipo factor, el e u e primero de dichos trminos se codica en k columnas correspondientes a los indicadores de e todos los niveles del factor. En segundo lugar, todo este comportamiento puede cambiarse mediante el argumento contrasts de options. Los valores predeterminados son: options(contrasts = c("contr.treatment", "contr.poly")) La razn por la que se indican estos valores es que los valores predeterminados en R son o distintos de los de S en el caso de factores nominales, ya que S utiliza los contrastes de Helmert. Por tanto, para obtener los mismos resultados que en S-Plus, deber escribir: a options(contrasts = c("contr.helmert", "contr.poly")) Esta diferencia es deliberada, ya que entendemos que los contrastes predeterminados de R son ms sencillos de interpretar para los principiantes. a Caben an ms posibilidades, ya que el esquema de contraste a utilizar puede jarse u a para cada trmino del modelo utilizando las funciones contrasts y C. e Tampoco hemos considerado los trminos de interaccin, que generan los productos de e o las columnas introducidas por los trminos de sus componentes. e Pese a que los detalles son complicados, las frmulas de modelos en R generan habio tualmente los modelos que un estad stico experto podr esperar, supuesto que se preserve a la marginalidad. Por ejemplo, el ajuste de un modelo con interaccin y, sin embargo, sin o los correspondientes efectos principales conducir en general a resultados sorprendentes, y a debe reservarse slo a los especialistas. o
59
A continuacin se incluye una breve descripcin de las ms utilizadas. o o a anova(objeto 1, objeto 2) Compara un submodelo con un modelo externo y produce una tabla de anlisis a de la varianza. coefficients(objeto) Extrae la matriz de coecientes de regresin. o Forma reducida: coef(objeto). deviance(objeto) Suma de cuadrados residual, ponderada si es lo apropiado. formula(objeto) Extrae la frmula del modelo. o plot(objeto) Crea cuatro grcos que muestran los residuos, los valores ajustados y algunos a diagnsticos o predict(objeto, newdata=hoja.de.datos) La nueva hoja de datos que se indica debe tener variables cuyas etiquetas coincidan con las de la original. El resultado es un vector o matriz de valores predichos correspondiente a los valores de las variables de hoja.de.datos. print(objeto) Imprime una versin concisa del objeto. A menudo se utiliza impl o citamente. residuals(objeto) Extrae la matriz de residuos, ponderada si es necesario. La forma reducida es resid(objeto). step(objeto) Selecciona un modelo apropiado aadiendo o eliminando trminos y preservando n e las jerarqu Se devuelve el modelo que en este proceso tiene el mximo valor as. a 1 de AIC . summary(objeto) Imprime un resumen estad stico completo de los resultados del anlisis de rea gresin. o
1
60
Su acrnimo en ingls es ANOVA, de ANalysis Of Variance. En alguna literatura en espaol, el acrnimo o e n o se sustituye por ANDEVA, de ANlisis DE VArianza. a
61
donde es un parmetro de escala (posiblemente conocido) que permanece constante a para todas las observaciones, A representa una ponderacin a priori que se supone o
62
conocida pero que puede variar con las observaciones, y es la media de y. Por tanto, se supone que la distribucin de y queda determinada por su media y tal vez un o parmetro de escala. a La media, , es una funcin inversible del predictor lineal: o = m(), = m1 () = ()
y esta funcin inversa, (), se denomina funcin de enlace. o o Estas suposiciones son sucientemente amplias para acomodar una amplia clase de modelos utiles en la prctica estad a stica y, al tiempo, sucientemente estrictas como para permitir el desarrollo de una metodolog unicada de estimacin e inferencia, al menos aproxia o madamente. Los interesados en este tema pueden consultar cualquiera de los trabajos de referencia sobre este tema, tales como McCullagh & Nelder (1989) o Dobson (1990).
11.6.1 Familias
La clase de modelos lineales generalizados que pueden ser tratados en R incluye las distribuciones de respuesta gaussian (normal), binomial, poisson, inverse gaussian (normal inversa) y gamma as como los modelos de quasi-likelihood (cuasi-verosimilitud) cuya distribucin de respuesta no est expl o a citamente denida. En este ultimo caso debe especi carse la funcin de varianza como una funcin de la media, pero en el resto de casos esta o o funcin est impl o a cita en la distribucin de respuesta. o Cada distribucin de respuesta admite una variedad de funciones de enlace para coneco tar la media con el predictor lineal. La tabla siguiente recoge las que estn disponibles a automticamente. a Nombre de la familia binomial gaussian Gamma inverse.gaussian poisson quasi Funcin de enlace o logit, probit, cloglog identity identity, inverse, log 1/mu^2 identity, log, sqrt logit, probit, cloglog, identity, inverse, log, 1/mu^2, sqrt
La combinacin de una distribucin de respuesta, una funcin de enlace y otras informao o o ciones que son necesarias para llevar a cabo la modelizacin se denomina familia del modelo o lineal generalizado.
63
> modelo.ajustado <- glm(formula.de.modelo, family = generador.de.familia, data=hoja.datos) La unica caracter stica nueva es generador.de.familia que es el instrumento mediante el que se describe la familia. Es el nombre de una funcin que genera una lista de funciones y o expresiones que, juntas, denen y controlan el modelo y el proceso de estimacin. Aunque o puede parecer complicado a primera vista, su uso es bastante sencillo. Los nombres de los generadores de familias estndar suministrados con R aparecen en a la tabla de la Seccin 11.6.1 [Familias], pgina 62 con la denominacin de Nombre de o a o la familia. Si adems debe seleccionar una funcin de enlace, debe indicarla como un a o parmetro, entre parntesis, del nombre de la familia. En el caso de la familia quasi, la a e funcin de varianza puede especicarse del mismo modo. o Veamos algunos ejemplos.
64
Esto es, el punto en que el argumento de la funcin de distribucin es cero. o o El primer paso es preparar los datos en una hoja de datos > kalythos <- data.frame(x = c(20,35,45,55,70), n = rep(50,5), y = c(6,17,26,37,44)) Para ajustar un modelo binomial utilizando glm() existen dos posibilidades para la respuesta: Si la respuesta es un vector, entonces debe corresponder a datos binarios y por tanto slo debe contener ceros y unos. o Si la respuesta es una matriz de dos columnas, la primera columna debe contener el nmero de xitos y la segunda el de fracasos. u e Aqu vamos a utilizar la segunda de estas convenciones, por lo que debemos aadir una n matriz a la hoja de datos: > kalythos$Ymat <- cbind(kalythos$y, kalythos$n - kalythos$y) Para ajustar los modelos utilizamos > fmp <- glm(Ymat x, family = binomial(link=probit), data = kalythos) > fml <- glm(Ymat x, family = binomial, data = kalythos) Puesto que la funcin de enlace logit es la predeterminada, este parmetro puede omitirse o a en la segunda expresin. Para ver los resultados de cada ajuste usaremos o > summary(fmp) > summary(fml) Ambos modelos se ajustan bien (demasiado bien). Para estimar LD50 podemos usar la siguiente funcin: o > ld50 <- function(b) -b[1]/b[2] > ldp <- ld50(coef(fmp)); ldl <- ld50(coef(fmp)); c(ldp, ldl) y obtendremos los valores 43.663 y 43.601 respectivamente.
65
donde x1 = z2 /z1 , x2 = 1/x1 , 1 = 1/1 y 2 = 2 /1 . Suponiendo que existe una hoja de datos apropiada, bioquimica, podemos ajustar este modelo mediante > nlfit <- glm(y x1 + x2 - 1, family = quasi(link=inverse, variance=constant), data = bioquimica) Si desea mayor informacin, lea las ayudas correspondientes. o
66
> x <- c(0.02, 0.02, 0.06, 0.06, 0.11, 0.11, 0.22, 0.22, 0.56, 0.56, 1.10, 1.10) > y <- c(76, 47, 97, 107, 123, 139, 159, 152, 191, 201, 207, 200) El modelo a ajustar es: > fn <- function(p) sum((y - (p[1] * x)/(p[2] + x))^2) Para realizar el ajuste necesitamos unos valores iniciales de los parmetros. Una forma de a encontrar unos valores iniciales apropiados es representar grcamente los datos, conjeturar a unos valores de los parmetros, y dibujar sobre los datos la curva correspondiente a estos a valores. > plot(x, y) > xajustado <- seq(.02, 1.1, .05) > yajustado <- 200*xajustado/(.1+xajustado) > lines(spline(xajustado,yajustado)) Aunque se podr tratar de encontrar unos valores mejores, los valores obtenidos, 200 y a 0.1, parecen adecuados. Ya podemos realizar el ajuste: > resultado <- nlm(fn,p=c(200,.1),hessian=TRUE) Tras el ajuste, resultado$minimum contiene SSE, y resultado$estimates contiene los estimadores por m nimos cuadrados de los parmetros. Para obtener los errores t a picos aproximados de los estimadores (SE) escribimos lo siguiente: > sqrt(diag(2*resultado$minimum/(length(y) - 2) * solve(resultado$hessian))) El nmero 2 en dicha expresin representa el nmero de parmetros. Un intervalo de u o u a conanza al 95% ser: El estimador del parmetro 1.96 SE. Podemos representar el ajuste a a en un nuevo grco: a > plot(x,y) > xajustado <- seq(.02,1.1,.05) > yajustado <- 212.68384222*xajustado/(0.06412146+xajustado) > lines(spline(xajustado,yajustado)) La biblioteca nls contiene muchas ms posibilidades para ajustar modelos no lineales por a m nimos cuadrados. El modelo que acabamos de ajustar es el modelo de Michaelis-Menten, por tanto podemos usar > df <- data.frame(x=x, y=y) > fit <- nls(y SSmicmen(x, Vm, K), df) > fit Nonlinear regression model model: y SSmicmen(x, Vm, K) data: df Vm K 212.68370711 0.06412123 residual sum-of-squares: 1195.449 > summary(fit) Formula: y SSmicmen(x, Vm, K) Parameters: Estimate Std. Error t value Pr(>|t|)
67
Vm 2.127e+02 K 6.412e-02
6.947e+00 8.281e-03
Residual standard error: 10.93 on 10 degrees of freedom Correlation of Parameter Estimates: Vm K 0.7651
68
La biblioteca modreg contiene la funcin loess as como posibilidades de regresin o o projection pursuit. Regresin robusta. Existen varias funciones para ajustar modelos de regresin o o resistentes a la inuencia de valores anmalos (outliers) en los datos. La funcin o o lqs en la biblioteca del mismo nombre contiene los algoritmos ms recientes para a ajustes altamente resistentes. Otras funciones menos resistentes pero ms ecientes a estad sticamente se encuentran en otras bibliotecas creadas por usuarios, por ejemplo la funcin rlm en la biblioteca MASS. o Modelos aditivos. Esta tcnica intenta construir una funcin de regresin a partir de e o o funciones aditivas suaves de las variables predictoras, habitualmente una por cada variable predicha. Las funciones avas y ace en la biblioteca acepack y las funciones bruto y mars de la biblioteca mda son ejemplos de estas tcnicas contenidas en bibliotecas e creadas por usuarios para R. Modelos basados en rboles. En vez de buscar un modelo lineal global expl a cito para prediccin o interpretacin, los modelos basados en rboles intentan bifurcar los datos, o o a recursivamente, en puntos cr ticos de las variables predictoras con la nalidad de conseguir una particin de los datos en grupos tan homogneos dentro del grupo y tan o e heterogneos de un grupo a otro, como sea posible. Los resultados a menudo cone ducen a una comprensin de los datos que otros mtodos de anlisis de datos no suelen o e a suministrar. Los modelos se especican en la forma de un modelo lineal ordinario. La funcin de o ajuste es tree(), y muchas funciones genricas, como plot() y text() pueden mostrar e los resultados de este ajuste de modo grco. a Puede encontrar estos modelos en las bibliotecas creadas por usuarios rpart y tree.
69
12 Procedimientos grcos a
Las posibilidades grcas son un componente de R muy importante y verstil. Es posia a ble utilizarlas para mostrar una amplia variedad de grcos estad a sticos y tambin para e construir nuevos tipos de grcos. a Los grcos pueden usarse tanto en modo interactivo como no interactivo, pero en la a mayor de los casos el modo interactivo es ms productivo. Adems al iniciar R en este a a a modo, se activa un dispositivo para mostrar grcos. Aunque este paso es automtico, es a a util conocer que la orden es X11(), aunque tambin puede usar windows() en Microsoft e Windows. Las rdenes grcas se dividen en tres grupos bsicos: o a a Alto nivel Son funciones que crean un nuevo grco, posiblemente con ejes, etiquetas, a t tulos, etc.. Bajo nivel Son funciones que aaden informacin a un grco existente, tales como n o a puntos adicionales, l neas y etiquetas. Interactivas Son funciones que permiten interactuar con un grco, aadiendo o elimia n nando informacin, utilizando un dispositivo apuntador, como un ratn. o o Adems, en R existe una lista de parmetros grcos que pueden utilizarse para adaptar a a a los grcos. a
plot(f ) plot(f, y) Sean f un factor, e y un vector numrico. La primera forma genera un diagrama e de barras de f ; la segunda genera diagramas de cajas de y para cada nivel de f.
70
plot(hd) plot( expr) plot(y expr) Sean hd, una hoja de datos; y, un objeto cualquiera; y expr, una lista de nombres de objetos separados por s mbolos + (por ejemplo, a + b + c). Las dos primeras formas producen diagramas de todas las parejas de variables de la hoja de datos hd (en el primer caso) y de los objetos de la expresin expr o (en el segundo caso). La tercera forma realiza sendos grcos de y sobre cada a objeto nombrado en la expresin expr (uno para cada objeto). o
71
qqnorm(x) qqline(x) qqplot(x, y) Grcos de comparacin de distribuciones. El primero representa el vector x a o sobre los valores esperados normales. El segundo le aade una recta que pasa n por los cuartiles de la distribucin y de los datos. El tercero representa los o cuantiles de x sobre los de y para comparar sus distribuciones respectivas. hist(x) hist(x, nclass=n) hist(x, breaks=b, ...) Produce un histograma del vector numrico x. El nmero de clases se cale u cula habitualmente de modo correcto, pero puede elegir uno con el argumento nclass, o bien especicar los puntos de corte con el argumento breaks. Si est a presente el argumento probability=TRUE, se representan frecuencias relativas en vez de absolutas. dotplot(x, ...) Construye un grco de puntos de x. En este tipo de grcos, el eje y etiqueta a a los datos de x y el eje x da su valor. Por ejemplo, permite una seleccin visual o sencilla de todos los elementos con valores dentro de un rango determinado. image(x, y, z, ...) contour(x, y, z, ...) persp(x, y, z, ...) Grcos tridimensionales. image representa una ret a cula de rectngulos con a colores diferentes segn el valor de z, contour representa curvas de nivel de z, u y persp representa una supercie tridimensional de z.
axes=FALSE
Hace que el eje x, el eje y, o ambos ejes, sean logar tmicos. En algunos grcos a no tiene efecto. Este argumento controla el tipo de grco producido, de acuerdo a las siguientes a posibilidades: type="p" Dibuja puntos individuales. Este es el valor predeterminado
72
Dibuja l neas Dibuja puntos y l neas que los unen Dibuja puntos y l neas que los unen, cubrindolos e Dibuja l neas verticales desde cada punto al eje X Dibuja un grco de escalera. En la primera forma, la escalera a comienza hacia la derecha, en la segunda, hacia arriba. No se realiza ningn grco, aunque se dibujan los ejes (salvo indiu a cacin en contra) y se prepara el sistema de coordenadas de acuerdo o a los datos. Suele utilizarse para crear grcos en los que a contia nuacin se utilizarn rdenes de nivel bajo. o a o
xlab=cadena ylab=cadena Denen las etiquetas de los ejes x e y, en vez de utilizar las etiquetas predeterminadas, que normalmente son los nombres de los objetos utilizados en la llamada a la funcin grca de nivel alto. o a main=cadena T tulo del grco, aparece en la parte superior con tamao de letra grande. a n sub=cadena Subt tulo del grco, aparece debajo del eje x con tamao de letra pequeo. a n n
73
abline(a, b) abline(h=y) abline(v=x) abline(lm.obj) Aade al grco actual, una recta de pendiente b y ordenada en el origen a. n a La forma h=y representa una recta horizontal de altura y, y la forma v=x, una similar, vertical. En el cuarto caso, lm.obj puede ser una lista con un componente coefficients de longitud 2 (como el resultado de una funcin de o ajuste de un modelo) que se interpretan como ordenada y pendiente, en ese orden. polygon(x, y, ...) Aade al grco actual un pol n a gono cuyos vrtices son los elementos de (x,y); e (opcionalmente) sombreado con l neas, o relleno de color si el perifrico lo ade mite. legend(x, y, letrero, ...) Aade al grco actual un letrero o leyenda, en la posicin especicada. Los n a o caracteres para dibujar, los estilos de l neas, los colores, etc. estn identicados a con los elementos del vector letrero. Debe darse al menos otro argumento ms, v, un vector de la misma longitud que letrero, con los correspondientes a valores de dibujo, como sigue: legend( , fill=v) Colores para rellenar legend( , col=v) Colores de puntos y l neas legend( , lty=v) Tipos de l nea legend( , lwd=v) Anchura de l nea legend( , pch=v) Caracteres para dibujar (vector de caracteres) title(main, sub) Aade un t n tulo, main, en la parte superior del grco actual, de tamao grande, a n y un subt tulo, sub, en la parte inferior, de tamao menor. n axis(side, ...) Aade al grco actual un eje en el lado indicado por el primer argumento (de n a 1 a 4, en el sentido de las agujas del reloj, siendo el 1 la parte inferior). Otros argumentos controlan la posicin de los ejes, dentro o fuera del grco, las o a marcas y las etiquetas. Es util para aadir ejes tras utilizar la funcin plot() n o con el argumento axes=FALSE. Las funciones grcas de nivel bajo necesitan normalmente alguna informacin de a o posicin, como las coordenadas x e y, para determinar dnde colocar los nuevos elementos. o o Las coordenadas se dan en trminos de coordenadas de usuario, las cuales estn denidas e a
74
por las funciones grcas de alto nivel previas y se toman en funcin de los datos a o suministrados a estas funciones. Los dos argumentos, x e y, pueden sustituirse por un solo argumento de clase lista con dos componentes llamados x e y, o por una matriz con dos columnas. De este modo, funciones como locator(), que vemos a continuacin, pueden usarse para especicar interactivamente o posiciones en un grco. a
75
dibujar. La funcin locator() devuelve las coordenadas de los puntos seleco cionados en una lista con dos componentes, x e y. La funcin locator() suele utilizarse sin argumentos. Es particularmente util para o seleccionar interactivamente posiciones para elementos grcos tales etiquetas cuando es a dif calcular previamente dnde deben colocarse. Por ejemplo, para colocar un texto cil o informativo junto a un punto anmalo, la orden o > text(locator(1), "Anmalo", adj=0) o puede ser util. En el caso de que no se disponga de ratn, la funcin locator() an puede o o u ser utilizada; en este caso se preguntarn al usuario las coordenadas de x e y. a identify(x, y, etiquetas) Permite identicar cualquiera de los puntos denidos por x e y utilizando el botn primario del ratn, dibujando la correspondiente componente de o o etiquetas al lado (o el ndice del punto si no existe etiquetas). Al pulsar el botn secundario del ratn, devuelve los o o ndices de los puntos seleccionados. A veces interesa identicar puntos particulares en un grco y no sus posiciones. Por a ejemplo, si queremos que el usuario seleccione una observacin de inters y, posteriormente, o e manipularla en algn modo. Dado un nmero de coordenadas, (x, y), en dos vectores u u numricos, x e y, podr e amos usar la funcin identify() del siguiente modo: o > plot(x, y) > identify(x, y) La funcin identify() no realiza ningn grco por s misma sino que permite al usuario o u a mover el puntero del ratn y pulsar junto a un punto. El punto ms prximo al puntero o a o (si est sucientemente prximo) se identicar dibujando junto a l su nmero a o a e u ndice, esto es, la posicin que ocupa en los vectores x e y. Alternativamente podr haber utilizado o a una cadena de caracteres (como por ejemplo el nombre del caso) para la identicacin, o utilizando el argumento etiquetas, o inhabilitar la identicacin utilizando el argumento o plot=FALSE. Cuando se pulsa el botn secundario, la funcin devuelve los o o ndices de los puntos seleccionados, que podrn ser utilizados para obtener los puntos correspondientes a de los vectores x e y.
76
par(c("col", "lty")) Con un vector de caracteres como argumento, devuelve una lista que contiene slo los valores de los parmetros citados. o a par(col=4, lty=2) Con argumentos con nombre (o una lista como argumento) establece los valores de estos parmetros y devuelve (de modo invisible) una lista con los valores a originales de los parmetros. a Al modicar cualquier parmetro con la funcin par(), la modicacin es permanente, en a o o el sentido de que cualquier llamada a una funcin grca (en el mismo dispositivo grco) o a a vendr afectada por dicho valor. Puede pensarse que este tipo de asignacin equivale a a o modicar los valores predeterminados de los parmetros que utilizarn las funciones grcas a a a salvo que se les indique un valor alternativo. Las llamadas a la funcin par() siempre afectan a los valores globales de los parmetros o a grcos, incluso aunque la llamada se realice desde una funcin. Esta conducta a menudo no a o es satisfactoria; habitualmente desear amos modicar algunos parmetros, realizar algunos a grcos y volver a los valores originales para no afectar a la sesin completa de R. Este a o trabajo recae en el usuario, que debe almacenar el resultado de par() cuando realice algn u cambio y restaurarlo cuando el grco est completo. a e > par.anterior <- par(col=4,lty=2) . . . varias rdenes grcas . . . o a > par(par.anterior)
77
nombre=valor Descripcin del efecto del parmetro. nombre es el nombre del parmetro, esto o a a es, el nombre del argumento que debe usar en la funcin par() o cualquier o funcin grca. valor es un valor t o a pico del parmetro. a
pch=4
lty=2
lwd=2 col=2
font=2
font.axis font.lab font.main font.sub Es la fuente que se utilizar, respectivamente, para escribir en los ejes, para el a etiquetado de x e y, y para el t tulo y el subt tulo. adj=-0.1 Indica cmo debe justicarse el texto respecto de la posicin de dibujo. Un 0 o o indica justicacin a la izquierda, un 1 indica justicacin a la derecha, y un o o 0.5 indica centrado. Puede usar cualquier otro valor que indicar la proporcin a o de texto que aparece a la izquierda de la posicin de dibujo, por tanto un valor o de -0.1 dejar un 10% de la anchura del texto entre el mismo y la posicin de a o dibujo. Es el carcter de expansin. Su valor indica el tamao de los caracteres de a o n texto (incluidos los caracteres de dibujo) respecto del tamao predeterminado. n
cex=1.5
78
mgp=c(3, 1, 0) Son las posiciones de las componentes de los ejes. La primera es la distancia desde la etiqueta del eje al propio eje, medida en l neas de texto. La segunda es la distancia hasta las etiquetas de divisin. La tercera y ultima es la distancia o desde el eje a la l nea del eje (normalmente cero). Los valores positivos indican que est fuera de la zona de dibujo, y los negativos indican que est dentro. a a tck=0.01 Es la longitud de las marcas de divisin, dada como una fraccin de la zona de o o dibujo. Cuando tck es pequeo (menos de 0.5) las marcas de divisin de ambos n o ejes sern del mismo tamao. Un valor de 1 har que aparezca una rejilla. Si a n a el valor es negativo, las marcas de divisin se harn por la parte exterior de la o a zona de dibujo. Utilice tck=0.01 y mgp=c(1,-1.5,0) para obtener marcas de divisin internas. o Estilo de eje de los ejes x e y respectivamente. Con los estilos "s" (estndar) y a "e" (extendido) tanto la mayor marca como la menor caen fuera del intervalo de los datos. Los ejes extendidos pueden ampliarse levemente si hay algn punto u muy prximo al borde. Este estilo de ejes puede dejar a veces grandes zonas en o blanco cerca de los bordes. Con los estilos "i" (interno) y "r" (predeterminado) las marcas de divisin siempre caen dentro del rango de los datos, aunque el o estilo "r" deja un pequeo espacio en los bordes. n Si selecciona el estilo "d" (directo) se procede a bloquear los ejes actuales y los utiliza para los siguientes grcos hasta que el parmetro se cambie a otro a a de los valores. Este procedimiento es util para generar series de grcos con a escalas jas.
xaxs="s" yaxs="d"
79
mar[3]
Plot region
1.5
mai[2]
1.5 3.0 3.0
0.0
1.5
0.0 x
1.5
3.0
mai[1]
Margin
mai=c(1, 0.5, 0.5, 0) Anchuras de los mrgenes inferior, izquierdo, superior y derecho respectivaa mente, medidos en pulgadas. mar=c(4, 2, 2, 1) Similar a mai, pero medido en l neas de texto.
Los parmetros mar y mai estn relacionados en el sentido de que un cambio en uno se a a reeja en el otro. Los valores predeterminados son a menudo demasiado grandes, el margen derecho se necesita raramente, igual que el superior si no se incluye t tulo. Los mrgenes a inferior e izquierdo slo necesitan el tamao preciso para incluir las etiquetas de ejes y de o n divisin. Adems el valor predeterminado no tiene en cuenta la supercie del dispositivo o a grco. As si utiliza el dispositivo postscript() con el argumento height=4 obtendr a , a un grco en que la mitad del mismo son mrgenes, salvo que expl a a citamente cambie mar o mai. Cuando hay guras mltiples, como veremos despus, los mrgenes se reducen a la u e a mitad, aunque suele ser insuciente cuando varias guras comparten la misma pgina. a
80
omi[4]
mfg=c(3,2,3,2)
mfrow=c(3,2)
omi[1]
Los parmetros grcos relacionados con las guras mltiples son los siguientes: a a u mfcol=c(3, 2) mfrow=c(2, 4) Denen el tamao de la matriz de guras mltiples. En ambos, el primer valor n u es el nmero de las, el segundo el de columnas. La diferencia entre los dos, es u que con el primero, mfcol, la matriz se rellena por columnas, en tanto que con el segundo, mfrow, lo hace por las. La distribucin en la gura del ejemplo se o ha creado con mfrow=c(3,2) y se ha representado la pgina en el momento en a que se han realizado los cuatro primeros grcos. a mfg=c(2, 2, 3, 2) Denen la posicin de la gura actual dentro de la matriz de guras mltiples. o u Los dos primeros valores indican la la y columna de la gura actual, en tanto que los dos ultimos son el nmero de las y columnas de la matriz de guras u mltiples. Estos parmetros se utilizan para seleccionar cada una de las difeu a rentes guras de la matriz. Incluso, los dos ultimos valores pueden ser distintos de los verdaderos valores, para poder obtener guras de tamaos distintos en n la misma pgina. a fig=c(4, 9, 1, 4)/10 Denen la posicin de la gura actual en la pgina. Los valores son las posiciones o a de los bordes izquierdo, derecho, inferior y superior respectivamente, medidos como la proporcin de pgina desde la esquina inferior izquierda. El ejemplo o a corresponder a una gura en la parte inferior derecha de la pgina. Este a a parmetro permite colocar una gura en cualquier lugar de la pgina. a a oma=c(2, 0, 3, 0) omi=c(0, 0, 0.8, 0) Denen el tamao de los mrgenes exteriores. De modo similar a mar y mai, el n a primero est expresado en l a neas de texto y el segundo en pulgadas, corresponden a los mrgenes inferior, izquierdo, superior y derecho respectivamente. a Los mrgenes exteriores son particularmente utiles para ajustar convenientemente los a t tulos, etc. Puede aadir texto en estos mrgenes con la funcin mtext() sin ms que n a o a
81
utilizar el argumento outer=T. R no crea mrgenes exteriores predeterminadamente, pero a pueden crearse utilizando las funciones oma y omi. Es posible crear disposiciones de guras mltiples ms complejas utilizando las funciones u a split.screen() y layout().
postscript() Para imprimir en impresoras PostScript o crear archivos con este formato. pictex() Crea un archivo para LaTEX.
Al terminar de utilizar un dispositivo, asegrese de nalizar el mismo utilizando la orden u > dev.off() Esta orden asegura que el dispositivo naliza correctamente; por ejemplo en el caso de una impresora asegura que cada pgina sea completada y enviada a la impresora. a
Acrnimo en ingls de o e
Encapsulated PostScript
82
consecuencia de la compatibilidad con S e indica que la salida est constituida por una sola a pgina. Por tanto para crear un grco que se pueda incluir sin problema en cualquier a a procesador, deber utilizar una orden anloga a la siguiente: a a > postscript("grafico.eps", horizontal=FALSE, onefile=FALSE, height=8, width=6, pointsize=10)
83
dev.copy(device, ..., which=k) dev.print(device, ..., which=k) realiza una copia del dispositivo k. Aqu device, es una funcin de disposi, o tivo, como postscript, con argumentos adicionales si es necesario, especicados por .... La funcin dev.print es similar, pero el dispositivo copiado se o cierra inmediatamente, lo que naliza las acciones pendientes que se realizan inmediatamente. graphics.off() Cierra todos los dispositivos grcos de la lista, excepto el dispositivo nulo. a
84
help.start() Muestra la ayuda interactiva, que est escrita en formato html, utilizando el a lector WEB disponible en el ordenador. Si utiliza esta ayuda comprender a mejor el funcionamiento de R. Minimice la ventana de ayuda y contine la sesin. u o x <- rnorm(50) y <- rnorm(x) Genera dos vectores que contienen cada uno 50 valores pseudoaleatorios obtenidos de una distribucin normal (0,1) y los almacena en x e y. o plot(x, y) Aparecer una ventana grca automticamente. En ella se representan los a a a puntos antes generados, tomando cada componente de x y de y como las coordenadas de un punto del plano. ls() rm(x, y) Presenta los nombres de los objetos existentes en ese momento en el espacio de trabajo de R. Elimina los objetos x e y.
x <- 1:20 Almacena en x el vector (1, 2, . . . , 20). w <- 1 + sqrt(x)/2 A partir del vector x, crea un vector ponderado de desviaciones t picas, y lo almacena en w. hoja.de.datos <- data.frame(x=x, y= x + rnorm(x)*w) hoja.de.datos Crea una hoja de datos de dos columnas, llamadas x e y, y la almacena en hoja.de.datos. A continuacin la presenta en pantalla. o regr <- lm(y x, data=hoja.de.datos) summary(regr) Realiza el ajuste de un modelo de regresin lineal de y sobre x, lo almacena en o regr, y presenta en pantalla un resumen del anlisis. a
85
regr.pon <- lm(y x, data=hoja.de.datos, weight=1/w^2) summary(regr.pon) Puesto que se conocen las desviaciones t picas, puede realizarse una regresin o ponderada. attach(hoja.de.datos) Conecta la hoja de datos, de tal modo que sus columnas aparecen como variables. regr.loc <- lowess(x, y) Realiza una regresin local no paramtrica. o e plot(x, y) Representa el grco bidimensional estndar. a a lines(x, regr.loc$y) Le aade la regresin local. n o abline(0, 1, lty=3) Le aade la verdadera recta de regresin (punto de corte 0, pendiente 1). n o abline(coef(regr)) Le aade la recta de regresin no ponderada. n o abline(coef(regr.pon), col = "red") Le aade la recta de regresin ponderada. n o detach() Desconecta la hoja de datos, eliminndola de la trayectoria de bsqueda. a u
plot(fitted(regr), resid(regr), xlab="Predichos", ylab="Residuos", main="Residuos / Predichos") Un grco diagnstico de regresin para investigar la posible heteroscedasticia o o dad. qqnorm(resid(regr), main="Residuos por rangos") Grco en papel probabil a stico normal para comprobar asimetr aplastamiento a, y datos anmalos. (No es muy util en este caso) o rm(x,w,hoja.de.datos,regr,regr.pon,regr.loc) Elimina los objetos creados. file.show("morley.data") Presenta el contenido del archivo. mm <- read.table("morley.data") mm Lee los datos de Michaelson y Morley y los almacena en la hoja de datos mm, y la muestra en pantalla a continuacin. Hay cinco experimentos (columna Expt) o y cada uno contiene 20 series (columna Run) y la columna Speed contiene la velocidad de la luz medida en cada caso, codicada apropiadamente. mm$Expt <- factor(mm$Expt) mm$Run <- factor(mm$Run) Transforma Expt y Run en factores.
86
attach(mm) Conecta la hoja de datos en la posicin predeterminada: la 2. o plot(Expt, Speed, main="Velocidad de la luz", xlab="No. Experimento") Compara los cinco experimentos mediante diagramas de cajas. fm <- aov(Speed Run + Expt, data=mm) summary(fm) Analiza los datos como un diseo en bloques aleatorizados, tomando las series n y los experimentos como factores. fm0 <- update(fm, . . - Run) anova(fm0,fm) Ajusta el submodelo eliminando las series, y lo compara utilizando un anlisis a de la varianza. detach() rm(fm, fm0) Desconecta la hoja de datos y elimina los objetos creados, antes de seguir adelante. Consideraremos ahora nuevas posibilidades grcas. a x <- seq(-pi, pi, len=50) y <- x x es un vector con 50 valores equiespaciados en el intervalo x . El vector y es idntico a x. e f <- outer(x, y, function(x, y) cos(y)/(1 + x^2)) f es una matriz cuadrada, cuyas las y columnas estn indexadas por x e y a respectivamente, formada por los valores de la funcin cos(y)/(1 + x2 ). o oldpar <- par(no.readonly = TRUE) par(pty="s") Almacena los parmetros grcos y modica el parmetro pty (zona de dibujo) a a a para que valga s (cuadrado). contour(x, y, f) contour(x, y, f, nlevels=15, add=TRUE) Dibuja un mapa de curvas de nivel de f ; y despus le aade ms l e n a neas para obtener ms detalle. a fa <- (f-t(f))/2 fa es la parte asimtrica de f . (t(f) es la traspuesta de f). e contour(x, y, fa, nint=15) Dibuja un mapa de curvas de nivel,. . . par(oldpar) . . . y recupera los parmetros grcos originales. a a image(x, y, f) image(x, y, fa) Dibuja dos grcos de densidad a
87
objects(); rm(x, y, f, fa) Presenta los objetos existentes y elimina los objetos creados, antes de seguir adelante. Con R tambin puede utilizar nmeros complejos. 1i se utiliza para representar la e u unidad imaginaria, i. th <- seq(-pi, pi, len=100) z <- exp(1i*th) par(pty="s") plot(z, type="l") La representacin grca de un argumento complejo consiste en dibujar la parte o a imaginaria frente a la real. En este caso se obtiene un c rculo. w <- rnorm(100) + rnorm(100)*1i Suponga que desea generar puntos pseudoaleatorios dentro del c rculo unidad. Un primer intento consiste en generar puntos complejos cuyas partes real e imaginaria, respectivamente, procedan de una normal (0,1) . . . w <- ifelse(Mod(w) > 1, 1/w, w) . . . y sustituir los que caen fuera del c rculo por sus inversos. plot(w, xlim=c(-1,1), ylim=c(-1,1), pch="+",xlab="x", ylab="y") lines(z) Todos los puntos estn dentro del c a rculo unidad, pero la distribucin no es o uniforme. w <- sqrt(runif(100))*exp(2*pi*runif(100)*1i) plot(w, xlim=c(-1,1), ylim=c(-1,1), pch="+", xlab="x", ylab="y") lines(z) Este segundo mtodo utiliza la distribucin uniforme. En este caso, los puntos e o presentan una apariencia ms uniformemente espaciada sobre el c a rculo. rm(th, w, z) De nuevo elimina los objetos creados, antes de seguir adelante. q() Termina el programa R. Se le preguntar si desea salvar el espacio de trabajo. a Puesto que esta sesin ha sido solamente de presentacin, probablemente deo o ber contestar que no. a
Apendice B: Ejecucin de R o
88
Apendice B Ejecucin de R o
B.1 Ejecucin de R en UNIX o
La orden R se utiliza para ejecutar R con diferentes opciones, de la forma R [opciones] [<archivoentrada] [>archivosalida], o, a travs del interfaz R CMD, para acceder a varias herramientas de R (por ejemplo, para e procesar archivos de formato de documentacin de R o manipular bibliotecas) que no estn o a diseadas para ser usadas directamente. n Muchas opciones controlan lo que ocurre al comenzar y al terminar una sesin de R. El o mecanismo de inicio (Utilice help(Startup) para informacin actualizada) es el siguiente: o Salvo que se especique la opcin --no-environ, R busca el archivo .Renviron en el o directorio actual; si no lo encuentra, busca el archivo indicado en la variable de entorno R_ENVIRON, y si esta variable no existe, busca el archivo .Renviron en el directorio inicial del usuario. Si encuentra alguno de estos archivos, se ejecuta (como si se lo diese como argumento a la funcin source dentro de R) para dar valores a las variables de o entorno. Las variables se exportan automticamente, supuesto que se les d valor en a e l neas de la forma nombre=valor. Algunas de estas variables son: R_PAPERSIZE (tamao predeterminado del papel), n R_PRIMTCMD (orden predeterminada de impresin), o R_LIBS (lista de bibliotecas que deben buscarse), y R_VSIZE y R_NSIZE que describiremos despus. e A continuacin, R busca el perl de inicio global (para todos los usuarios) salvo que o se haya especicado la opcin --no-site-file. El nombre de este archivo se toma o del valor de la variable de entorno R_PROFILE. Si esta variable no existe, el valor predeterminado es $R_HOME/etc/Rprofile. Una vez acabado el paso anterior, si no se ha especicado la opcin --no-init-file, o R busca un archivo llamado .Rprofile en el directorio actual, y si no lo encuentra all lo busca en el directorio inicial del usuario. Si encuentra el archivo, lo ejecuta. , Si existe un archivo llamado .RData, que contenga una imagen de espacio de trabajo, lo utiliza para restaurar el espacio de trabajo, salvo que se haya especicado la opcin o --no-restore. Por ultimo, si existe una funcin llamada .First, la ejecuta. (Del mismo modo, si o existe una funcin llamada .Last ser ejecutada al nalizar la sesin de R) La funcin o a o o puede denirse en los perles de inicio o residir en el archivo de imagen .RData. Adems de todo lo indicado, existen opciones para controlar la memoria disponible en a una sesin de R (Utilice help(Memory) para disponer de informacin actualizada). R o o utiliza un modelo de memoria esttico. Esto es, en el momento de iniciarse, el sistema a operativo le reserva una cantidad ja de memoria, que no puede alterarse durante la sesin. o Por tanto, pudiera ocurrir que no exista memoria suciente en algn momento para realizar u una accin, por ejemplo, para leer un archivo de datos muy grande. Las opciones --nsize o y --vsize (o las variables de entorno R_NSIZE y R_VSIZE) controlan la memoria disponible para objetos de tamaos jo y variable, respectivamente. n Las opciones que pueden darse al ejecutar R son las siguientes:
Apendice B: Ejecucin de R o
89
--help -h --version
Muestra un pequeo mensaje de ayuda y termina correctamente. n Muestra la informacin de la versin y termina correctamente. o o
RHOME
Muestra la trayectoria al directorio inicial de R y termina correctamente. Salvo la pgina de ayuda en UNIX y el archivo de ejecucin, la instalacin de a o o R pone todos los archivos (ejecutables, bibliotecas, etc.) en este directorio.
--save --no-save Indica si debe salvar la imagen del entorno al terminar la sesin. En modo ino teractivo, si no ha especicado ninguna, le preguntar. En modo no interactivo a es obligatorio usar una. --no-environ No lee ningn archivo para dar valor a las variables de entorno. u --no-site-file No lee el perl de inicio global al iniciar el programa. --no-init-file No lee el perl de inicio de usuario al iniciar el programa. --restore --no-restore Indica si la imagen salvada (archivo .Rdata en el directorio en que R se haya iniciado) debe ser recuperada o no. El valor predeterminado es recuperarla. --vanilla Combina las opciones --no-save, --no-init-file, y --no-restore. --no-environ --no-site-file,
--no-readline Desactiva la edicin de rdenes a travs de readline. Esta opcin suele utilizarse o o e o cuando se ejecuta R desde Emacs utilizando la biblioteca ESS (Emacs Speaks Statistics). Vase Apendice C [El editor de ordenes], pgina 93, para ampliar e a esta informacin. o --vsize=N Indica la cantidad de memoria utilizada para objetos de tamao variable. N n debe ser un entero, en cuyo caso la unidad de medida es el octeto o byte, o un entero seguido de una letra que indica la unidad de medida en octetos: M, K, o k, que corresponden respectivamente a Mega (2^20), Kilo (2^10) (de ordenador), o kilodecimal (1000). --nsize=N Indica la cantidad de memoria utilizada para objetos de tamao jo. Las conn sideraciones realizadas en el apartado anterior son vlidas para N. a --quiet --silent -q
Apendice B: Ejecucin de R o
90
--slave --verbose
Ejecuta R con el m nimo de salidas posible. Esta opcin se utiliza con programas o que se sirven de R para realizar clculos para ellos mismos. a Muestra el mximo de salidas posible. Adems modica la opcin verbose a a a o TRUE. R utiliza esta opcin para controlar si debe mostrar mensajes de diago nstico. o
--debugger=depurador -d depurador Ejecuta R desde el programa de depuracin (debugger) depurador. En este o caso, si existen otras opciones, se descartan. Cualquier otra opcin debe darse o al iniciar R desde el programa de depuracin. o --gui=tipo Utiliza tipo como interfaz grco (advierta que esto tambin incluye los grcos a e a interactivos). Los valores posibles de tipo son X11 (predeterminado) y GNOME, supuesto que GNOME est disponible. e La entrada y la salida pueden redirigirse de la manera habitual, utilizando < and >. R CMD permite utilizar varias herramientas que son utiles en conjuncin con R, pero que o no estn diseadas para usarlas directamente. La forma general es a n R CMD orden argumentos donde orden es el nombre de la herramienta y argumentos son los argumentos que se pasan a la misma. Las herramientas disponibles son: BATCH COMPILE SHLIB INSTALL REMOVE build check Rdconv Rd2dvi Rd2txt Rdindex Sd2Rd Ejecuta R en modo no interactivo. Compila archivos para uso con R. Construye bibliotecas compartidas del sistema operativo para carga dinmica. a Instala bibliotecas aadidas. n Elimina bibliotecas aadidas. n Construye bibliotecas aadidas. n Comprueba bibliotecas aadidas. n Convierte desde formato Rd a otros formatos, incluyendo html, Nro, LaTEX, texto ASCII sin formato, y formato de documentacin S. o Convierte desde formato Rd a DVI/PDF. Convierte desde formato Rd a texto con formato. Extrae informacin de o ndices de archivos Rd. Convierte desde formato de documentacin S a formato Rd. o
Las cinco primeras herramientas (BATCH, COMPILE, SHLIB, INSTALL, y REMOVE) pueden ejecutarse directamente sin la opcin CMD, esto es, en la forma R orden argumentos. o Utilice la orden R CMD herramienta --help para obtener informacin sobre cada una de las herramientas descritas. o
Apendice B: Ejecucin de R o
91
Apendice B: Ejecucin de R o
92
Las opciones que pueden darse al ejecutar R en Microsoft Windows son las siguientes: --version Muestra la informacin de la versin y termina correctamente. o o --mdi --sdi --no-mdi
Inidica si Rgui se comportar como un programa MDI (predeterminado), donde a cada nueva ventana est contenida dentro de la ventana principal, o como un a programa SDI, donde cada ventana aparece de modo independiente en el escritorio.
--save --no-save Indica si debe salvar la imagen del entorno al terminar la sesin. En modo ino teractivo, si no ha especicado ninguna, le preguntar. En modo no interactivo a es obligatorio usar una. --restore --no-restore Indica si la imagen salvada (archivo .Rdata en el directorio en que R se haya iniciado) debe ser recuperada o no. El valor predeterminado es recuperarla. --no-site-file No lee el perl de inicio global al iniciar el programa. --no-init-file No lee el archivo .Rprofile del directorio del usuario (perl de inicio de usuario) al iniciar el programa. --no-environ No lee el archivo .Renviron. --vanilla Combina las opciones --no-save, --no-init-file y --no-environ. -q --quiet --silent --slave --verbose Muestra el mximo de salidas posible. a --ess Prepara Rterm para uso en modo R-inferior en ESS. --no-restore, --no-site-file,
93
vea la direccin o
94
En muchos terminales, es posible utilizar las teclas de echa hacia arriba y echa hacia abajo, respectivamente, en vez de C-p y C-n.
En muchos terminales, es posible utilizar las teclas de echa hacia la izquierda y echa hacia la derecha, respectivamente, en vez de C-b y C-f.
Edicin o
text C-f text
DEL
Inserta texto en el cursor. Aade texto tras el cursor. n Borra el carcter a la izquierda del cursor. a Borra el carcter bajo el cursor. a Borra el resto de la palabra bajo el cursor, y la guarda. Borra el resto de la l nea desde el cursor, y lo guarda. Inserta el ultimo texto guardado. Intercambia el carcter bajo el cursor con el siguiente. a Cambia el resto de la palabra a minsculas. u Cambia el resto de la palabra a maysculas. u Vuelve a ejecutar la l nea.
RET
Al pulsar
95
+
+ ............................................ 8
%
%*% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 %o% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
>
> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 >= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
&
& . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 && . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
^
^ ............................................ 8
*
* ............................................ 8
- ............................................ 8
<
< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 <= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 <<- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 .First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 .Last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A
abline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . add1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . anova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, aov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . aperm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . as.data.frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . as.vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . attach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . attr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . avas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 68 61 60 60 24 22 30 27 30 15 15 68 73
/
/ ............................................ 8
:
: ............................................ 9
=
== . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
?
? ............................................ 4
|
| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 || . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
B
boxplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 bruto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
~
~ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
96
C
c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 10, 27, 29 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 cbind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 coef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 contour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Contrastes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 coplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 crossprod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 24 cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
G
glm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
H
help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 hist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 71
I
identify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ifelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . is.na . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . is.nan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 44 44 71 10 10
D
data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . data.entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . data.frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dev.list. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dev.next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dev.off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dev.prev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dev.set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . deviance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dotplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . drop1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36 29 38 30 82 82 82 82 82 59 24 20 71 61
K
ks.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
L
legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8, 14 levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 lm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 lme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 locator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 loess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67, 68 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 lqs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 lsfit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
E
ecdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 eigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
M
mars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 mean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
F
F ............................................ 9 factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 FALSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 fivenum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
N
NA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NaN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ncol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . nlm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65, 66, 10 10 24 45 67
97
nlme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 nrow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
S
scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 shapiro.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 sink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 stem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 61 sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 59 svd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
O
order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 outer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
P
pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 par . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 paste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 persp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 pictex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59, 69 pmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 pmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 predict . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
T
t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 T ............................................ 9 t.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 27 tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 tapply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 TRUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Q
qqline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, qqnorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, qqplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . qr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 71 71 26
U
unclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
V R
range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 rbind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 read.fwf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 read.table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 rep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 resid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 residuals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 rlm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 var.test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
W
while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 wilcox.test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
X
X11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
98
G
Grcos cuantil-cuantil . . . . . . . . . . . . . . . . . . . . . . . 39 a Grcos dinmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 a a
H
Hojas de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
I B
Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Indexacin de vectores . . . . . . . . . . . . . . . . . . . . . . . 11 o Indexacin de y mediante variables indexadas . . 20 o
C
Ciclos y ejecucin condicional . . . . . . . . . . . . . . . . . o Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, Cmo denir un operador binario . . . . . . . . . . . . . o Cmo importar datos . . . . . . . . . . . . . . . . . . . . . . . . o Concatenacin de listas . . . . . . . . . . . . . . . . . . . . . . o Contrastes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contrastes de una y de dos muestras . . . . . . . . . . Controladores de dispositivos grcos . . . . . . . . . a 44 54 47 36 29 57 41 81
K
Kolmogorov-Smirnov, contraste de . . . . . . . . . . . . 40
L
Lectura de datos desde un archivo . . . . . . . . . . . . 33 Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
D
Descomposicin en valores singulares . . . . . . . . . . o Descomposicin QR . . . . . . . . . . . . . . . . . . . . . . . . . . o Determinantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . Distribuciones de probabilidad . . . . . . . . . . . . . . . . 25 25 25 41 37
M
Mxima verosimilitud . . . . . . . . . . . . . . . . . . . . . . . . a M nimos cuadrados no lineales . . . . . . . . . . . . . . . . Modelos aditivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelos basados en rboles . . . . . . . . . . . . . . . . . . . a Modelos estad sticos . . . . . . . . . . . . . . . . . . . . . . . . . Modelos lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelos lineales generalizados . . . . . . . . . . . . . . . . Modelos mezclados. . . . . . . . . . . . . . . . . . . . . . . . . . . 67 65 68 68 55 58 61 67
E
Eliminar objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Escritura de funciones . . . . . . . . . . . . . . . . . . . . . . . . 46 Espacio de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Estimacin de la densidad . . . . . . . . . . . . . . . . . . . . 38 o Expresiones agrupadas . . . . . . . . . . . . . . . . . . . . . . . 44
O
Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Ordenes de control . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Orientacin a objetos . . . . . . . . . . . . . . . . . . . . . . . . 54 o
F
Factores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 58 Factores ordinales . . . . . . . . . . . . . . . . . . . . . . . . 17, 58 Familias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Frmulas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 o Funcin de distribucin emp o o rica . . . . . . . . . . . . . . 39 Funciones genricas . . . . . . . . . . . . . . . . . . . . . . . . . . 54 e Funciones y operadores aritmticos . . . . . . . . . . . . . 8 e
P
Parmetros grcos . . . . . . . . . . . . . . . . . . . . . . . . . . a a Personalizacin del entorno . . . . . . . . . . . . . . . . . . . o Producto exterior de variables indexadas . . . . . . Producto matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 53 23 24
99
R
Redireccin de la entrada y la salida . . . . . . . . . . . 5 o Regla de reciclado . . . . . . . . . . . . . . . . . . . . . . . . . 8, 22 Regresin con aproximacin local . . . . . . . . . . . . . 67 o o Regresin robusta. . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 o
V S
Shapiro-Wilk, contraste de . . . . . . . . . . . . . . . . . . . 40 Student, contraste t de . . . . . . . . . . . . . . . . . . . . . . . 41 Sucesiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Valores faltantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Valores predeterminados . . . . . . . . . . . . . . . . . . . . . 47 Vectores de caracteres . . . . . . . . . . . . . . . . . . . . . . . . 10
W T
Wilcoxon, contraste de . . . . . . . . . . . . . . . . . . . . . . . 42
Apendice F: Referencias
100
Apendice F Referencias
D. M. Bates and D. G. Watts (1988), Nonlinear Regression Analysis and Its Applications. John Wiley & Sons, New York. Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), The New S Language. Chapman & Hall, New York. This book is often called the Blue Book . John M. Chambers and Trevor J. Hastie eds. (1992), Statistical Models in S. Chapman & Hall, New York. This is also called the White Book . Annette J. Dobson (1990), An Introduction to Generalized Linear Models, Chapman and Hall, London. Peter McCullagh and John A. Nelder (1989), Generalized Linear Models. Second edition, Chapman and Hall, London. John A. Rice (1995), Mathematical Statistics and Data Analysis. Second edition. Duxbury Press, Belmont, CA. S. D. Silvey (1970), Statistical Inference. Penguin, London.