acerca de… bosques españoles, restauración y WWF
Hola,
Cuelgo un enlace a un informe de la WWF sobre el estado de los bosques españoles y como deberían restaurarse.
Todo explicadito aquí.
Saludos.
glm con datos trucados
Siempre que he intentado entender la salida de un lm o un glm en el R me he encontrado con el mismo problema, como no conozco bien los datos, o son muy complicados, me queda la duda de si estaré interpretando bien lo que me dice el R.
Lo que hice el otro día, después de discutir con un compañero de trabajo que interpretaba las salidas de una forma diferente que yo, fue crear unos datos con los que sabía lo que iba a salir. Así por fin entendí del todo la salida del glm y me di cuenta de que interpretaba mal las salidas.
A continuación os pego lo que hice, primero como crear unos datos trucados, después una exploración con algunos gráficos y por fin los análisis.
Espero que os sea útil.
Creemos los datos trucados.
Creamos los datos de base aleatorios
origen<-rnorm(900,mean=0,sd=10)
es un vector de 900 elementos distribuidos como una normal de media 0 y desviación típica 10
Creamos los factores:
un vector de 900 elementos con 300 para cada nivel del factor
factorA<-c(rep(“controlA”,300)
,rep(“a1″,300)
,rep(“a2″,300)
)
y un vector de 900 elementos que divide cada nivel del factor anterior en 3 grupos de 100
factorB<-c(rep(
c(rep(“controlB”,100)
,rep(“b1″,100)
,rep(“b2″,100)
)
,3
)
)
Ahora los hacemos factores y arreglamos los niveles de base.
factorA<-as.factor(factorA)
factorA<-relevel(factorA,”controlA”) #El control es el nivel base… así después en el análisis queda todo mejor
factorB<-as.factor(factorB)
factorB<-relevel(factorB,”controlB”) #id
Hasta aquí tenemos la estructura típica de unos datos para analizar. Ahora hay que hacer el efecto de los factores sobre los datos.
Creamos los efectos
Modificación producida por cada nivel del factor… enseguida tendrá sentido.
controlA<-0
a1<-20
a2<-30
controlB<-0
b1<-6
b2<-12
Vector de los efectos, este vector modificará los datos origen.
efectosA<-c(rep(controlA,300),rep(a1,300),rep(a2,300))
efectosB<-c(rep(c(rep(controlB,100),rep(b1,100),rep(b2,100)),3))
Si os fijáis los valores están en la misma posición en que están los niveles de los factores.
Ahora creamos los datos definitivos, creamos los datos modificando el vector aleatorio con los efectos de los factores
datos<-origen + efectosA + efectosB
Si os fijáis lo que estamos haciendo aquí es coger una distribución normal y modificarla en función de unos factores que es lo que en realidad suponemos que está pasando cuando vamos a analizar unos datos haciendo un ANOVA.
si hubiera interacción, cuando se juntan el a1 y b2 el efecto se multiplicaría.
datos.int<-replace(datos,factorA==”a1″&factorB==”b2″,datos[factorA=="a1"&factorB=="b2"]*2)
Replace mola, lo que pone aarriba le dice al R: “en el vector datos, cuando el vector factorA es igual a a1 o el vector factorB es igual a b2, pon lo que haya pero multiplicado por 2″.
Y ya tenemos los datos trucados.
Con estos datos se puede jugar modificando los valores de ControlA, ControlB, a1, a2, b1 y b2.
Exploremos los datos trucados.
DATOS SIN INTERACCIÓN:
plot(datos~factorA)
plot(datos~factorB)
La diferencia entre los niveles de los factores es, aproximadamente, la que hemos dado al crear los datos.
Veamos las medias:
tapply(datos,list(factorA,factorB),mean)
controlB b1 b2
controlA -0.9258813 6.894822 11.98925
a1 20.3019293 27.829253 31.74711
a2 29.1412938 36.630104 41.87341
Y un gráfico de interacción:
interaction.plot(factorA,factorB,datos,fun=mean)
Como veis es bastante soso, al pasar de un nivel a otro de A se incrementa su valor y lo mismo ocurre con B. Pero si probamos con los datos con interacción sale distinto.
DATOS CON INTERACCIÓN
plot(datos.int~factorA)
plot(datos.int~factorB)
interaction.plot(factorA,factorB,datos.int,fun=mean)
Fijaos en las dos primeras gráficas; Ha aumentado la variabilidad en los grupos en los que hemos hecho la interacción. Y en el gráfico de interacción ya está muy claro como la línea correspondiente a b2 se comporta de forma rara.
Análisis
Probemos con los datos sin interacción, por suerte los datos son normales, je je.
Primero hacemos (los puristas dirán ajustamos) el modelo.
modelo.glm<-glm(datos~factorA+factorB+factorA:factorB)
summary(modelo.glm)
glm(formula = datos ~ factorA + factorB + factorA:factorB)
Deviance Residuals:
Min 1Q Median 3Q Max
-33.4490 -6.7897 -0.3912 6.3939 34.0443
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3451 1.0159 -0.340 0.734
factorAa1 19.9125 1.4367 13.860 < 2e-16 ***
factorAa2 28.9171 1.4367 20.128 < 2e-16 ***
factorBb1 8.0833 1.4367 5.626 2.46e-08 ***
factorBb2 12.7213 1.4367 8.855 < 2e-16 ***
factorAa1:factorBb1 -1.2277 2.0317 -0.604 0.546
factorAa2:factorBb1 -0.8083 2.0317 -0.398 0.691
factorAa1:factorBb2 0.1649 2.0317 0.081 0.935
factorAa2:factorBb2 1.1961 2.0317 0.589 0.556
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 103.1990)
Null deviance: 249869 on 899 degrees of freedom
Residual deviance: 91950 on 891 degrees of freedom
AIC: 6738
Number of Fisher Scoring iterations: 2
Después, hacemos el ANOVA.
anova(modelo.glm, test=”F”)
Model: gaussian, link: identity
Response: datos
Terms added sequentially (first to last)
Df Deviance Resid.Df Resid. Dev F Pr(>F)
NULL 899 249869
factorA 2 131624 897 118245 637.7182 <2e-16 ***
factorB 2 26171 895 92075 126.7971 <2e-16 ***
factorA:factorB 4 124 891 91950 0.3012 0.8772
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Como se ve en el modelo ninguna de las interacciones entre los niveles de ambos factores es significativa, después el ANOVA nos lo enseña de otra forma.
Probemos con los datos con interacción.
Primero el modelo:
modelo.glm.int<-glm(datos.int~factorA+factorB+factorA:factorB)
summary(modelo.glm.int)
glm(formula = datos.int ~ factorA + factorB + factorA:factorB)
Deviance Residuals:
Min 1Q Median 3Q Max
-46.2969 -6.9360 -0.3912 6.7193 44.3720
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3451 1.1532 -0.299 0.765
factorAa1 19.9125 1.6309 12.210 < 2e-16 ***
factorAa2 28.9171 1.6309 17.731 < 2e-16 ***
factorBb1 8.0833 1.6309 4.956 8.60e-07 ***
factorBb2 12.7213 1.6309 7.800 1.72e-14 ***
factorAa1:factorBb1 -1.2277 2.3064 -0.532 0.595
factorAa2:factorBb1 -0.8083 2.3064 -0.350 0.726
factorAa1:factorBb2 32.6186 2.3064 14.143 < 2e-16 ***
factorAa2:factorBb2 1.1961 2.3064 0.519 0.604
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 132.9891)
Null deviance: 432750 on 899 degrees of freedom
Residual deviance: 118493 on 891 degrees of freedom
AIC: 6966.3
Number of Fisher Scoring iterations: 2
Después el ANOVA:
anova(modelo.glm.int, test=”F”)
Model: gaussian, link: identity
Response: datos.int
Terms added sequentially (first to last)
Df Deviance Resid. Df Resid. Dev F Pr(>F)
NULL 899 432750
factorA 2 176817 897 255933 664.779 < 2.2e-16 ***
factorB 2 90566 895 165367 340.502 < 2.2e-16 ***
factorA:factorB 4 46874 891 118493 88.116 < 2.2e-16 ***
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Como se puede ver, ahora el resumen del modelo – summary() - nos da como significativa la interacción entre a1 y b2, justo los datos que son diferentes entre datos y datos.int. Además en el ANOVA también sale significativa la interacción.
También está aquí.
Ahora habría que ver qué pasa si modificamos para 2 niveles de dos factores, pero eso para otro día.
Saludos.
Acerca de… letras y ubunutu
Hola,
Dos cositas interesantes.
Llamar a las letras griegas por su nombre.
La verdad es que es una cosa que nunca he sabido y cada profesor decía una cosa diferente. Aquí podéis encontrar una entrada en un blog sobre el tema. Es un señor que se ve que ha vivido en Atenas y se ha molestado en escribirnos los nombres adecuados de las letras griegas.
Así que vayamos ovidándonos de llamar a esto μ “mu” por que se dice mi. Y nada de Chi cuadrado, sino Ji cuadrado.
Después de instalar Ubuntu.
Echadle un ojo a esta entrada. Este señor se ha apuntado todo lo que hay que hacer después de instalar Ubuntu. Muy útil.
Solo le falta una cosa, instalar y actualizar el R, jeje, eso se puede ver aquí.
Saludos.
P.D.: Ya está corregido el enlace a la web de lo que hay que hacer después de instalar Ubuntu. Gracias Eloi.
Acerca de… política científica en Nature.
Hola.
Los ciencia española, mejor dicho, la política científica española en la picota.
Se ha publicado un artículo en Nature (nada menos) en el que se habla de como, a partir de la entrada en el gobierno de los socialistas en 2004, la ciencia española fue ganando peso internacionalmente y advierte de que si ahora se recorta el presupuesto la vamos a liar parda. El artículo se titula No turning back, no hace falta explicar más.
En la web de precarios, donde me he enterado de la publicación del artículo proponen que se de difusión al artículo para ver si en el último momento se arrepienten y no nos dejan pelaos.
Saludos.
P.D.: Han publicado una traducción en un blog de El Pais.
Acerca de… chuleta de R y 3
Hola,
En el principio de los tiempos hice una entrada en la que ponía un enlace a un pdf con una especie de chuleta. Es una cosa que tengo bastante abandonada (sobretodo sabiendo que hay cosas como esto), aunque espero retomarla.
Como subir un pdf a wordpress cada vez que modifico algo es complicado se puede ver aquí.
Saludos.
Acerca de… revistas open access
Hola.
Os cuelgo dos enlaces a webs donde se recopilan revistas open access y un enlace interesante a un artículo sobre el tema:
Doaj. Directory of open access journals.
e-Revistas. Plataforma Open Access de revistas científicas Electrónicas Españolas y latinoamericanas.
Navarro, L. 2009. Calidad de la información en las revistas de acceso abierto. Ecosistemas. 18(2).
Espero que os interese.
Saludos.
Acerca de… se veía venir.
Hombres del mundo,
Dentro de nada ya no serviremos ni para eso, las hormigas ya lo han conseguido.
Saludos.
Acerca de… suelos, carreteras y restauración.
Hola.
Se ha publicado un artículo (en el que he participado) sobre la importancia de los factores edáficos en la restauración de taludes de carreteras.
Es una revisión de algunos de los trabajos en los que participé mientras estaba en el CIDE y otros relacionados con el tema. El artículo está en español. Os pego el resumen:
Restauración y revegetación de taludes de carreteras en ambientes mediterráneos semiáridos: procesos edáficos determinantes para el éxito.
Tormo, J., Bochet, E y García-Fayos
La construcción de carreteras y otras obras públicas produce impactos ambientales severos que afectan a las propiedades de los ecosistemas. Los taludes generados en estas obras presentan escasas coberturas vegetales y el establecimiento de la vegetación, tanto de forma natural como a través de restauraciones, es muy lento. El estudio de los factores que limitan la colonización vegetal en estas áreas degradadas nos ayudará a mejorar las técnicas de revegetación. Al igual que en otros ambientes, en los taludes de carreteras la colonización se ve limitada por la restringida capacidad de dispersión de algunas semillas, por lo que estas laderas son colonizadas principalmente por especies provenientes de áreas cercanas y/o por especies capaces de dispersarse a larga distancia. Pero existen una serie de limitaciones edáficas que hacen que, aunque muchas semillas sean capaces de llegar a los taludes, la colonización no se produzca. El tipo de talud (desmonte o terraplén) y su orientación influyen en la colonización, aumentando la cobertura vegetal en la siguiente dirección: desmontes sur, desmontes norte, terraplenes sur y terraplenes norte. En general, las propiedades físicas y químicas de las zonas alteradas no son adecuadas para el establecimiento de la vegetación, ya que presentan suelos poco fértiles (escasez de nutrientes y de materia orgánica), de texturas poco equilibradas y/o pedregosos. En los desmontes, las malas condiciones edáficas se acentúan, llegando a niveles de compactación de 1500 Mpa, que sobrepasan el umbral a partir del cual las raíces de las plantas son incapaces de penetrar. Pero el factor que más limita y modula la colonización vegetal en taludes de carreteras en ambientes semiáridos es el estrés hídrico. El suelo de los taludes de carreteras tiende a secarse más rápidamente en los desmontes y en las caras sur, siguiendo el mismo patrón que la cobertura vegetal. Estas diferencias hídricas podrían explicar las diferencias en cobertura vegetal entre tipos y orientaciones de taludes. De hecho, las especies que son capaces de colonizar los taludes de carreteras de forma abundante son capaces de germinar en condiciones de menor disponibilidad de agua y más rápidamente que las que no son capaces de colonizarlos, lo que les permite aprovechar las breves ventanas de disponibilidad de agua que producen los episodios lluviosos. Por otro lado, los taludes de carretera, con pendientes elevadas y escasa cobertura vegetal, sufren a menudo graves problemas de erosión, siguiendo los valores de erosión una pauta inversa a la de los valores de cobertura vegetal. Esto haría pensar que la erosión esta impidiendo la colonización al arrastrar las semillas. No obstante, aunque la erosión tenga una influencia en la pérdida de semillas por arrastre, la ausencia de diferencia en la densidad del banco de semillas del suelo entre desmontes y terraplenes indica que la erosión limita la colonización de los taludes sobre todo por el deterioro que produce en las propiedades edáficas relevantes para la germinación y establecimiento de las plantas (p. ej. disminuyendo la fertilidad o incrementando el déficit hídrico). Tratamientos como el uso de tierra vegetal o la aplicación de mulches pueden atenuar las condiciones limitantes y aceleran la colonización vegetal. Además, en desmontes, se han obtenido resultados prometedores utilizando tratamientos que disminuyen la compactación, mejoran las condiciones del suelo localmente y permiten la penetración de las raíces. El conocimiento de las limitaciones a la colonización vegetal en los distintos tipos de taludes de carreteras y del beneficio de determinados tratamientos para el establecimiento de las plantas ha de permitir optimizar el uso de los recursos según las necesidades de cada zona a restaurar y de elaborar consecuentemente planes de revegetación con garantías de éxito.
Si os interesa al artículo lo podéis leer aquí junto con los demás de este número, la revista es open access. También está en pdf en la página de publicaciones.
Por cierto, las gráficas están hechas con R.
Saludos.
