R PARA BIOLOGOS Martinez-RforBiologistv1.1 (1) .En - Es
R PARA BIOLOGOS Martinez-RforBiologistv1.1 (1) .En - Es
R PARA BIOLOGOS Martinez-RforBiologistv1.1 (1) .En - Es
com
para biólogos
Versión 1.1 – Diciembre 2009
marco martinez
Este material pretende ser una guía introductoria al análisis de datos con el sistema R, para ayudar
en la capacitación en computación estadística para investigadores de ciencias de la vida. Fue
producido como material complementario para un seminario (R Tutorial for Life Sciences) impartido
en la Universidad de Tennessee en la primavera de 2009, patrocinado por el Instituto Nacional de
Síntesis Matemática y Biológica (NIMBioS), para estudiantes de posgrado en diferentes áreas
biológicas. Este material se produjo para servir como una introducción básica a R para
investigadores y estudiantes que visiten NIMBioS. Muchas guías más avanzadas están disponibles
tanto en el sitio web de R como en varios libros.
El objetivo principal es proporcionar una guía paso a paso sobre el uso de R para realizar análisis
estadísticos y técnicas ampliamente utilizadas en las ciencias de la vida. En cada sección, damos una
explicación detallada de un comando en R, seguido de un ejemplo biológico con todas las
instrucciones (en rojo) necesarias para ejecutar la prueba y con la salida correspondiente en R (en
azul). En varios apartados dejamos como ejercicio algunas preguntas o análisis adicionales. También
al final de algunas secciones damos una lista de otros comandos en R relacionados con los temas
explicados en la sección correspondiente. Suponemos algunos conocimientos previos en estadística
y diseño experimental, esencialmente correspondientes a un curso básico de introducción a la
estadística de pregrado.
Estas notas fueron escritas para aprovechar la versión R 2.8.1 o posterior, bajo un sistema
operativo Windows. Esta es la versión 1.1 de estas notas, generada en mayo de 2009 y editada
en cuanto a estilo y contenido por el director de NIMBioS, Louis Gross, en diciembre de 2009.
Este documento está disponible para su descarga desde el sitio NIMBioS.org y se proporciona
de forma gratuita sin garantía por su utilizar. No se puede modificar de este formulario sin
autorización expresa del autor.
marco martinez
Estudiante de Posgrado - Ecología Matemática
Departamento de Matemáticas
La Universidad de Tennessee - Knoxville
[email protected]
diciembre 2009
2
Contenido
3
1. Una introducción a R
1.1 ¿Qué es R?
R es un programa informático estadístico disponible a través de Internet bajo la Licencia
Pública General (GPL). Es decir, se entrega con una licencia que te permite usarlo libremente,
distribuirlo o incluso venderlo, siempre que el receptor tenga los mismos derechos y el código
fuente esté disponible libremente. Está disponible para Microsoft Windows XP o posterior, para
una variedad de plataformas Unix y Linux, y para Apple Macintosh OS X (Dalgaard, 2002).
4
3. Ahora puede elegir un sitio espejo para descargar el programa. Puede elegir cualquier
espejo: aquí lo ilustramos usando el primero en los EE. UU., la Universidad de California,
Berkeley.
4. Luego, elegimos nuestro sistema operativo (por ejemplo, Windows en nuestro ejemplo). Luego haga clic en
"base".
5
5. Finalmente descargamos el archivo R-2.8.1-win32.exe el cual ejecuta R.
1.2.2 Paquetes
Una instalación de R contiene una o más bibliotecas de paquetes. Algunos de estos paquetes son
parte de la instalación base. Otros pueden descargarse de CRAN (consulte el Apéndice A), que
actualmente alberga más de 1000 paquetes para diversos fines (Dalgaard, 2002). Un paquete puede
contener funciones escritas en lenguaje R y conjuntos de datos. La mayoría de los paquetes
implementan funcionalidades que los usuarios probablemente no necesitarán tener cargadas todo
el tiempo (Dalgaard, 2002).
Una vez finalizada la instalación base, puede instalar paquetes en R usando: Abra R y
desde la ventana de R, vaya al menú Paquetes.
6
Luego seleccione Instalar paquete(s), elija un espejo y luego seleccione el(los) paquete(s) que
necesita instalar. Este proceso debe realizarse una vez para cada paquete.
Para usar un paquete, debe cargar el paquete. Para hacer eso, vaya al menú Paquetes, luego
seleccione Cargar paquete y elija los paquetes que necesita. Este proceso debe realizarse cada
vez que abra una nueva sesión y desee utilizar una función específica en un paquete que no
está en el sistema base.
R funciona fundamentalmente con un modelo de preguntas y respuestas: ingresas una línea con un
comando y presionas Enter. Luego, el programa hace algo, imprime el resultado si es relevante y
solicita más información. Cuando R está listo para la entrada, imprime su mensaje, un ">símbolo
” (Dalgaard, 2002).
Una de las tareas más simples posibles en R es ingresar una expresión aritmética y recibir un
resultado (Dalgaard, 2002). La primera línea en rojo (fuente courier new) son las entradas o
instrucciones que escribimos, la segunda línea en azul (fuente courier new) son las salidas o
respuestas de R.
> 4^2
[1] 16
7
> sqrt(36)
[dieciséis
> pi
[1] 3.141593
> exp(1)
[1] 2.718282
El número entre paréntesis es el índice del primer número de esa línea (Dalgaard, 2002).
Considere el caso de generar la secuencia de números enteros del 50 al 100
> 50:100
[1] 50 51 52 53 54 55 56 57 58 59 60 61 62 63
[15] 64 65 66 67 68 69 70 71 72 73 74 75 76 77
[29] 78 79 80 81 82 83 84 85 86 87 88 89 90 91
[43] 92 93 94 95 96 97 98 99 100
Uno de los procedimientos más comunes en R es almacenar números o resultados. R, como otros
lenguajes de programación, tiene variables simbólicas que son nombres que pueden usarse para
representar valores (Dalgaard, 2002). Para asignar el valor 10 a la variablea:
> a<-10
Los dos caracteres <- deben leerse como un solo símbolo: una flecha que apunta a la variable a
la que se le asigna el valor. Esto se conoce como el operador de asignación. R generalmente
ignora el espacio alrededor de los operadores, pero observe que agregar un espacio en medio
de un <- cambia el significado a "menor que" seguido de "menos" (Dalgaard, 2002). También
tenga en cuenta que no hay un resultado visible de inmediato, pero a partir de ahora,atiene el
valor 10 y se puede utilizar en expresiones aritméticas posteriores.
> un
[1] 10
> un*2
[1] 20
> a/5
[1] 2
> a+2
[1] 12
R permite sobrescribir variables, sin proporcionar ninguna advertencia de que está redefiniendo una
variable a la que se le había asignado un valor previamente.
> a<-234
> un
[1] 234
> a<-456.43
> un
[1] 456.43
Técnicamente, R es un lenguaje de expresión con una sintaxis muy simple. Se distingue entre mayúsculas y
minúsculas, por lo queAyason símbolos diferentes y se referirían a variables diferentes. El conjunto de
8
Los símbolos que se pueden usar en los nombres R dependen del sistema operativo. Normalmente
se permiten todos los símbolos alfanuméricos más '.' y '_' (Venableset al.2009). Sin embargo, existe la
limitación de que el nombre no debe comenzar con un dígito o un punto seguido de un dígito
(Dalgaard, 2002).
> un
Error: objeto "A" no encontrado
> 2<-10
Error en 2 <- 10: lado izquierdo inválido (do_set) para la asignación
> . 3<-10
Error en 0.3 <- 10: lado izquierdo inválido (do_set) para la asignación
Para ingresar pequeños conjuntos de datos podemos usar la funciónC(). Esta es una función genérica que
combina sus argumentos en un único conjunto de datos.
> c(2,43,56,43,12,34,56,76)
[1] 2 43 56 43 12 34 56 76
Esto es útil como método para generar variables como un vector o lista de datos
> x<-c(21,23,45,32,12,34,56,7,8,98)
>x
[1] 21 23 45 32 12 34 56 7 8 98
Comando en R Resultado
1.5 Documentación
La documentación adicional sobre R está disponible en varias fuentes, entre ellas:
9
1.5.1 Documentación gratuita
Editado por el equipo central de desarrollo de R.http://cran.r-project.org/manuals.html Manuales,
tutoriales, etc. proporcionados por los usuarios de R.http://cran.r-project.org/other-docs.html
1.5.2 Libros
Una lista de libros relacionados con R.http://www.r-project.org/doc/bib/R-books.html
Los objetos de datos grandes generalmente se leerán como valores de archivos externos en lugar de
ingresarlos durante una sesión de R en el teclado. Las instalaciones de entrada de R son simples con
requisitos estrictos y algo inflexibles. Existe una clara presunción por parte de los diseñadores de R de que
podrá modificar sus archivos de entrada utilizando otras herramientas, como editores de archivos, para
cumplir con los requisitos de R (Venableset al.2009).
La forma más conveniente de leer datos en R es a través de la función llamada read.table. Requiere
que los datos estén en “formato ASCII”; es decir, un “archivo plano” creado con el NotePad de
Windows o cualquier editor de texto plano, con extensión .txt. La primera línea del archivo puede
contener un encabezado con los nombres de las variables, práctica muy recomendable (Dalgaard,
2002). Cada línea subsiguiente contiene una fila de datos.
Comando en R:
read.table(archivo, encabezado = FALSO)
archivo: el nombre del archivo del que se van a leer los datos. Cada fila de la tabla aparece
como una línea del archivo. Si no contiene una ruta absoluta, el nombre del archivo es
relativo al directorio de trabajo actual.
header: valor lógico que indica si el archivo contiene los nombres de las variables en su primera línea. El
valor predeterminado es FALSO
El directorio de trabajo se puede cambiar utilizando el elemento de menú Archivo, luego cambie el
directorio y seleccione el directorio que desee. Además, getwd() puede obtener el directorio de
trabajo actual y cambiarlo mediante setwd(mydir), donde mydir es una cadena de caracteres que
contiene la ruta al directorio de trabajo deseado (Dalgaard, 2002).
Otros comandos en R para leer datos incluyen: read.csv, read.csv2, read.delim, read.delim2
y el paquete externo que son funciones para leer y escribir datos almacenados por
paquetes estadísticos como Minitab, S, SAS, SPSS, Stata, Systat y otros.
10
2. Estadísticas descriptivas
En datos de muestra y de población total, una medida de tendencia central proporciona una
evaluación de un "promedio" de los datos. Una medida de dispersión, o una medida de
variabilidad, es una indicación de la dispersión de las medidas alrededor del centro de la
distribución (Zar, 1999).
4.3 24 6.6 7.3 1.5 2.6 5.6 3.9 9.4 6.2 1.6 6.5 0.2 2.7 17 4 2
0.7 1.6 2.3 3.7 0.8 0.5 4.5 12 3.5 0.8 5.2 3.9 0.7 1.7 3.8 5 2
4.5 1.8 1.2 0.7 0.7 4.2 4.7 2.2 1.4 2.8 8.6 3.7 3.5 1.2 3.7 14 4
> grillo<-c(4.3,24.1,6.6,7.3,1.5,2.6,5.6,3.9,9.4,6.2,1.6,6.5,0.2,2.7,
+ 17.4,4, 2, 0.7,1.6,2.3,3.7,0.8,0.5,4.5,11.5,3.5,0.8,5.2,3.9,0.7,1.7,
+ 3.8,5,2,4.5,1.8,1.2,0.7,0.7,4.2,4.7,2.2,1.4,2.8,8.6,3.7,3.5,1.2,3.7,
+ 14.1,4)
> grillo
[1] 4.3 24,1 6,6 7,3 1,5 2,6 5,6 3,9 9,4 6,2 1,6 6,5 0,2
[14] 2.7 17,4 4,0 2,0 0,7 1,6 2,3 3,7 0,8 0,5 4,5 11,5 3,5
[27] 0,8 5,2 3,9 0,7 1,7 3,8 5,0 2,0 4,5 1,8 1,2 0,7 0,7
[40] 4,2 4,7 2,2 1,4 2,8 8,6 3,7 3,5 1,2 3,7 14,1 4,0
> media(grillo)
[1] 4.335294
> mediana(grillo)
[1] 3.7
> var(grillo)
[1] 19.64793
> sd(grillo)
[1] 4.432598
> rango(grillo)
[1] 0,2 24,1
> resumen(cricket)
mín. 1er cuarto Mediana Media 3er Qu. máx.
0,200 1,600 3,700 4,335 4,850 24.100
Histogramas
Comando en R:
hist(x, breaks = "Sturges", freq = NULL, main , xlab , ylab,)
x: vector de valores de datos para los que se va a construir el histograma.
roturas: un vector que proporciona los puntos de interrupción entre las celdas del histograma o un solo número que
indica el número de celdas del histograma. El valor predeterminado es el algoritmo de Sturges.
11
frecuencia: lógico; si es VERDADERO, el gráfico del histograma es una representación de frecuencias, los
recuentos de valores de datos en cada celda del histograma; si es FALSO, el histograma es la fracción de datos
dentro de cada celda del histograma (por ejemplo, densidad de probabilidad)
main: El título principal. xlab:
etiqueta del eje X. etiqueta
del eje Y de ylab.
> boxplot(grillo)
12
Tenga en cuenta que un "+" al comienzo de una línea indica que esta línea es una continuación de la línea
de comando anterior. Como ejercicio, agregue etiquetas al diagrama de caja anterior usando el mismo
formato que para el comando hist().
13
3. Pruebas de una y dos muestras
> observación<- c(5.95, 7.39, 6.88, 6.54, 6.50, 6.73, 6.69, 6.95,
+ 7.58, 6.62, 6.96, 6.90, 6.93, 6.32, 7.22, 6.36,
+ 6,54, 6,67, 7,25, 6,94, 7,21, 6,83, 6,80, 6,59)
> t.test(observación,mu=7.0)
6.651562 6.960938
muestra estimados:
significado de X
6.80625
En conclusión, se rechaza la hipótesis nula al nivel del 5%, porque el valor de p está por
debajo de 0,05. La media de la población que generó la muestra es diferente de 7.
Otros comandos en R para pruebas de población única son: wilcox.test, prop.test. Otra prueba muy
común de una población es la prueba Z. No conocemos un comando en R para esta prueba, pero
puede encontrar un procedimiento completo en Verzani 2002, p. 62.
14
Comando en R:
t.test(x, y , alternativa = c("dos.lados", "menor", "mayor"), mu = 0, emparejado = FALSO,
var.igual = FALSO, conf.nivel = 0.95)
x: vector con observaciones de la muestra 1 y:
vector con observaciones de la muestra 2
alternativa: cadena de caracteres que especifica la hipótesis alternativa. El valor predeterminado es mu de dos caras:
diferencia de medias. El valor predeterminado es 0
emparejado: una indicación lógica si desea una prueba t emparejada. El valor predeterminado es false var.equal:
una indicación lógica si se deben tratar las varianzas como iguales. El valor predeterminado es false conf.level: nivel
de confianza de la prueba. Predeterminado 0.95
Tenga en cuenta que los rangos (y las varianzas) son muy diferentes en estas dos muestras. Los
tamaños de muestra pequeños y desiguales, junto con las varianzas desiguales, indican que una
prueba basada en diferentes varianzas es más apropiada (Quinn & Keough 2002). Es por eso que en
el comando t.test, no usamos el argumento var.equal, porque el valor predeterminado es falso.
Tenga en cuenta que a continuación, la longitud de las dos muestras es la misma, pero usamos "NA"
para indicar que no hay valor de datos.
> Masculino<-c(2950,2308.7,2135.6,1945.6,1195.5,843.3,525.8,605.7)
> Femenino<-c(1956.1,1490.5,1361.3,1086.5,1091,727.7, NA, NA)
> t.test(Masculino, Femenino)
No rechazaríamos la H0con un nivel de confianza del 95 % y, por tanto, concluir que no hubo una
diferencia estadísticamente significativa en la tasa metabólica media de los fulmares entre sexos
(Quinn & Keough 2002).
15
3.2.2 Prueba t pareada
Ahora consideramos la comparación de dos muestras que no son independientes sino que están
emparejadas. En este diseño, las observaciones ocurren en pares, las unidades de observación en un
par están vinculadas de alguna manera, por lo que tienen más en común entre sí que con otros
miembros de otro par (Samuels & Witmer, 2003).
> HORIZONTAL<-c(295,260,280,250,160,150,290,120,210,120,240,270,150,210,
+ 200,160,160)
> LUZ HORIZONTAL<-c(60,140,160,120,180,90,120,220,210,150,160,330,100,240,
+ 190,170,100)
> t.prueba(HORIZONTAL, HORIZONTAL, emparejado=T)
Emparejado prueba t
datos: HORIZONTAL y HORIZONTAL
t = 2,1482, gl = 16, valor p = 0,04735
Hipótesis alternativa: la verdadera diferencia de medias no es igual a 0 Intervalo de
confianza del 95 por ciento:
0.6085725 91.7443687
estimaciones de muestra:
media de las diferencias
46.17647
Entonces rechazaríamos la H0al nivel del 95% y concluir que, para la población de arañas
orbe, hay una diferencia en el diámetro horizontal medio de las telas de araña entre
dieciséis
más luz y condiciones tenues (Quinn & Keough 2002). Dejamos como ejercicio la
comparación del diámetro vertical.
Los métodos anteriores son apropiados para analizar mediciones de una sola variable de dos
muestras. Para las observaciones de una variable utilizando tres o más muestras, se requiere
un análisis de muestras múltiples. Para probar las hipótesis nulas H0: µ1 = µ2= … = µk, dondekes
el número de grupos experimentales, o muestras, un método estándar es realizar un análisis
de varianza (Zar, 1999).
Comando en R:
aov(fórmula, datos = NULL)
fórmula: una fórmula que especifica el modelo. Una fórmula es una expresión de la formay ~ modelo
que se interpreta como una especificación de que la respuestayestá modelado por un predictor lineal
especificado simbólicamente para el modelo deseado.
data: Un conjunto de datos en R en el que se encontrarán las variables especificadas en la fórmula.
A continuación se ilustra la disposición correcta de los datos en un archivo .txt y luego importamos los
datos a R (ver sección 1.6). El formato de datos en el archivo .txt es:
pesos dieta
60.8 Feed1
57 Feed1
sesenta y cinco Feed1
58.6 Feed1
61.7 Feed1
68.7 Feed2
67.7 Feed2
74 Feed2
17
66.3 Feed2
69.8 Feed2
102.6 Feed3
102.1 Feed3
100.2 Feed3
96.5 Feed3
87,9 Feed4
84.2 Feed4
83.1 Feed4
85.7 Feed4
90.3 Feed4
Creamos este archivo en nuestro directorio de trabajo (se supone que es C:) con el nombre pigs.txt y lo
leemos en la variable R "pigs" (consulte la sección 1.6 para obtener más detalles). Usaremos este ejemplo
también para la sección 4.2.
Podemos rechazar H0, lo que implica que los pesos medios de los cerdos en las cuatro dietas no son iguales.
Tenga en cuenta que no sabemos a partir de este análisis cuál de los tratamientos es el que proporciona los
pesos de cerdo más altos, o una clasificación de las diversas dietas para este objetivo. Se utilizaría una prueba de
comparación múltiple (ver sección 5) para un análisis más profundo de estas preguntas adicionales.
4.2 Supuestos
La descomposición de la variabilidad en las observaciones a través de un análisis de varianza es
solo una relación algebraica. Para usar el método para probar formalmente que no hay
diferencias en las medias de varios tratamientos, se requiere que se satisfagan ciertas
suposiciones. Específicamente, estas suposiciones son que los residuos se distribuyen normal e
independientemente con media cero y varianza constante pero desconocida (Montgomery,
2001).
4.1.1 Normalidad
Aquí explicamos cómo probar la hipótesis de que los residuos siguen una distribución normal.
Damos detalles para la prueba de Shapiro Wilk y las gráficas de cuantiles de cuantiles normales
o gráficas qq. El primer paso para probar el supuesto de normalidad es obtener los residuos,
usando el siguiente comando (seguimos con el último ejemplo)
> exit_pigs$residuales
1 2 3 4 5 6 7 8 9 10 11
18
0,18 -3,62 4,38 -2,02 1,08 -0,60 -1,60 4,70 - 3,00 0,50 2,25
12 13 14 15 16 17 18 19
1,75 -0,15 -3,85 1,66 -2,04 -3,14 -0,54 4,06
Comando en R:
Shapiro.prueba(x)
qqnorm(x) siguiendo con qqline(x).
x: Vector numérico de valores de datos. Se permiten valores faltantes.
> shapiro.prueba(salir_cerdos$residuales)
Datos de la prueba de normalidad
de Shapiro-Wilk: exit_pigs$residuals W =
0,9511, valor p = 0,4132
Dado el valor de p no podemos rechazar la H0, y por lo tanto la evidencia es que los datos tienen una
distribución normal.
Dado que, en general, los puntos están cerca de la línea, es razonable inferir que los datos
siguen una distribución normal. Hay que tener cuidado porque los métodos puramente
gráficos siempre están sujetos a la interpretación del investigador.
Otros comandos en R: El paquete nortest tiene varias pruebas de normalidad que incluyen
Anderson-Darling, Cramer-von Mises y Lilliefors.
19
Comando en R:
bartlett.test(fórmula, datos)
formula: Fórmula de la forma lhs ~ rhs donde lhs da los valores de los datos y rhs los grupos
correspondientes.
datos: Marco de datos que contiene las variables en la fórmula.
La constancia de la varianza residual se muestra en estos gráficos por los gráficos que tienen
aproximadamente la misma extensión de dispersión del residual alrededor de cero para cada nivel de
factor o tratamiento (Kutneret al.2005). Entonces en este caso particular la gráfica indica que tenemos
homogeneidad de varianzas.
Comando en R:
kruskal.test(fórmula, datos)
formula: Fórmula de la forma lhs ~ rhs donde lhs da los valores de los datos y rhs los grupos
correspondientes.
datos: Marco de datos que contiene las variables en la fórmula.
20
Ejemplo (Zar 1999, p. 197)
Un entomólogo está estudiando la distribución vertical de una especie de mosca en un bosque
caducifolio y obtiene cinco colecciones de moscas en tres capas de vegetación diferentes:
hierba, arbusto y árbol. El entomólogo quiere probar el H0: La abundancia de moscas es la
misma en las tres capas de vegetación.
abundancia capas
14 Hierbas
12.1 Hierbas
… …
4.1 Árboles
5.4 Árboles
Creamos este archivo en nuestro directorio de trabajo con el nombre moscas (ver sección 1.6):
Podemos concluir que la abundancia de las moscas es diferente en los tres estratos de
vegetación.
21
5. Pruebas de comparación múltiple
Suponga que al realizar un análisis de varianza se rechaza la hipótesis nula. Por lo tanto, existen
diferencias entre los medios de tratamiento, pero no se especifica exactamente qué medios
difieren. A veces, en esta situación, puede ser útil una mayor comparación y análisis entre
grupos de medios de tratamiento. Los procedimientos para realizar estas comparaciones
suelen denominarse métodos de comparación múltiple (Montgomery, 2001). En general estos
métodos consideran la hipótesis nula H0: µA= mBversus la hipótesis alternativa, donde los
subíndices denotan cualquier posible par de grupos (Zar, 1999)
Comando en R:
HSD.test(y, trt, DFerror, MSerror, alpha = 0.05, group=TRUE)
y: respuesta variable
trt: Tratamientos
DFerror: Grados de libertad de los residuos. Tome de la tabla ANOVA
MSerror: Error cuadrático medio de los residuos. Toma de la tabla ANOVA
alfa: Nivel significativo.
grupo: VERDADERO o FALSO. Utilice siempre VERDADERO.
Para este comando necesitamos el paquete agricolae (ver sección 1.2.2).
ZINC DIV ZINC DIV ZINC DIV ZINC DIV ZINC DIV
ESPALDA 2.27 MEDICINA 2.19 BAJO 1.83 MEDICINA 1.75 ALTO 1.04
ALTO 1.25 MEDICINA 2.1 BAJO 1.88 BAJO 2.83 BAJO 2.18
ALTO 1.15 ESPALDA 2.2 MEDICINA 2.02 ESPALDA 1.53 ESPALDA 1.89
MEDICINA 1.62 MEDICINA 2.06 MEDICINA 1.94 ESPALDA 0.76 ALTO 1.37
ESPALDA 1.7 ALTO 1.9 BAJO 2.1 MEDICINA 0.8 BAJO 1.4
ALTO 0,63 ALTO 1.88 BAJO 2.38 BAJO 1.66 ESPALDA 1.98
ESPALDA 2.05 ALTO 0.85 ALTO 1.43 MEDICINA 0.98
22
BAJO 1.66
MEDICINA 0.98
Creamos este archivo en nuestro directorio de trabajo con el nombre streams (ver sección 1.6).
Podemos rechazar H0. Ahora para ver la diferencia entre cada nivel de zinc realizamos una prueba
de Tukey.
Medios de tratamiento
arroyos.ZINC flujos.DIV error estándar replicación
1 ESPALDA 1.797500 0.1715658 8
2 ALTO 1.277778 0.1422906 9
3 BAJO 2.032500 0.1573298 8
4 MEDICINA 1.717778 0.1676701 9
el unico h0debe rechazarse la ausencia de diferencias en la diversidad de diatomeas entre sitios con bajo
contenido de zinc y sitios con alto contenido de zinc (Samuels & Witmer, 2003). Dejamos como ejercicio el
siguiente: comprobar los supuestos (normalidad y homocedasticidad) del modelo y realizar la prueba de
Tukey para el ejemplo del apartado 4.1.
23
5.2 Prueba de diferencia mínima significativa
(LSD) Comando en R:
LSD.test(y, trt, DFerror, MSerror, alpha = 0.05, group=TRUE)
y: respuesta variable
trt: Tratamientos
DFerror: Grados de libertad de los residuos. Tome de la tabla ANOVA
MSerror: Error cuadrático medio de los residuos. Toma de la tabla ANOVA
alfa: Nivel significativo.
grupo: VERDADERO o FALSO. Utilice siempre VERDADERO.
Para este comando necesitamos el paquete agricolae (ver sección 1.2.2).
Los datos son concentraciones de estroncio (mg/ml) en cinco masas de agua diferentes. Los datos tienen
que estar en un archivo txt de la siguiente manera:
estroncio cuerpos
28.2 Grayson
33.2 Grayson
… …
60 Roca
57.3 Roca
Creamos este archivo en nuestro directorio de trabajo con el nombre agua (ver sección 1.6).
Debido a que se obtuvo un valor de p significativo del análisis de varianza, ahora se aplica la prueba
LSD a las medias.
24
Alfa 0.050000
Error Grados de libertad 25.000000 Error
Cuadrado medio 9.770000
Valor crítico de t 2.059539
Medios de tratamiento
cuerpos de agua agua.estroncio error estándar replicación
1 Pescador de caña 44.08333 1.257621 6
2 Manzana 41.10000 1.496663 6
3 Castor 40.23333 1.033011 6
4 Grayson 32.08333 1.308540 6
5 Roca 58.30000 1.239624 6
Dejamos como ejercicio el siguiente: sacar las conclusiones adecuadas de este análisis del
último ejemplo, comprobar los supuestos (normalidad y homocedasticidad) del modelo y
realizar la prueba de Tukey para el ejemplo de este apartado.
25
6. Otros análisis de varianza
Comando en R:
aov(fórmula, datos = NULL)
fórmula: una fórmula que especifica el modelo. Fórmula de la forma a ~ b + c, donde a, b y c dan
los valores de los datos y los grupos y bloques correspondientes, respectivamente.
datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula.
26
1.05 alto bloque2
0.5 alto bloque3
1 alto bloque4
1.5 alto bloque5
Creamos este archivo en nuestro directorio de trabajo con el nombre alfalfa (ver sección 1.6).
El valor de p para el tratamiento (trt) es pequeño, lo que indica que las diferencias entre las medias
de las tres muestras son mayores de lo que se esperaría solo por casualidad (Samuels & Witmer,
2003).
Comando en R:
friedman.test(fórmula, datos)
fórmula: Fórmula de la forma a ~ b | c, donde a, b y c dan los valores de los datos y los grupos y
bloques correspondientes, respectivamente.
data: Data frame en el que se encontrarán las variables especificadas en la fórmula.
dietas
bloques 1 2 3 4
1 7 5.3 4.9 8.8
2 9.9 5.7 7.6 8.9
3 8.5 4.7 5.5 8.1
4 5.1 3.5 2.8 3.3
5 10.3 7.7 8.4 9.1
27
Los datos tienen que estar en un archivo txt de la siguiente manera:
dietas de peso bloques
7 dieta1 bloque1
9.9 dieta1 bloque2
…… ….
3.3 dieta4 bloque4
9.1 dieta4 bloque5
Creamos este archivo en nuestro directorio de trabajo con el nombre guinea (ver sección 1.6).
Comando en R:
aov(fórmula, datos = NULL)
fórmula: una fórmula que especifica el modelo. Fórmula de la forma a ~ b * c, donde a, b y c dan
los valores de los datos y el factor1 y el factor2 correspondientes, respectivamente.
datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula.
8 191 150
154 127
194 152
183 105
25 80 141
49 153
78 171
71 197
28
Los datos tienen que estar en un archivo txt de la siguiente forma: Sexo
Dosis Nivel
METRO dosis8 191
METRO dosis8 154
METRO dosis8 194
METRO dosis8 183
… … …
F dosis25 141
F dosis25 153
F dosis25 171
F dosis25 197
Creamos este archivo en nuestro directorio de trabajo con el nombre perros (ver sección 1.6).
Del último análisis podemos rechazar todo H0. Los factores sexo y dosis interactuaron en el
siguiente sentido: Para las mujeres el efecto de aumentar la dosis de 8 a 25 fue positivo (la
media aumenta), pero para los hombres el efecto de aumentar la dosis de 8 a 25 fue negativo
(la media disminuye). ). Podemos ver esto en el gráfico de interacción.
29
Ejemplo (de Samuels & Witmer 2003, p. 490)
Un fisiólogo de plantas investigó el efecto del estrés mecánico en el crecimiento de las plantas de
soja. Las plántulas en macetas individuales se asignaron aleatoriamente a cuatro grupos de
tratamiento de 13 plántulas cada uno. Las plántulas de dos grupos se estresaron agitándolas
durante 20 minutos dos veces al día, mientras que dos grupos de control no se estresaron. Así, el
primer factor en el experimento fue la presencia o ausencia de estrés. Además, las plantas crecieron
con luz baja o moderada. Así, el segundo factor fue la cantidad de luz. Este experimento es un
ejemplo de un experimento factorial 2*2.
Bajo moderado
Control estrés control estrés
264 235 314 283
200 188 320 312
225 195 310 291
268 205 340 259
215 212 299 216
241 214 268 201
232 182 345 267
256 215 271 326
229 272 285 241
288 163 309 291
253 230 337 269
288 255 282 282
230 202 273 257
Creamos este archivo en nuestro directorio de trabajo con el nombre soybean (ver sección 1.6).
30
---
signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
31
7. Regresión y correlación
7.1 Regresión
En muchos problemas hay dos o más variables que están relacionadas, y es de interés
modelar y explorar esta relación. En general, suponga que hay una sola variable
dependiente o respuestayque depende de k variables independientes, por ejemplo,X1, X2,
…, Xk. La relación entre estas variables se caracteriza por un modelo matemático llamado
modelo de regresión (Montgomery, 2001).
Comando en R:
lm(fórmula, datos = NULL)
fórmula: una fórmula que especifica el modelo.
datos: Un marco de datos en el que se encontrarán las variables especificadas en la fórmula.
> CWD<-c(121,41,183,130,127,134,65,52,12,46,54,97,1,4,1,4)
> RTD<-c(1270,1210,1800,1875,1300,2150,1330,964,961,1400,1280,976,771,
+ 833.883.956)
> exit_lakes<-lm(CWD~RTD)
> resumen(exit_lakes)
Llamada:
lm(fórmula = CWD ~ RTD)
Coeficientes:
Estimación estándar Error valor t Pr(>|t|)
(Interceptar) - 77.09908 30.60801 - 2.519 0.024552 *
IDT 0.11552 0.02343 4.930 0.000222 ***
---
signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
32
Estadístico F: 24,3 en 1 y 14 DF, valor p: 0,0002216
La prueba t y la prueba ANOVA F nos hacen rechazar la H0que β1es igual a cero También
rechazaríamos la H0que β0es igual a cero, aunque esta prueba es de poco interés biológico. Él
r2(0,634) indica que podemos explicar alrededor del 63 % de la variación total en el área basal de CWD
mediante la regresión lineal con la densidad de árboles ribereños. Podemos predecir el área basal de CWD
para un nuevo lago con 1500 árboles km-1en la zona ribereña. Reemplazando 1500 en nuestro modelo de
regresión ajustado:
Área basal de CWD = -77.099 + 0.116*1500
7.2 Correlación
En muchos tipos de datos biológicos, la relación entre dos (o más variables) no es claramente
de estricta dependencia entre las variables. En tales casos, la magnitud de una de las variables
cambia a medida que cambia la magnitud de la segunda variable, pero no es razonable
considerar que hay una variable independiente y una variable dependiente que está
causalmente relacionada con ella. En tales situaciones, se requiere un análisis de correlación
más que de regresión (Zar, 1999).
Comando en R:
cor.test(x, y, método = c("pearson", "kendall", "spearman"), conf.level = 0.95)
x, y: vectores numéricos de valores de datos. x e y deben tener la misma longitud.
método: Cadena de caracteres que indica qué coeficiente de correlación se utilizará para la
prueba. Se puede abreviar uno de "pearson", "kendall" o "spearman". Pearson predeterminado.
conf.level: nivel de confianza para el intervalo de confianza devuelto. Predeterminado 0,95.
33
- 0,4322803 0,8592175
estimaciones de muestra:
corazón
0.3917155
El h0No se pudo rechazar la ausencia de una relación lineal entre la biomasa total de cangrejos
y el número de madrigueras en DS. La misma conclusión se aplica a las relaciones monótonas
medidas por los coeficientes de Spearman y Kendall. Por lo tanto, no hubo evidencia de una
relación monótona lineal o más general entre la densidad de madrigueras y la biomasa total de
cangrejos en el sitio DS (Quinn & Keough 2002). Dejamos el análisis del sitio LS como ejercicio.
34
Bibliografía
Christensen, DL, Herwig, BR, Schindler, DE y Carpenter, SR 1996. Impactos del desarrollo
residencial a orillas del lago en los desechos leñosos gruesos en los lagos templados del norte.
Aplicaciones ecológicas 64: 1143–1149.
Elgar, MA, Allan, RA y Evans, TA 1996. Estrategias de forrajeo en arañas que giran orbes:
luz ambiental y decoraciones de seda enArgiope aethérea Walckenaer(Araneae:
Araneoidea). Revista australiana de ecología 21: 464–467.
Furness, RW y Bryant, DM 1996. Efecto del viento en las tasas metabólicas de campo de la
cría de fulmares del norte. Ecología 77: 1181–1188.
Green, PT 1997. Cangrejos rojos en la selva tropical de la Isla Christmas, Océano Índico: patrones de
actividad, densidad y biomasa. Revista de Ecología Tropical 13: 17–38.
Kutner, M., Nachtsheim, C., Neter, J. y Li, W. 2005. Modelos estadísticos lineales aplicados.
Quinta edición. McGraw-Hill/Irwin. EE.UU. 1396p.
Montgomery, D. 2001. Diseño y análisis de experimentos. Quinta edición. John Wiley &
sons, INC. EE.UU. 684p.
Samuels, M. y Witmer, J. 2003. Estadísticas para las Ciencias de la Vida. Tercera edicion.
Educación Pearson. EE.UU. 724p.
Zar, J. 1999. Análisis bioestadístico. Cuarta edición. Prentice Hall. EE.UU. 663p.
35