Análisis de correlacion

Importar paquetes y definir folder de trabajo

library(pacman)
p_load("base64enc", "htmltools", "mime", "xfun", "prettydoc", "readr", "ggplot2", "tidyr", "plotly", "DT")
setwd("~/ProbYEstadistica")

Importar datos

grasas <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt", header= TRUE)
names(grasas)
## [1] "peso"   "edad"   "grasas"

Descripción de datos

Se tienen datos de 25 personas de peso, edad y grasas.

datatable(grasas)

## Ajusta el modelo que explica la cantidad de grasas en función del peso.

regresion <- lm(grasas ~   peso, data=grasas )
summary(regresion)
## 
## Call:
## lm(formula = grasas ~ peso, data = grasas)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -127.729  -53.686   -9.239   46.537  128.404 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept)  199.298     85.818   2.322   0.0294 *
## peso           1.622      1.229   1.320   0.2000  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 76.65 on 23 degrees of freedom
## Multiple R-squared:  0.07038,    Adjusted R-squared:  0.02996 
## F-statistic: 1.741 on 1 and 23 DF,  p-value: 0.2

Con base a los parametros obtenidos se puede ver que por medio de las estimaciones obtenemos la ecuacion de la recta: \[ y=199.298 + 1.622x\] Que nos es util al momento de realizar predicciones a futuro referente a la relacion que existe entre el peso y la edad.

Calcula y representa gráficamente la recta de regresión, junto con la correspondiente nube de puntos.

plot(grasas$edad, grasas$grasas, xlab="Edad", ylab="Grasas" )
abline(regresion)

Predicciones

nuevos.pesos <- data.frame(peso= seq(20,60))
predict(regresion,nuevos.pesos)
##        1        2        3        4        5        6        7        8 
## 231.7444 233.3667 234.9890 236.6114 238.2337 239.8561 241.4784 243.1008 
##        9       10       11       12       13       14       15       16 
## 244.7231 246.3454 247.9678 249.5901 251.2125 252.8348 254.4572 256.0795 
##       17       18       19       20       21       22       23       24 
## 257.7018 259.3242 260.9465 262.5689 264.1912 265.8136 267.4359 269.0582 
##       25       26       27       28       29       30       31       32 
## 270.6806 272.3029 273.9253 275.5476 277.1700 278.7923 280.4146 282.0370 
##       33       34       35       36       37       38       39       40 
## 283.6593 285.2817 286.9040 288.5264 290.1487 291.7710 293.3934 295.0157 
##       41 
## 296.6381

Calula un intervalo de confianza para la pendiente de la recta de nivel 90%.

confint(regresion)
##                  2.5 %     97.5 %
## (Intercept) 21.7696109 376.825392
## peso        -0.9209324   4.165618
confint(regresion, level = 0.90)
##                    5 %       95 %
## (Intercept) 52.2166142 346.378389
## peso        -0.4847468   3.729432

Calcula y representa los intervalos de confianza al 95% de la cantidad de grasas media para los individuos entre 30 y 90 kg.

nuevos.pesos <- data.frame(peso=seq(30,90))

#Gráfica de disperión y recta 
plot(grasas$peso, grasas$grasas, xlab="Peso", ylab="Grasas")
abline(regresion)

#Intervalos de confianza de la respuesta media 
#ic es una matriz de tres columnas: la primera es la predicción, las otras son los extremos del intervalo
ic <- predict(regresion, nuevos.pesos, interval="confidence" )
lines(nuevos.pesos$peso, ic[, 2], lty =2, col="red"  )
lines(nuevos.pesos$peso, ic[, 3], lty =2, col="red"  )


#Intervalo de predicción
ic <- predict(regresion, nuevos.pesos, interval="prediction" )
lines(nuevos.pesos$peso, ic[, 2], lty =2, col="red"  )
lines(nuevos.pesos$peso, ic[, 3], lty =2, col="red"  )

Análisis ANOVA

anova(regresion)

Lleva a cabo el diagnóstico del modelo

residuos <- rstandard(regresion)
valores.ajustados <- fitted(regresion)
plot(valores.ajustados, residuos)

No hay aparentemente algun patron u orden especial, lo que permite decir que la homocedasticidad y la linealidad son notablemente hipotesis razonables.

qqnorm(residuos)
qqline(residuos)

Las puntuaciones parecen tener un patron bastante alineado a diferencia de dos puntos extremos la normalidad parece por lo tanto aceptable