lm(formula, data)
:formula
: expresión del tipo y ~ x
o
y ~ x1 + x2 + ... + xp
que indica qué variable
(y
) depende de cuáles (x
o bien
x1
, x2
, etc.)data
: hoja de datos que contiene las columnas
implicadas (o no poner nada si los datos están en vectores)$coefficients
: vector etiquetado con los parámetros
\(\hat{\beta}_0\), \(\hat{\beta}_1\), etc. Con ellos se puede
“escribir” la función de regresión \(\hat{Y} = \hat{\beta}_0 + \hat{\beta}_1
X\), etc.$fitted.values
: \(\hat{y}_i\), predicciones de \(Y\) para los datos de la muestra$residuals
: residuos en la muestra (\(y_i - \hat{y}_i\), observadas menos
predichas)plot(x, y)
de los datos,abline(obj)
, donde obj
es el
objeto devuelto por lm()
.predict(obj, newdata, interval, level)
:obj
: objeto devuelto por la función
lm()
newdata
: hoja de datos con valores de las variables
independientes. Debe llevar columnas etiquetadas como las variables
independientes usadas en la función lm()
. Por ejemplo,
data.frame(x=5)
o bien
data.frame(x1=5, x2=3)
interval
: por defecto no lo calcula.
"confidence"
(para el intervalo de confianza para
el VALOR MEDIO, o ESPERANZA, de \(Y\))
o bien"prediction"
(para el intervalo de confianza para la
PREDICCIÓN de \(Y\))level
: nivel de confianza del intervalo, si se ha
pedidoconfint(obj, parm, level)
:obj
: objeto devuelto por la función
lm()
parm
: nombres de los parámetros (omitir para que salgan
todos)level
: nivel de confianzasummary(obj)
:obj
: el objeto devuelto por la función
lm()
(Intercept)
, etc.), y una primera columna con la
estimación, y la última columna con el \(p\)-valor de cada contraste.Multiple R-squared
: el original, denotado por \(R^2\)
Adjusted R-squared
: el ajustado, denotado por \(\overline{R}^2\)
summary()
de la regresión
hechaplot(x)
:x
: objeto devuelto por la función
lm()
Residuals versus Fitted
: Residuos en función de valores
predichos. Si el modelo lineal es adecuado, se espera una nube de
residuos, de izquierda a derecha, en torno a una banda horizontal a
nivel \(0\):
Normal Q-Q
: gráfica de cuantiles (de los residuos,
respecto de los cuantiles teóricos de la normal). Si el modelo lineal es
adecuado, se espera una nube de puntos ceñida a la diagonal (eso sería
la normalidad). Si no, estaría fallando la normalidad
de los errores.En este problema vamos a fabricar datos de un modelo lineal, pàra
comprobar si la regresión lineal es capaz de acertarlo. Completa los
bloques de código de cada apartado (modificando el parámetro
eval=TRUE
del bloque):
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
set.seed(???) # poner semilla
xi = runif(500, 0, 3) # 500 muestreos de la X
ei = ??? # 500 muestreos del error (normal)
yi = ??? # valores de Y a partir de la fórmula del modelo
xx = data.frame(X=xi, Y=yi) # muestra conjunta (en hoja de datos)
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
recta = lm(formula=, data=) # hacer la regresión
summary(recta)
La ecuación de la recta de regresión es … y el coeficiente \(R^2\) es …
# CAMBIA EL PARÁMETRO eval DE ESTE BLOQUE A TRUE PARA COMPILAR !
# completa lo que falta
plot(???) # gráfica de los datos de la muestra
abline(???, col='red') # recta de regresión
abline(a=???, b=???, col='green') # "verdadera" recta que calcula los datos
LOS DATOS DE LA MUESTRA NO ESTÁN ALINEADOS POR CULPA DE… AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
# aquí tu código
AQUÍ TUS COMENTARIOS
Usando los datos cars
, que almacena distancias de
frenado de coches a determinadas velocidades.
data(cars) # esto carga los datos
#help(cars) # si quieres más info sober los datos
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
La ecuación de la recta de regresión es… CONTINUA AQUÍ
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
Usando los datos mtcars
:
mpg
sobre todas las demás, y anota el valor de los dos
coeficientes de bondad de ajuste.data(mtcars) # esto carga los datos
# aquí tu código
La ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
summary()
, ¿cuál de
todas las variables explicativas es más creíble que NO intervenga en el
modelo y se pueda excluir? Repite el apartado anterior,
QUITANDO DICHA VARIABLE INDEPENDIENTE (aquella con
MAYOR \(p\)-valor asociado, siempre que
sea superior a \(0.05\)).
Escribe la ecuación y los dos coeficientes de bondad de
ajuste.# aquí tu código
Quitamos la variable … y la ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
# aquí tu código
Quitamos la variable … y la ecuación es …. Los coeficientes de bondad de ajuste son \(R^2\) = … y \(\overline{R}^2\) = …
Repetir hasta que no haya p-valores mayores que 0.05
# aquí tu código
AQUI TUS COMENTARIOS
Supongamos que se pretende analizar el efecto de un medicamento sobre
el nivel de colesterol en sangre. Se experimenta con pacientes de
características muy similares, administrando distintas dosis del
medicamento a cada uno. Usa el modelo de regresión lineal múltiple para
ajustar los datos del fichero colesterol.txt
a un modelo polinómico de hasta grado 4.
x = read.table(file='colesterol.txt', header=TRUE)
# aquí tu código
AQUI TUS COMENTARIOS
x
Y NUEVAS COLUMNAS QUE SEAN POTENCIAS DE
x$dosis
, Y APLICAR LA REGRESIÓN MÚLTIPLE CON ELLA)# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS
# aquí tu código
AQUI TUS COMENTARIOS