Advertisement
kukis03

Modelos taller 3 completo

Nov 10th, 2023
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 5.47 KB | None | 0 0
  1. ---
  2. title: "Taller 3_Modelos I"
  3. author: "Jorge Moreno"
  4. output: pdf_document
  5. ---
  6.  
  7.  
  8. # Ejercicio 2: Dataset: FEV
  9.  
  10. La dataset FEV incluye observaciones de 654 niños a los que se les mide el Volumen Espiratorio Forzado (FEV: forced expiratory volume). En este ejercicio estamos interesados en modelar la relación de FEV y las siguientes variables.  
  11.  
  12. **age**: la edad del niño en años
  13.  
  14. **height**: la altura del niño en pulgadas
  15.  
  16. Importamos el set de datos:
  17.  
  18. ```{r}
  19. fev <- read.csv("C:/Users/aleja/Desktop/fev.txt", sep="")
  20. fev_subset=fev[,1:3]
  21. ```
  22.  
  23. ### Pregunta 1. Realice una exploración gráfica de la relación entre FEV y la edad y la altura del niño. ¿Se ajustaría un modelo aditivo de primer orden o algún orden superior?
  24.  
  25. ```{r}
  26. pairs(fev_subset,panel=function(x,y){points(x,y);lines(lowess(x,y),col="red")})
  27. ```
  28.  
  29. Puede verse que existe una curvatura en la relación entre FEV y edad, y entre FEV y altura, por lo que, en este caso, se ajustaría mejor un modelo de orden superior.
  30.  
  31. ### Pregunta 2. Ajuste el siguiente modelo aditivo de primer orden, analice los residuos del modelo y detecte la curvatura y heterocedasticidad en los residuos:
  32.  
  33. $$
  34. FEV_i = \beta_0 + \beta_1 age_i + \beta_2 height_i + \epsilon_i
  35. $$
  36.  
  37. ```{r}
  38. modelo1=lm(FEV~age+height,data=fev_subset)
  39. par(mfrow=c(2,2))
  40. plot(modelo1)
  41.  
  42.  
  43. par(mfrow=c(1,1))
  44. plot(modelo1$residuals,ylim=c(-3,3))+abline(2.5,0)+abline(-2.5,0)
  45. ```
  46. En el gráfico de los valores ajustados contra los residuos, podemos ver que la varianza incremente conforme los valores ajustados aumentan, por lo que existen problemas de heterocedasticidad. También podemos ver una ligera curvatura.
  47.  
  48. Adicionalmente, en el gráfico Q-Q, podemos ver que tenemos una situación de simétrica con colas pesadas, por lo que no hay normalidad.
  49.  
  50. No hay valores aberrantes.
  51.  
  52. ### Pregunta 3. Ajuste el siguiente modelo aditivo de segundo orden, analice los residuos del modelo:
  53.  
  54. $$
  55.  FEV_i = \beta_0 + \beta_1 age_i + \beta_2 height_i + \beta_3 age^2_i + \beta_4 height^2_i + \epsilon_i
  56. $$
  57.  
  58. ```{r}
  59. modelo2=lm(FEV~age+height+I((age-mean(age))^2)+I((height-mean(height))^2),data=fev_subset)
  60. par(mfrow=c(2,2))
  61. plot(modelo2)
  62.  
  63. par(mfrow=c(1,1))
  64. plot(modelo2$residuals,ylim=c(-3,3))+abline(2.5,0)+abline(-2.5,0)
  65. ```
  66.  
  67. El problema de simetría con colas pesadas persiste, por lo que no se ha solucionado la no normalidad.
  68.  
  69. Sin embargo, ya no está presente la curvatura en el gráfico de valores ajustados contra residuos. Lamentablemente, todavía es posible observar heterocedasticidad.
  70.  
  71. ### Pregunta 4. Realice una prueba de hipótesis para los efectos cuadráticos de age y height mejoran el ajuste del modelo. Escriba el contraste de hipótesis, el estadístico de prueba, el valor p de la prueba y su conclusión.
  72.  
  73. $$
  74.  H_0: \beta_3=\beta_4=0
  75. \quad  \quad  \quad \quad  \quad  \quad \quad  \quad  \quad  H_1:
  76.  \beta_3 \neq 0  \vee \beta_4 \neq 0
  77. $$
  78.  
  79.  
  80. ```{r}
  81. SCEpq=sum(modelo1$residuals^2)
  82. SCEp=sum(modelo2$residuals^2)
  83. q=2
  84. n=length(fev_subset$FEV)
  85. p=5
  86. (F0=((SCEpq-SCEp)/(q))/(SCEp/(n-p)))
  87. (pf(F0,q,n-p,lower.tail = F))
  88. ```
  89. Una forma alternativa puede ser:
  90.  
  91. ```{r}
  92. anova(modelo1,modelo2)
  93. ```
  94.  
  95. Si suponemos una significancia del 5%, existe evidencia estadística para rechazar la hipótesis nula, esto es, que $\beta_{3}=\beta_{4}=0$.
  96.  
  97. ### Pregunta 5. Compare el modelo 1 y 2 en base al coeficiente de determinación ajustado. ¿Qué modelo prefiere?
  98.  
  99. ```{r}
  100. sum1=summary(modelo1)
  101. sum2=summary(modelo2)
  102.  
  103. R2=cbind(sum1$r.squared, sum2$r.squared)
  104. R2_adj=cbind(sum1$adj.r.squared, sum2$adj.r.squared)
  105.  
  106. colnames(R2)=c("modelo1","modelo2")
  107. colnames(R2_adj)=c("modelo1","modelo2")
  108.  
  109.  
  110. R2
  111. R2_adj
  112. ```
  113. Como el modelo 2 tiene un mejor coeficiente de determinación ajustado, se prefiere este último, ya que explica mejor la variabilidad.
  114.  
  115. ### Pregunta 6. Estimemos el modelo 2 usando los mínimos cuadrados ponderados. Analice los residuos $r^{(w)}$
  116.  
  117. ```{r}
  118. modelo3=lm(abs(modelo2$residuals)~modelo2$fitted.values)
  119. w=1/(modelo3$fitted.values^2)
  120. modelo4=lm(FEV~age+height+I((age-mean(age))^2)+I((height-mean(height))^2),data=fev_subset,weights=w)
  121. par(mfrow=c(2,2))
  122. plot(modelo4)
  123. par(mfrow=c(1,1))
  124.  
  125.  
  126. plot(modelo4$residuals,ylim=c(-3,3))+abline(2.5,0)+abline(-2.5,0)
  127. ```
  128.  
  129.  
  130. Vemos que no hay ningún patrón presente entre los residuos ponderados y los valores ajustados. Los supuestos de heterocedasticidad y de normalidad no se cumplen todavía, pues la varianza aumenta cuando crecen los valores ajustados, y todavía hay colas pesadas.
  131.  
  132. ### Pregunta 7. Utilice las funciones plot3d() y persp3d() de la librería "rgl" para graficar la superficie de respuesta del último modelo.
  133.  
  134. ```{r}
  135. #install.packages("rgl")
  136. library(rgl)
  137. summary(fev_subset$age)
  138. x=c(3:19)
  139. summary(fev_subset$height)
  140. y=c(46:74)
  141. xy=data.frame(expand.grid(x,y))
  142. colnames(xy)=c("age","height")
  143. pxy=data.frame(predict(modelo2,xy))
  144. wxy=1/(predict(modelo3,pxy)^2)
  145. z=predict(modelo4,xy,weights = w_xy)
  146.  
  147. plot3d(fev_subset$ag,fev_subset$height,fev_subset$FEV,xlab="age",ylab="height",zlab="FEV")
  148. persp3d(x,y,z,add=TRUE,color="blue")
  149. ```
  150.  
  151.  
  152. ### Pregunta 8. ¿Cuánto sería el FEV de un niño de 5 años y 53 pulgadas? Proporcione un intervalo de predicción e interprételo.
  153.  
  154. ```{r}
  155. predict(object=modelo2,newdata=data.frame(height=53,age=5),interval=c("prediction"),level=0.95,df=n-5)
  156. ```
  157. El intervalo nos dice que, con un 95% de predicción, si se tiene un niño de 5 años y de 53 pulgadas, podemos predecir que el FEV del niño está entre 0.54 y 2.12.
  158.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement