Regresion lineal simple y dispersion

La regresión lineal es una técnica de modelado estadístico que se emplea para describir una variable de respuesta continua como una función de una o varias variables predictoras. Puede ayudar a comprender y predecir el comportamiento de sistemas complejos o a analizar datos experimentales, financieros y biológicos.

Fuente: https://la.mathworks.com/discovery/linear-regression.html

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

Dispersion

  • Varianza
var(grasas$peso)
## [1] 161.9767
  • Desviacion estandar
sd(grasas$edad)
## [1] 12.24854
  • Media
mean(grasas$edad)
## [1] 39.12
  • Matriz de diagramas de dispersion
pairs(grasas)

Matriz de coeficientes de correlacion

En estadística, el coeficiente de correlación de Pearson es una medida de dependencia lineal entre dos variables aleatorias cuantitativas. A diferencia de la covarianza, la correlación de Pearson es independiente de la escala de medida de las variables. De manera menos formal, podemos definir el coeficiente de correlación de Pearson como un índice que puede utilizarse para medir el grado de relación de dos variables siempre y cuando ambas sean cuantitativas y continuas.

cor(grasas)
##             peso      edad    grasas
## peso   1.0000000 0.2400133 0.2652935
## edad   0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000

Calculo y representacion de la recta de minimos cuadrados

El comando básico es lm (linear models). El primer argumento de este comando es una fórmula y ~ x en la que se especifica cuál es la variable respuesta o dependiente (y ) y cuál es la variable regresora o independiente (x). El segundo argumento, llamado data especifica cuál es el fichero en el que se encuentran las variables. El resultado lo guardamos en un objeto llamado regresion. Este objeto es una lista que contiene toda la información relevante sobre el análisis. Mediante el comando summary obtenemos un resumen de los principales resultados:

regresion <- lm (grasas ~ edad, data = grasas)
summary(regresion)
## 
## Call:
## lm(formula = grasas ~ edad, data = grasas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -63.478 -26.816  -3.854  28.315  90.881 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 102.5751    29.6376   3.461  0.00212 ** 
## edad          5.3207     0.7243   7.346 1.79e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43.46 on 23 degrees of freedom
## Multiple R-squared:  0.7012, Adjusted R-squared:  0.6882 
## F-statistic: 53.96 on 1 and 23 DF,  p-value: 1.794e-07

Los parámetros de la ecuación de la recta de mínimos cuadrados que relaciona la cantidad de grasas en la sangre en función del peso vienen dados por la columna ´Estimate´ de la tabla ´Coefficients´ de la salida anterior. Por lo tanto, en este ejemplo la ecuación de la recta de mínimos cuadrados es:

\[ y = 102.5751 + 5.3207x \] ### Representacion de la recta de minimos cuadrados

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

El coeficiente de determinación (es decir, el coeficiente de correlación al cuadrado) mide la bondad del ajuste de la recta a los datos. A partir de la salida anterior, vemos que su valor en este caso es Multiple R-squared: 0.701.

Calculo de predicciones

nuevas.edades <- data.frame(edad = seq(30,50))
predict(regresion, nuevas.edades)
##        1        2        3        4        5        6        7        8 
## 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 294.1195 299.4402 
##        9       10       11       12       13       14       15       16 
## 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 336.6849 342.0056 
##       17       18       19       20       21 
## 347.3263 352.6469 357.9676 363.2883 368.6090

Inferencia en modelo de regresion lineal simple

La ecuacion de la recta, tiene la siguiente forma

$$

y_i = _0 + _1 x_i + _i,     i=1,,n,

$$ donde los errores aleatorios ϵi son independientes con distribución normal de media 0 y varianza σ2 .

Bajo este modelo,

Los errores típicos de los estimadores de los parámetros β0 y β1 se encuentran en la columna Std Error de la salida anterior. En el ejemplo, sus valores son 29.638 y 0.724 respectivamente.

La columna t value contiene el estadístico t, es decir, cociente entre cada estimador y su error típico. Estos cocientes son la base para llevar a cabo los contrastes H0:β0=0 y H0:β1=0 . Los correspondientes p-valores aparecen en la columna Pr(>|t|). En este caso son muy pequeños por lo que se rechazan ambas hipótesis para los niveles de significación habituales.

El estimador de la desviación típica de los errores σ aparece como Residual standard error y su valor en el ejemplo es 43.5

Los intervalos de confianza para los parámetros se obtienen con el comando confint. El parámetro level permite elegir el nivel de confianza (por defecto es 0.95):

Intervalos de confianza

confint(regresion)
##                 2.5 %     97.5 %
## (Intercept) 41.265155 163.885130
## edad         3.822367   6.818986

Los intervalos de confianza para la respuesta media y los intervalos de predicción para la respuesta se pueden obtener usando el comando predict. Por ejemplo, el siguiente código calcula y representa los dos tipos de intervalos para el rango de edades que va de 20 a 60 años (los de predicción en rojo):

nuevas.edades <- data.frame(edad = seq(20,60))
#Grafico de dispersion y recta 
plot(grasas$edad, grasas$grasas, xlab="Edad", ylab = "Grasas")
abline(regresion)

#Intervalo de confianza de la respuesta media 
# ic es una matriz con tres columnas: la prediccion, el limite inferior y el limite superior

#Intervalo de confianza de la respuesta media 
ic <- predict(regresion, nuevas.edades, interval = 'confidence')
lines(nuevas.edades$edad, ic[, 2], lty = 2)
lines(nuevas.edades$edad, ic[, 3], lty = 2)


#Intervalo de prediccion
ic <- predict(regresion, nuevas.edades, interval = 'prediction')
lines(nuevas.edades$edad, ic[, 2], lty = 2, col = "red")
lines(nuevas.edades$edad, ic[, 3], lty = 2, col = "red")

Tabla de análisis de varianza

ANOVA

anova(regresion)
## Analysis of Variance Table
## 
## Response: grasas
##           Df Sum Sq Mean Sq F value    Pr(>F)    
## edad       1 101933  101933  53.964 1.794e-07 ***
## Residuals 23  43444    1889                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

El análisis de varianza (ANOVA) puede determinar si las medias de tres o más grupos son diferentes. ANOVA utiliza la prueba F para evaluar estadísticamente la igualdad de las medias. En esta publicación, les mostraré cómo funcionan el ANOVA y la prueba F utilizando un ejemplo de ANOVA de un solo factor.

Pero, esperen un momento ¿alguna vez se han detenido a pensar por qué usarían un análisis de varianza para determinar si las medias son diferentes? También les mostraré de qué manera las varianzas proveen información sobre las medias.

Prueba F, F de Fisher La prueba F llevan el nombre de su estadística de prueba, F, que fue nombrado así en honor al científico inglés Ronald Fisher. La estadística F es simplemente un cociente de dos varianzas. Las varianzas son una medida de dispersión, es decir, qué tan dispersos están los datos con respecto a la media. Los valores más altos representan mayor dispersión.

La varianza es el cuadrado de la desviación estándar. Para nosotros los seres humanos, las desviaciones estándar son más fáciles de entender que las varianzas, porque están en las mismas unidades que los datos y no en unidades elevadas al cuadrado. Sin embargo, muchos análisis en realidad utilizan las varianzas en los cálculos.

Las estadísticas F se basan en la proporción de cuadrados medios. El término “cuadrados medios” puede parecer confuso, pero simplemente es una estimación de la varianza de la población que explica los grados de libertad (GL) utilizados para calcular esa estimación.

A pesar de ser una relación de varianzas, la prueba F se puede utilizar en una amplia variedad de situaciones. Como era de esperar, la prueba F puede evaluar la igualdad de las varianzas. Sin embargo, al cambiar las varianzas que se incluyen en la relación, la prueba F se convierte en una prueba muy flexible. Por ejemplo, las estadísticas F y las pruebas F se pueden utilizar para evaluar la significancia general de un modelo de regresión, para comparar el ajuste de diferentes modelos, para probar términos de regresión específicos y para evaluar la igualdad de las medias.

Diagnostico del modelo

Los valores ajustados ŷ i y los residuos ei=ŷ i−yi se pueden obtener con los comandos fitted y residuals respectivamente. Los residuos estandarizados se obtienen con rstandard. Por ejemplo, el siguiente código obtiene una representación de los residuos estandarizados frente a los valores ajustados, que resulta útil al llevar a cabo el diagnóstico del modelo:

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

En estadística se dice que un modelo predictivo presenta homocedasticidad cuando la varianza del error condicional a las variables explicativas es constante a lo largo de las observaciones.1.

No se observa ningún patrón especial, por lo que tanto la homocedasticidad como la linealidad resultan hipótesis razonables.

¿Los datos son normales?

Grafico QQ

qqnorm(residuos)
qqline(residuos)