En general, las variables utilizadas en el análisis de regresión son de tipo cuantitativo. Sin embargo, algunas veces se tienen variables cualitativas categóricas como variables predictoras en la regresión. Variables como género (masculino, femenino) estado de empleo (empleado, desempleado) o aquellas que admiten un No o Sí. A estas variables se les deben asignar un conjunto de niveles para tener en cuenta el efecto que pueda tener dicha variable sobre la respuesta. Esto se realiza utilizando variables indicadoras o ficticias o dicótomas. Por ejemplo si la variable es el género, se puede utilizar una variable indicadora que tome los valores 0 y 1, así:
\[\begin{equation*} x_{i}= \begin{cases} 1 &\text{si es hombre.}\\ 0 &\text{si es mujer.} \end{cases} \end{equation*}\]
Un modelo de regresión puede tener variables explicatorias solo cuantitativas o solo dicótomas o una combinación de los dos tipos.
El modelo tendría la forma:
\[\begin{equation*} Y_{i}=\beta_{0}+\beta_{0}D_{i} \end{equation*}\]
Donde
\[\begin{equation*} D_{i}= \begin{cases} 1 &\text{si }\\ 0 &\text{si } \end{cases} \end{equation*}\]
Ejemplo. Tomado del libro Econometría de Damodar Gujarati. Página 491.
Y: salario anual de un profesor universitario.
\[\begin{equation*} D_{i}= \begin{cases} 1 &\text{si es un profesor universitario hombre.}\\ 0 &\text{si es un profesor universitario mujer.} \end{cases} \end{equation*}\]
D1<-c(1,0,0,1,0,1,1,0,0,1)
y1<-c(22.0,19.0,18.0,21.7,18.5,21.0,20.5,17.0,17.5,21.2)
grupo <- as.factor(ifelse(D1<1,"Fem.","Masc."))
plot(y1,D1,pch =as.numeric(grupo), col = grupo)
legend("bottomright",legend = c("Fem.", "Masc"),col =1:2,pch = 1:2)
scatterplot(y1~D1|grupo,regLine=TRUE,smooth=FALSE)
mode1<-lm(y1~D1)
summary(mode1)
##
## Call:
## lm(formula = y1 ~ D1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.000 -0.445 -0.040 0.480 1.000
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 18.0000 0.3118 57.735 8.99e-12 ***
## D1 3.2800 0.4409 7.439 7.34e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6971 on 8 degrees of freedom
## Multiple R-squared: 0.8737, Adjusted R-squared: 0.8579
## F-statistic: 55.34 on 1 and 8 DF, p-value: 7.34e-05
anava<-aov(y1~D1)
summary(anava)
## Df Sum Sq Mean Sq F value Pr(>F)
## D1 1 26.896 26.896 55.34 7.34e-05 ***
## Residuals 8 3.888 0.486
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
co<-coefficients(mode1);co
## (Intercept) D1
## 18.00 3.28
a1<-mode1$coefficients[1]
a2<-mode1$coefficients[2]
confint(mode1,level=0.95)
## 2.5 % 97.5 %
## (Intercept) 17.281059 18.718941
## D1 2.263264 4.296736
nuevo<-data.frame(D1=0)
predict.lm(mode1,newdata=nuevo)
## 1
## 18
pre1<-predict(mode1);pre1
## 1 2 3 4 5 6 7 8 9 10
## 21.28 18.00 18.00 21.28 18.00 21.28 21.28 18.00 18.00 21.28
predict.lm(mode1,newdata=nuevo,interval="prediction")
## fit lwr upr
## 1 18 16.23896 19.76104
res1<-resid(mode1);res1
## 1 2 3 4 5
## 7.200000e-01 1.000000e+00 1.665335e-16 4.200000e-01 5.000000e-01
## 6 7 8 9 10
## -2.800000e-01 -7.800000e-01 -1.000000e+00 -5.000000e-01 -8.000000e-02
qqnorm(res1)
qqline(res1)
El modelo tendría la forma:
\[\begin{equation*} Y_{i}=\beta_{0}+\beta_{0}D_{i}+\beta_{2}X_{i} \end{equation*}\]
Donde
\[\begin{equation*} D_{i}= \begin{cases} 1 &\text{si }\\ 0 &\text{si } \end{cases} \end{equation*}\]
Ejemplo. Tomado del libro Econometría de Damodar Gujarati. Página 515.
Y: salario anual de un profesor universitario.
X: años de experiencia docente.
\[\begin{equation*} D_{i}= \begin{cases} 1 &\text{si es un profesor universitario hombre.}\\ 0 &\text{si es un profesor universitario mujer.} \end{cases} \end{equation*}\]
y2<-c(23.0,19.5,24.0,21.0,25.0,22.0,26.5,23.1,25.0,28.0,29.5,26.0,27.5,31.5,29.0)
x2<-c(1,1,2,2,3,3,4,4,5,5,6,6,7,7,8)
D2<-c(1,0,1,0,1,0,1,0,0,1,1,0,0,1,0)
grupo2 <- as.factor(ifelse(D2<1,"Fem.","Masc."))
plot(x2,y2,pch =as.numeric(grupo2), col = grupo2)
legend("bottomright",legend = c("Fem.", "Masc"),col =1:2,pch = 1:2)
scatterplot(y2~x2|grupo2,regLine=TRUE,smooth=FALSE)
mode2<-lm(y2~x2+D2)
summary(mode2)
##
## Call:
## lm(formula = y2 ~ x2 + D2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.41500 -0.17500 -0.04429 0.16857 0.60214
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 17.96929 0.19196 93.61 < 2e-16 ***
## x2 1.37071 0.03565 38.45 6.16e-14 ***
## D2 3.33357 0.15537 21.45 6.13e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2982 on 12 degrees of freedom
## Multiple R-squared: 0.9933, Adjusted R-squared: 0.9922
## F-statistic: 886.6 on 2 and 12 DF, p-value: 9.228e-14
anova<-aov(y2~x2+D2)
summary(anova)
## Df Sum Sq Mean Sq F value Pr(>F)
## x2 1 116.76 116.76 1312.8 1.25e-13 ***
## D2 1 40.94 40.94 460.3 6.13e-11 ***
## Residuals 12 1.07 0.09
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
co2<-coefficients(mode2);co2
## (Intercept) x2 D2
## 17.969286 1.370714 3.333571
b1<-mode2$coefficients[1]
b2<-mode2$coefficients[2]
b3<-mode2$coefficients[3]
confint(mode2,level=0.95)
## 2.5 % 97.5 %
## (Intercept) 17.551051 18.387520
## x2 1.293050 1.448378
## D2 2.995041 3.672102
nuevo2<-data.frame(x2=3,D2=0)
predict.lm(mode2,newdata=nuevo2)
## 1
## 22.08143
pre2<-predict(mode2);pre2
## 1 2 3 4 5 6 7 8
## 22.67357 19.34000 24.04429 20.71071 25.41500 22.08143 26.78571 23.45214
## 9 10 11 12 13 14 15
## 24.82286 28.15643 29.52714 26.19357 27.56429 30.89786 28.93500
predict.lm(mode2,newdata=nuevo2,interval="prediction")
## fit lwr upr
## 1 22.08143 21.38245 22.78041
predict.lm(mode2,newdata=nuevo2,interval="confidence")
## fit lwr upr
## 1 22.08143 21.82385 22.33901
res2<-resid(mode2);res2
## 1 2 3 4 5 6
## 0.32642857 0.16000000 -0.04428571 0.28928571 -0.41500000 -0.08142857
## 7 8 9 10 11 12
## -0.28571429 -0.35214286 0.17714286 -0.15642857 -0.02714286 -0.19357143
## 13 14 15
## -0.06428571 0.60214286 0.06500000
qqnorm(res2)
qqline(res2)
|—|
O.M.F.