Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Commander R, Apuntes de Arquitectura de ordenadores

Asignatura: Fonaments de computadors, Profesor: Xavier Xarles, Carrera: Enginyeria Informàtica, Universidad: UAB

Tipo: Apuntes

2013/2014

Subido el 04/06/2014

fiberman59
fiberman59 🇪🇸

4.7

(3)

2 documentos

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
5/4/2014 Regresión lineal simple con R
http://www.uam.es/personal_pdi/ciencias/joser/paginaR/regresion.html 1/7
Regresión lineal simple con R
Los datos
Los datos del fichero EdadPesoGrasas.txt corresponden a tres variables medidas en 25 individuos: edad, peso y
cantidad de grasas en sangre. Para leer el fichero de datos y saber los nombres de las variables:
grasas <- read.table("http://www.uam.es/joser.berrendero/datos/EdadPesoGrasas.txt",
header = TRUE)
names(grasas)
## [1] "peso" "edad" "grasas"
Con el fin de conocer las relaciones existentes entre cada par de variables podemos representar una matriz de
diagramas de dispersión. Al parecer existe una relación lineal bastante clara entre la edad y las grasas, pero no entre los
otros dos pares de variables. Por otra parte el fichero contiene un dato atípico.
pairs(grasas)
Para cuantificar el grado de relación lineal, calculamos la matriz de coeficientes de correlación:
cor(grasas)
## peso edad grasas
## peso 1.0000 0.2400 0.2653
## edad 0.2400 1.0000 0.8374
## grasas 0.2653 0.8374 1.0000
Cálculo y representacion de la recta de mínimos cuadrados
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Commander R y más Apuntes en PDF de Arquitectura de ordenadores solo en Docsity!

Regresión lineal simple con R

Los datos

Los datos del fichero EdadPesoGrasas.txtcorresponden a tres variables medidas en 25 individuos: edad, peso y

cantidad de grasas en sangre. Para leer el fichero de datos y saber los nombres de las variables:

grasas <- read.table("http://www.uam.es/joser.berrendero/datos/EdadPesoGrasas.txt", header = TRUE) names(grasas)

[ 1 ] "peso" "edad" "grasas"

Con el fin de conocer las relaciones existentes entre cada par de variables podemos representar una matriz de diagramas de dispersión. Al parecer existe una relación lineal bastante clara entre la edad y las grasas, pero no entre los

otros dos pares de variables. Por otra parte el fichero contiene un dato atípico.

pairs(grasas)

Para cuantificar el grado de relación lineal, calculamos la matriz de coeficientes de correlación:

cor(grasas)

peso edad grasas

peso 1. 000 0 0. 240 0 0. 2653

edad 0. 240 0 1. 000 0 0. 8374

grasas 0. 265 3 0. 837 4 1. 0000

Cálculo y representacion de la recta de mínimos cuadrados

El comando básico es lm(linear models). El primer argumento de este comando es una fórmula y ~ xen la que se especifica cuál es la variable respuesta o dependiente ( ) y cuál es la variable regresora o independiente ( ). El

segundo argumento, llamado dataespecifica 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 summaryobtenemos un resumen de los principales resultados:

regresion <- lm(grasas ~ edad, data = grasas) summary(regresion)

Call:

lm(formula = grasas ~ edad, data = grasas)

Residuals:

Min 1 Q Median 3 Q Max

- 63. 4 8 - 26. 82 - 3. 85 28. 32 90. 88

Coefficients:

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

(Intercept) 102. 575 29. 638 3. 46 0. 002 1 **

edad 5. 321 0. 724 7. 35 1. 8 e- 0 7 ***

---

Signif. codes: 0 '' 0. 00 1 '' 0. 0 1 '' 0. 0 5 '.' 0.1 ' ' 1

Residual standard error: 4 3 .5 on 23 degrees of freedom

Multiple R-squared: 0. 701 , Adjusted R-squared: 0. 688

F-statistic: 5 4 on 1 and 23 DF, p-value: 1. 79 e- 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:

Los siguientes comandos representan la nube de puntos (comando plot) y añaden la representación gráfica de la recta

de mínimos cuadrados (comando ablineaplicado al objeto generado por lm):

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.

Cálculo de predicciones

y x

y = 102.575 + 5.321x

nuevas.edades <- data.frame(edad = seq( 20 , 6 0 ))

Grafico de dispersion y recta

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

Intervalos de confianza de la respuesta media: ic es una matriz con tres

columnas: la primera es la prediccion, las otras dos son los extremos

del intervalo

ic <- predict(regresion, nuevas.edades, interval = "confidence") lines(nuevas.edades$edad, ic[, 2], lty = 2) lines(nuevas.edades$edad, ic[, 3], lty = 2)

Intervalos 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")

La tabla de análisis de la varianza de los errores se obtiene con el comando anova:

anova(regresion)

Analysis of Variance Table

Response: grasas

Df Sum Sq Mean Sq F value Pr(>F)

edad 1 1 01933 101933 5 4 1. 8 e- 0 7 ***

Residuals 2 3 43444 1889

---

Signif. codes: 0 '' 0. 00 1 '' 0. 0 1 '' 0. 0 5 '.' 0.1 ' ' 1

Diagnóstico del modelo

Los valores ajustados y los residuos se pueden obtener con los comandos residualsy fitted

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:

yˆi ei = yˆi −yi

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

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

La hipótesis de normalidad se suele comprobar mediante un QQ plot de los residuos. El siguiente código sirve para obtenerlo:

qqnorm(residuos) qqline(residuos)

Variable regresora (dieño fijo) y parámetros

x = seq( 1 , 1 0 ) beta0 <- 0 beta1 <- 1 sigma <- 0. 3

Genera la variable respuesta

y <- beta0 + beta1 * x + rnorm(length(x), sd = sigma)

Ajusta el modelo

reg <- lm(y ~ x)

Extrae el valor de la pendiente estimada

coefficients(reg)[ 2 ]

Resume el ajuste

summary(reg)