1 votos

Ajuste de regresión en R

Necesito ayuda para que me orienten en la dirección correcta para crear un modelo de regresión en R con datos que se ven así.

Esta es mi primera incursión en esto. Por lo tanto, usando la ecuación de la línea de tendencia de Excel como referencia, pude crear una línea de tendencia logarítmica para otro conjunto de datos que coincidía entre las dos aplicaciones.

Sin embargo, con este ejemplo específico, no estoy seguro de cómo formular el modelo o si debería usar una regresión no lineal frente a una lineal con transformación. A continuación se muestra un ejemplo de los datos en el gráfico.

x = c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1)
y = c(0.008,0.004,0.0025,0.0024,0.0023,0.0022,0.0021,0.002,0.0018,0.0005,0.012,0.006,
     0.00375,0.0036,0.00345,0.0033,0.00315,0.003,0.0027,0.00075)
z = c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2)

df = data.frame(x, y, z)

plot(df$y ~ df$x, type="p", pch=20, col=df$z)

Datos de Muestra

1voto

David Puntos 14

Utilice nls() para ajustar cualquier curva. Toma una función definida por el usuario como argumento. En su caso, tiene dos puntos de inflexión, por lo que un cúbico podría funcionar. También podría definir un polinomio de orden superior.

rhs <- function(x, b0, b1, b2, b3) {
    return(b0 + b1*x + b2*x^2 + b3*x^3)
}

modelo <- nls(y ~ rhs(x, intercept, linear, quadratic, cubic), data=df, 
             start=list(intercept=0.015, linear=-.001, quadratic=0, cubic=0.01), trace=T)

Si sus valores iniciales son razonables, obtendrá un buen ajuste.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X