[R-es] Regresión no linear en WRC con Machine Learning

Stalin Granda @vgr@nd@ @end|ng |rom gm@||@com
Lun Abr 18 18:22:39 CEST 2022


Gracias Emilio,

Finalmente para obviar el tema de ortogonalidad, decidí construir el
polinomio como una ecuación independiente,  elevando la variable de interés
a las potencias correspondientes.

dat_WRC19 <- data.frame(h=h, predichos=predichos)
h2 =h*h
h3=h2*h
mod19 <- lm(predichos ~ h + h2 + h3, data=datos1)
summary(mod19)

Los resultados fueron los esperados, y ahora se pueden dibujar e
interpretar en excel sin dificultad.

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.591612   0.003169  186.68   <2e-16 ***
h            0.129202   0.007422   17.41   <2e-16 ***
h2          -0.128228   0.005153  -24.89   <2e-16 ***
h3           0.020383   0.001080   18.87   <2e-16 ***

Saludos cordiales,

Stalin

El vie, 15 abr 2022 a las 1:23, Emilio L. Cano (<emilopezcano using gmail.com>)
escribió:

> Hola Stalin,
>
> Por defecto, la función poly() de R ajusta polinomios ortogonales.
> Posiblemente Excel ajuste polinomios de otra forma, prueba a usar el
> argumento raw = TRUE a ver si así tienes el mismo resultado.
>
> Un saludo,
>
> Emilio L. Cano
> http://emilio.lcano.com
>
>
>
>
> El 14 abr 2022, a las 16:01, Stalin Granda <svgranda using gmail.com> escribió:
>
> Hola a todos,
>
> Estoy trabajando con un modelo de predicción de para ajustar la curva de
> retención de agua (theta ~ WRC) de acuerdo con la Ec. de van Genutchen
>
> fitted <- nls(theta ~ qr + (qs-qr)/(1+(alpha*h)^n)^(1-1/n),
> start=list(qs=0.64, qr=0.30, alpha =.37, n=2.83))
>
> Después de correr el código, los datos ajustados (theta) se ven bastante
> bien para un cierta sección de la curva (entre 0,178 y 2,87 pF),  pero con
> estos mismos ahora necesito generar una ecuación polinómica que me permita
> calcular (theta) para otros valores de la curva, entre 0 y 4,27 pF (h ~
> pF).
>
> Estoy aplicando machine learning, realizando la partición correspondiente
> para datos  evaluados y testados.
>
> training.muestra <-  datos1$predichos  %>%
>   createDataPartition(p=0.8, list = FALSE)
> train.data <- datos1 [training.muestra, ]
> test.data <- datos1 [-training.muestra, ]
>
> He generado el modelo 3 (datos1.csv) para una ecuación polinómica de grado
> 3:
>
> modelo3 <- lm(predichos  ~ poly(h,3),data = train.data)
> summary(modelo3)$coef
> predicciones3 <- modelo3 %>% predict(test.data)
> predicciones3
>
> Los resultados se muestran:
>
>                Estimate   Std. Error    t value      Pr(>|t|)
> (Intercept)  0.53733575 0.0004243755 1266.17982 2.609800e-156
> poly(h, 3)1 -0.58854606 0.0036752001 -160.13987  1.358153e-92
> poly(h, 3)2 -0.13918929 0.0036752001  -37.87258  7.919609e-49
> poly(h, 3)3  0.06016205 0.0036752001   16.36973  8.380817e-26
>
> Con estos datos. género la ecuación correspondiente, pero al hacer el
> cálculo para otros valores de la curva en excel, el gráfico no se muestra
> igual como en r.
>
> Será que estoy haciendo algo mal, alguien me puede dar luces al respecto.
> En el adjunto les dejo los valores con los que estoy trabajando.
>
> Saludos cordiales,
>
> Stalin
>
>
> --
>
>
>
> *Stalin Granda A.Magíster en Ingeniería Mc. Recursos HídricosUACh*
> <datos1.csv>_______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>

-- 



*Stalin Granda A.Magíster en Ingeniería Mc. Recursos HídricosUACh*

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es