Lolium Rigidum. Dentro de un estudio sobre la competencia entre

Anuncio
Lolium Rigidum. Dentro de un estudio sobre la competencia entre dos biotipos de plantas Lolium Rigidum: (Ritz‐Streibig). Un biotopo es resistente al glifosato (herbicida total, muy peligroso aunque de amplio uso) y el otro es de tipo salvaje y sensible al glifosato. Se dispone (valores experimentales) de la densidad x (plantas/m2) del biotopo sensible, junto a la densidad z del biotopo resistente. Se mide la biomasa (gr/planta) del biotopo sensible después de la germinación para los diferentes valores (x, z). Se quiere ajustar un modelo hiperbólico, en el que la relación de la biomasa con las densidades (x, z) viene dada por la siguiente función: f(x, z; , , ) =  / ( 1 +  * (x + *z) )
> dat <- read.table("D:\\...\\LoliumRigidum.txt", header=T)
> summary(dat)
z
x
biomass
Min.
: 0.00
Min.
: 2
Min.
: 1.063
1st Qu.: 0.00
1st Qu.: 8
1st Qu.: 2.278
Median : 8.00
Median :16
Median : 3.257
Mean
:17.71
Mean
:25
Mean
: 4.895
3rd Qu.:31.00
3rd Qu.:32
3rd Qu.: 5.103
Max.
:64.00
Max.
:64
Max.
:23.600
> biomasa <- dat$biomass
### biomasa del biotopo sensible
> x <- dat$x
### x: densidad (plantas/m2) del biotipo sensible al glyfosato
> z <- dat$z
### z: densidad (plantas/m2) del biotipo resistente al glyfosato
x11()
plot( z ~ x, xlab="x: densidad de plantas sensibles",
ylab="z: densidad de plantas resistentes",
main="valores experimentales (x,z)", cex.main=0.9 )
0
10
20
30
40
50
60
valores experimentales (x,z)
z: densidad de plantas resistentes
>
>
+
+
0
10
20
30
40
x: densidad de plantas sensibles
50
60
1
> table(z)
z
0 7 8 15 16 31 32 62 63 64
15 1 11 1 8 1 5 3 3 1
>
>
+
+
x11()
plot( biomasa ~ x, pch=as.numeric(as.factor(z)),
xlab="x: densidad de plantas sensibles",
main="biomasa vs. x para distintos valores de z", cex.main=0.9 )
5
10
biomasa
15
20
biomasa vs. x para distintos valores de z
0
10
20
30
40
50
60
x: densidad de plantas sensibles
>
>
>
>
###
###
###
###
ajuste de un modelo hiperbólico
start: a0=20, valor medio cuando x=z=0
c0 = 1, ¿ambos biotipos son igualmente competitivos?
b0 tal que 20/(1+b*(x+z)) = 5, con x+z=20; esto es, b0=0.15
> m1 <- nls( biomasa ~ a / (1 + b * (x + c * z )),
+ start=list(a=20, b=0.15, c=1), trace=T )
183.8273
129.1265
128.8172
128.8172
:
:
:
:
20.00 0.15 1.00
25.6262008 0.1777948
25.9164523 0.1776496
25.9145193 0.1776284
1.1430284
1.1349882
1.1349312
> summary( m1 )
Formula: biomasa ~ a/(1 + b * (x + c * z))
2
Parameters:
Estimate Std. Error t value Pr(>|t|)
a 25.9145
2.3393 11.078 1.42e-14 ***
b
0.1776
0.0355
5.004 8.68e-06 ***
c
1.1349
0.2964
3.829 0.000387 ***
Residual standard error: 1.673 on 46 degrees of freedom
Number of iterations to convergence: 3
Achieved convergence tolerance: 8.447e-06
> ### gráfico del modelo ajustado
> aa <- coef(m1)[1]; bb <- coef(m1)[2]; cc <- coef(m1)[3];
> ### función media del modelo
> fmod <- function(xxx, zzz){ aa / (1 + bb * (xxx + cc * zzz )) }
>
>
>
>
+
+
xx <- seq(0,65, length=14)
zz <- xx
bbiom <- matrix(,nrow=length(xx), ncol=length(zz))
for(i in 1:length(xx)){ for(j in 1:length(zz)){
bbiom[i,j] <- fmod(xx[i], zz[j])
}}
>
>
+
+
>
x11()
parapuntos <- persp( xx, zz, bbiom, theta=25, phi=25, d=10^6, zlim=c(0,27),
ticktype="detailed", xlab="x: sensible", ylab="z: resistente",
zlab="biomasa", cex.axis=0.7, shade=0.1, col="ivory" )
mtext( "Lolium Rigidum", side=3, line=0, font=2, cex=0.9 )
>
>
>
>
### se añaden los puntos observados
puntos <- trans3d( x, z, biomasa, pmat=parapuntos )
#points( puntos$x, puntos$y, col="red", pch=16 )
points( puntos, col="red", pch=16, cex=0.7 )
> ### se añade una línea azul desde cada punto al valor predicho
> biopred <- predict( m1 )
> m1pred <- trans3d( x, z, biopred, pmat = parapuntos )
> obs <- trans3d( x, z, biomasa, pma = parapuntos )
> segments( m1pred$x, m1pred$y, obs$x, obs$y, col="blue", lty=1 )
> points( puntos, col="red", pch=16, cex=0.7 )
> ### se añade el contorno para x+cc*z=50, esto es, la línea que une los
> ### puntos (50, 0, fmod(50,0)) y (0,50/cc, fmod(0,50/cc))
>
>
>
>
fmod1 <- fmod(50,0); fmod2 <- fmod(0,50/cc)
ct1 <- trans3d( 50, 0, fmod1, pmat=parapuntos )
ct2 <- trans3d( 0, 50/cc, fmod2, pmat=parapuntos )
segments(ct1$x,ct1$y,ct2$x,ct2$y, lty=1, lwd=2, col="blue")
> ### densidad (no probabilística) virtual, "perpendicular"
> ### a los contornos x+cc*z=cte: esto es, el "modelo" sobre la línea z=cc*x
>
>
>
>
>
vv <- seq(0,65, length=100)
### valores z
uu <- vv/cc ### valores x
ceros <- rep(0, length(uu))
transceros <- trans3d( uu, vv, ceros, pmat=parapuntos)
lines( transceros$x, transceros$y, col="blue", lty=3 )
3
> fmod.uuvv <- aa / (1 + bb * (uu + cc * vv ))
> pp1 <- trans3d( uu, vv, fmod.uuvv, pmat=parapuntos )
> lines( pp1$x, pp1$y, col="blue", lwd=2 )
Lolium Rigidum
25
20
biomasa
15
10
5
60
40
0
0
20
20
x: se n
sible
40
60
0
z
i
es
r
:
en
st
te
4
>
>
>
>
###
###
###
###
Visualización del modelo condicionando a cc obtenido en m1
proyectando datos y modelo sobre el plano z=cc*x (el modelo pasa a ser la
curva azul representada en el gráfico anterior.
dv = x + cc * z , llamada densidad virtual
> cc <- coef(m1)[3];
> dv <- x + cc*z
>
>
+
+
x11()
plot( dv, biomasa, ylim=c(0,25), xlab="densidad virtual (x+c*z)",
ylab="biomasa del biotopo sensible",
main="biomasa vs. densidad virtual", cex.main=0.9 )
> fdv <- function(x){ aa / (1 + bb * x) }
> curve( fdv, add=T, col="blue", lwd=2 )
15
10
5
0
biomasa del biotopo sensible
20
25
biomasa vs. densidad virtual
0
20
40
60
80
100
120
densidad virtual (x+c*z)
5
Descargar