Asignación: Curva de Calibración

Author

DSF

Descripción

Este documento sirve de base para su informe. Utilice los códigos y resultados para contestar las preguntas de la asignación. Las preguntas se indican con la letra P seguida de un número. Por ejemplo, P01, P12, etc.

Las tablas y figuras deben llevar sus leyendas correspondientes (en la parte superior de las tablas y en la inferior de las figuras).

Datos

Usar read.csv para crear un data frame dentro del ambiente RStudio.

areafoliar <- read.csv("area-foliar.csv")

P01:¿Cuántas observaciones y variables tiene el data frame?

P02:¿Cuáles son las unidades de cada variable?

P03: ¿Las mediciones de las variables área, longitud y ancho máximo, son independientes? Explique.

Modelo 1: longitud

Este primer modelo relaciona el área foliar medida con el procedimiento de calcar la hoja y contar los cuadros enteros y parciales dentro del dibujo de la hoja, con la longitud base-ápice de la hoja.

Gráfica

Gráficas usando la variable de longitud como variable predictora del área.

library(ggplot2)
# area vs longitud
arealong <- ggplot(areafoliar, aes(y=area_mm2,x=long_mm)) +
  geom_point() +
  xlab("Longitud, mm") +
  ylab("Area Foliar, mm2")
arealong

Modelo de Regresión Lineal

modlong <- lm(area_mm2 ~ long_mm, data = areafoliar)
summary(modlong)

Call:
lm(formula = area_mm2 ~ long_mm, data = areafoliar)

Residuals:
    Min      1Q  Median      3Q     Max 
-505.98 -150.91  -61.66  177.67  749.09 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1104.37     165.94  -6.655 1.93e-07 ***
long_mm        38.65       2.45  15.774 2.32e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 295 on 31 degrees of freedom
Multiple R-squared:  0.8892,    Adjusted R-squared:  0.8856 
F-statistic: 248.8 on 1 and 31 DF,  p-value: 2.324e-16

Modelo 2: ancho

Gráfica

Gráficas usando la variable del ancho máximo como variable predictora del área.

library(ggplot2)
# area vs ancho
areaancho <- ggplot(areafoliar, aes(y=area_mm2,x=ancho_max_mm)) +
  geom_point() +
  xlab("Ancho máximo, mm") +
  ylab("Area Foliar, mm2")
areaancho

Modelo de Regresión Lineal

modancho <- lm(area_mm2 ~ ancho_max_mm, data = areafoliar)
summary(modancho)

Call:
lm(formula = area_mm2 ~ ancho_max_mm, data = areafoliar)

Residuals:
    Min      1Q  Median      3Q     Max 
-537.75 -154.20   -4.28  191.02  449.98 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -1230.83     143.08  -8.602 1.03e-09 ***
ancho_max_mm    83.96       4.38  19.167  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 247.3 on 31 degrees of freedom
Multiple R-squared:  0.9222,    Adjusted R-squared:  0.9197 
F-statistic: 367.4 on 1 and 31 DF,  p-value: < 2.2e-16

P04: Construir una sola tabla con los siguientes valores para cada modelo:

  • valor del intercepto

  • P del intercepto

  • valor del coeficiente de x

  • P del coeficiente de x

  • R-cuadrado ajustado

  • Valor de F

  • p-value

P05: ¿Cuál modelo es mejor explicando la variación en los datos? Explique.

P06: ¿Por qué ambos modelos no son buenos cuando la x tiende a cero?

Crear nueva variable predictora

Los modelos anteriores relacionan el área foliar (dos dimensiones) con variables de longitud (una dimensión). Vamos a crear una nueva variable que contenga la longitud y el ancho máximo de la hoja, para crear una variable de “área”.

#alternative to mutate
areafoliar$longxancho <- areafoliar$ancho_max_mm * areafoliar$long_mm

Modelo 3: long X ancho max

Gráfica de puntos

library(ggplot2)
# area vs long x ancho max
arealongancho <- ggplot(areafoliar, aes(y=area_mm2,x=longxancho)) +
  geom_point() +
  xlab("Longitud x Ancho max, mm2") +
  ylab("Area Foliar, mm2")
arealongancho

Modelo de regresión

modlongancho <- lm(area_mm2 ~ longxancho, data = areafoliar)
summary(modlongancho)

Call:
lm(formula = area_mm2 ~ longxancho, data = areafoliar)

Residuals:
    Min      1Q  Median      3Q     Max 
-372.44  -93.85  -27.25   74.87  543.92 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -8.75392   66.07952  -0.132    0.895    
longxancho   0.63314    0.02573  24.606   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 195.6 on 31 degrees of freedom
Multiple R-squared:  0.9513,    Adjusted R-squared:  0.9497 
F-statistic: 605.4 on 1 and 31 DF,  p-value: < 2.2e-16

P07:Indique al menos dos razones por las cuales este modelo es mejor que los anteriores, para usarlo como curva de calibración.

Gráfica con intervalo de confianza y ecuación

modelox <- ggplot(data=areafoliar, aes(x=longxancho, y=area_mm2)) +
  geom_point(pch=19, color="blue", size=2) +
  geom_smooth(method="lm", color="red", linetype=2) +
  labs(x="Long x Ancho Max, mm x mm", y="Area, mm2") +
# add the model equation and R2
  annotate("text", x = 1000, y = 3000, label = paste("y=", round(coef(modlongancho)[1], 2), "+", round(coef(modlongancho)[2], 2), "x"), color = "black") +
annotate("text", x = 2300, y = 3000, label = paste("R2=", round(summary(modlongancho)$r.squared, 3)), color = "black")
modelox

P08: ¿Por qué es importante que la mayor parte de los puntos caigan dentro de un intervalo de confianza estrecho, para poder decir que tenemos un buen modelo?

Evaluación del modelo

#linealidad
plot(modlongancho, which = 1)

#homocedasticidad
plot(modlongancho, which = 3)

#normalidad
plot(modlongancho, which = 2)

P09: Discuta el cumplimiento de los supuestos de linealidad, homogeneidad de varianza y normalidad de los residuales del modelo. ¿Qué se espera, en cada caso, de un modelo paramétrico ideal?

P10: ¿Hay datos que desvían un mejor cumplimiento de los supuestos? ¿Cuáles, puede identificarlos?

Estimar el área y su intervalo de confianza a partir de longitud por ancho máximo

P11: Escoja al azar tres hojas de Cruz de Malta, mida su longitud base-ápice y su ancho máximo, multiplíque ambas cantidades para cada hoja. Coloque los tres valores en el vector y calcule la predicción de área para cada hoja y los límites inferiores y superiores del intervalo de confianza. Tómele una fotografía a las hojas con una regla en centímetros y milímetros incluida en la fotografía.

## predict from one value of long_mm to area_mm2 with confidence intervals
predict(modlongancho, data.frame(longxancho = c(700, 1000, 875)), interval = "confidence")
       fit      lwr      upr
1 434.4449 329.4362 539.4536
2 624.3873 530.6071 718.1675
3 545.2446 446.9363 643.5529