Está en la página 1de 5

Regresión lineal simple

Pedro Abraham Montoya Calzada

Se realizará un análisis de regresión entre las siguientes variables donde; y es la variable


dependiente y x es la variable independiente, a continuación, se muestran los pasos a seguir
utilizando el lenguaje R.

y x
8.94 9.40
9.21 9.53
8.94 9.58
9.61 9.93
8.94 9.45
9.84 9.93
9.19 9.71
8.43 9.44
8.28 9.36
9.09 9.35
9.54 9.70
9.65 9.93
8.94 9.48

X y Y son guardadas en dos vectores de la siguiente manera.


y=c(8.94,9.21,8.94,9.61,8.94,9.84,9.19,8.43,8.28,9.09,9.54,9.65,8.94)
x=c(9.40,9.53,9.58,9.93,9.45,9.93,9.71,9.44,9.36,9.35,9.70,9.93,9.48)

Para crear el modelo se utiliza la función lm con la siguiente sintaxis.


modelo=lm(y~x)

Creando el diagrama de dispersión con la recta de regresión ajustada.


plot(y~x)
abline(modelo)
Del gráfico se logra ver que existe una relación lineal directa entre las dos variables y la recta
de regresión parece ajustarse de buena manera.
La función summary dará la información suficiente para realizar un análisis más profundo
de la regresión.
summary(modelo)

##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.41774 -0.13002 0.02891 0.17115 0.41004
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.9439 3.2300 -2.459 0.031712 *
## x 1.7780 0.3364 5.285 0.000258 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2555 on 11 degrees of freedom
## Multiple R-squared: 0.7175, Adjusted R-squared: 0.6918
## F-statistic: 27.93 on 1 and 11 DF, p-value: 0.0002582
De aquí se obtiene que;
El modelo de regresión es 𝑦̂ = −7.9439 + 1.7780𝑥, es una regresión lineal significativa pues
el valor p de la prueba T para 𝛽1 es iguala 0.000258 y aproximadamente el 71.75 de la
variavilidad de 𝑦 es explicada por la regresión; esto es por que 𝑟 2 = 0.7175.
El comando summary también devuelve el valor p de la prueba F, pero este valor resulta de
más utilidad cuando se trata de un modelo de regresión lineal múltiple, para este caso, con
lo mencionado en el párrafo anterior es suficiente.
A continuación, se muestra el procedimiento para realizar estimaciones puntuales, por
intervalos de confianza y por intervalos de predicción. Se harán las estimaciones para
cuando 𝑥 = 8 y 𝑥 = 10.
x0=data.frame(x=c(8,10))
predict(modelo,x0) #Estimación puntual

## 1 2
## 6.279723 9.835625

predict(modelo,x0,interval="confidence",conf.level=.95) #confianza

## fit lwr upr


## 1 6.279723 5.085397 7.474048
## 2 9.835625 9.500405 10.170845

predict(modelo,x0,interval="prediction",conf.level=.95) #predicción

## fit lwr upr


## 1 6.279723 4.959660 7.599786
## 2 9.835625 9.181006 10.490244

Sin embargo, para que lo obtenido hasta ahora tenga valides se deben cumplir algunos
supuestos, a continuación, se muestra como probar los supuestos de; normalidad,
homocedasticidad e independencia.
par(mfrow=c(2,2))
plot(modelo,col="blue")
El supuesto de normalidad se probará mediante la prueba de Sahpiro-wilk disponible en la
librería nortest.
library(nortest)
shapiro.test(modelo$residuals)

##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.95957, p-value = 0.7471

Como el valor p de la prueba es de 0.7471, el supuesto de normalidad se cumple.


Luego, para el supuesto de homocedasticidad.
library(lmtest)
bptest(modelo)

##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 4.3979, df = 1, p-value = 0.03598

Como el valor p de la prueba es de 0.03598, el supuesto de homocedasticidad no se cumple.


Y, por último, para el supuesto de independencia.
library(lmtest)
dwtest(modelo,alternative="two.sided")

##
## Durbin-Watson test
##
## data: modelo
## DW = 1.5688, p-value = 0.4104
## alternative hypothesis: true autocorrelation is not 0

También podría gustarte