Setaria splenda.- Cortesía de Heritage seeds, Australia
Setaria splenda.- Cortesía de Heritage seeds, Australia

La regresión lineal es un método matemático que modela la relación entre una variable dependiente (y), la variable independiente (xi) y un error (ε). Este modelo se expresa de la siguiente manera:

                                                                         f(x)= ax + b

Donde f(x) es la variable dependiente, a es la pendiente de la recta y b es el intercepto (valor de f(x) cuando x = 0).

 

Para este módulo seguimos utilizando el set de datos forraje.

 

 Calculemos los coeficientes de la regresión

  • Rendimiento.lm = lm(Rendimiento ~ Tratamiento, data=Europe1) #Calculamos la regresión
  • Rendimiento.lm  #Veamos los términos de la regresión

               Call:  lm (formula = Rendimiento ~ Tratamiento, data = Europe1)

             Coefficients:       (Intercept)             Tratamiento  

                                              2130.100                   4.233 

  • summary (Rendimiento.lm) 

Coefficients:

                               Estimate Std.               Error                   t value           Pr(>|t|)    

(Intercept)                 2130.1000                  90.7281           23.478          5.95e-15 ***

Tratamiento                    4.2333                    0.4939              8.572         9.04e-08 ***

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 Residual standard error: 234.3 on 18 degrees of freedom

Multiple R-squared:  0.8032,    Adjusted R-squared:  0.7923

F-statistic: 73.48 on 1 and 18 DF,  p-value: 9.043e-08

 

 

Los coeficientes nos indican que:

Si no añadiéramos N la producción media de las parcelas sería de 2130 kg/ha.

Se obtiene un incremento de 4.23 kg/ha por cada kg de N aplicado.

La ecuación final sería: Rendimiento=N(4.23)+2130

 

La regresión cuadrática es un método matemático que modela la relación entre una variable dependiente (y), la variable independiente (xi ), xi2 y un error (ε). Este modelo se expresa de la siguiente manera:

                                                                         f(x)= ax2 + bx + c

Donde f(x) es la variable dependiente, a es la pendiente de la recta cuando x está al cuadrado, b es la pendiente de la recta  y c es el intercepto (valor de f(x) cuando x = 0).

 

 

 Calculemos los coeficientes de la regresión cuadrática

 

  • attach (Europe1) 
  • Trata2=(Tratamiento*Tratamiento)
  • Rendimiento.lm2 = lm(Rendimiento ~ Tratamiento + Trata2) #Calculamos la regresión
  • Rendimiento.lm2  #Veamos los términos de la regresión

           Call:

          lm(formula = Rendimiento ~ Tratamiento + Trata2)

          Coefficients:

          (Intercept)               Tratamiento                 Trata2  

           1963.38571              8.67905                      -0.01482  

  • summary (Rendimiento.lm2)

            Call:

              lm(formula = Rendimiento ~ Tratamiento + Trata2)

            Residuals:

               Min              1Q                 Median               3Q            Max 

            -355.96      -111.14              34.40               88.58       384.04 

           Coefficients:

                               Estimate Std.               Error               t value             Pr(>|t|)    

(Intercept)             1.963e+03                 8.831e+01         22.234             5.27e-14 ***

Tratamiento         8.679e+00                 1.395e+00           6.223              9.28e-06 ***

Trata2                  -1.482e-02                  4.458e-03           -3.324              0.00402 ** 

 

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 187.7 on 17 degrees of freedom

Multiple R-squared:  0.8807,    Adjusted R-squared:  0.8667 

F-statistic: 62.77 on 2 and 17 DF,  p-value: 1.413e-08

 

Los coeficientes nos indican que:

Si no añadiéramos N la producción media de las parcelas sería de 1963 kg/ha.

Se obtiene un incremento de 8.68 kg/ha por cada kg de N aplicado.

Se perdería 0.015 kg de biomasa por cada kg de N2 aplicado.

 

La ecuación final sería: Rendimiento=1963 +N(8.68)-N2(0.015)

 

Ahora hacemos los gráficos

  • par(mfrow=c(1,2))
  • plot (Tratamiento,Rendimiento , xlab="Nitrógeno (kg/ha)",  ylab="Rendimiento (kg/ha)", main="Regresión lineal")    #Hacemos el gráfico en blanco
  • abline (lm(Rendimiento~ Tratamiento))     # Añadimos la línea de regresión
  • plot (Tratamiento,Rendimiento , xlab="Nitrógeno (kg/ha)",  ylab="Rendimiento (kg/ha)",main="Regresión cuadrática") #Hacemos otro gráfico en blanco
  • Nvalores <- seq(0, 300, 0.1) #Creamos una secuencia de numeros
  • Predicciones <- predict(Rendimiento.lm2,list(Tratamiento=Nvalores, Trata2=Nvalores^2))
  • lines(Nvalores, Predicciones, col = "red", lwd = 1)  # Añadimos la línea de regresión cuadrática

Bono: Regresión lineal con plateau

  • qp.nls.fit<- nls(Rendimiento ~ (b0 + b1*Tratamiento)*(Tratamiento <= x0) + (b0 + b1*x0 )*(Tratamiento > x0), data=Europe1, start=list(b0=2000, b1=5, x0=200), trace=T)
  • qp.nls.fit
  • summary(qp.nls.fit)
  • c.qp.fit <- coefficients(qp.nls.fit)
  • attach(as.list(c.qp.fit))
  • yld.x0 <- b0 + b1*x0
  • maxn <- x0
  • yldmaxn <- b0 + b1*maxn 
  • plot(Rendimiento ~ Tratamiento, pch = 16, main = "Linear plus Plateau Model", xlab = expression (paste("Dosis de Nitrógeno (kg ha" ^-1,")")), ylab = expression (paste("Producción de pasto (kg ha"^-1,")")))
  • curve(predict(qp.nls.fit, data.frame(Tratamiento = x)), add = T)
  • text(200,2500, paste("Máximo rendimiento =3190"))
  • text(189,2400, paste("Máximo N recomendado=180")) 
  • text(100,3400, paste("Ecuación linear=1980+6.7*Dosis de nitrógeno"))

 

Correlaciones múltiples de Pearson

  • library (agricolae) #se carga el paquete agricolae
  • data(soil) #este es un set de datos de suelos
  • #análisis de correlación múltiple de los primeros 7 elementos
  • analisis1<-correlation(soil[,2:8],method="pearson") #hacemos la correlación simple
  • analisis1 #se muestra los resultados
  • #correlación del pH con los siguientes 6 elementos
  • analisis2<-with(soil,correlation(pH,soil[,3:8],method="pearson",alternative="less"))
  • analisis2
  • # correlación entre el pH y la arcilla usanso el método de Kendall
  • with(soil,correlation(pH,clay,method="kendall", alternative="two.sided"))

Ahora más gráficos

  • require(corrplot) #se carga el paquete corrplot
  • corrplot.mixed(corr = cor(soil[,c(2:23)], method = "pearson")) #y ahora el gráfico TATAN

Examen final

 

  • Los datos para el examen final se los puede bajar aquí