El uso de nlsLM de Paquete 'minpack.lm' es sencillo para un ejemplo sencillo como esto:
MODEL:y=(exp(a*x+b*z+c)+d)^f
x=c(0.5,0.3,0.2,0.4)
z=c(0.1,0.6,1,0.9)
y=c(0.2,0.3,0.9,0.9)
fit=nlsLM(y~(exp(a*x+b*z+c)+d)^f,start = list(a = -.03, b = 0.5, c = 1,d=0.02,f=0.003))
Y no hay problema con eso. Mis datos reales son varios rásteres de un año.Así que tengo los datos de un año para x,y,z, pero como los rásteres que contienen píxeles,yo quiero hacer una regresión no lineal de un pixel por un pixel(regresión para cada uno de los píxeles no está relacionado con el siguiente píxel). datos de ejemplo:
r <- raster(nrows=10, ncols=10); r <- setValues(r, 1:ncell(r))
r1 <- raster(nrows=10, ncols=10);r1 <- setValues(r1, 1:ncell(r))
r2 <- raster(nrows=10, ncols=10);r2 <- setValues(r1, 1:ncell(r))
st1=stack(r,r1,r2)
rl <- raster(nrows=10, ncols=10); r <- setValues(r, 1:ncell(r))
rS <- raster(nrows=10, ncols=10);r1 <- setValues(r1, 1:ncell(r))
rT <- raster(nrows=10, ncols=10);r2 <- setValues(r1, 1:ncell(r))
st2=stack(rl,rS,rT)
re <- raster(nrows=10, ncols=10); r <- setValues(r, 1:ncell(r))
ru <- raster(nrows=10, ncols=10);r1 <- setValues(r1, 1:ncell(r))
rg <- raster(nrows=10, ncols=10);r2 <- setValues(r1, 1:ncell(r))
st3=stack(re,ru,rg)
así que primero x sería el primer píxel de la st1(para todo el período temporal)
así que la primera y sería el primer píxel de st2(para todo el período temporal)
así que primero z sería el primer píxel de st3(para todo el período temporal)
hacer una regresión para este píxel, a continuación, hacer lo mismo para el resto de los píxeles
Como resultado puedo obtener un mapa (raster) 10*10 para cada uno de las mejores de parámetros(a,b,c,d,f)
Espero que quede claro y usted tiene cualquier ayuda!