En este ejercicio se propone estimar un modelo de regresión lineal en el que se explique el comportamiento de un indicador elaborado para recoger la viabilidad de las empresas de un sector en función de diversos indicadores de valoración de distintos aspectos de la marcha de dichas empresas. Al plantearse un escenario de una muestra relativamente pequeña y variables explicativas con elevada correlación, se realizará una reducción de la dimensión de la matriz de variables explicativas a través del empleo de la técnica de Componentes Principales.
La variable dependiente del estudio (indicador de viabilidad de la empresa) se denomina INVIA. Obviamente es una variable cuantitativa con escala métrica. El indicador se ha construido tomando una de las empresas al azar y dándole valor 100, y, en comparación con esta empresa de referencia, valorando al resto.
Las variables explicativas son también variables construidas del mismo modo. Se ha tomado la misma empresa como referencia y se le ha asignado una puntuación de 100 en cada una de las variables, puntuando el resto en términos relativos a dicha empresa de referencia:
(Datos)
## INVIA INENDEU INMAPRI INDEMAN INVENTA INEXPERT INEMP
## Empresa_01 76.50 104.92 106.20 68.52 68.46 55.12 55.97
## Empresa_02 100.00 100.00 100.00 100.00 100.00 100.00 100.00
## Empresa_03 117.54 100.84 100.14 96.21 95.72 97.94 98.22
## Empresa_04 84.23 98.85 99.60 62.78 62.87 64.56 46.93
## Empresa_05 100.09 101.05 101.61 78.70 78.98 73.61 73.96
## Empresa_06 109.78 101.42 102.22 81.44 81.33 80.13 79.89
## Empresa_07 90.41 96.90 96.63 59.91 60.21 70.10 43.10
## Empresa_08 81.82 110.27 111.60 73.63 73.97 63.16 64.07
## Empresa_09 114.22 101.42 100.24 92.56 91.59 96.09 96.14
## Empresa_10 70.67 100.82 102.34 43.21 43.27 73.93 37.51
## Empresa_11 92.95 90.31 92.11 52.09 53.52 78.37 40.58
## Empresa_12 85.92 93.79 94.60 55.95 55.92 76.30 39.43
## Empresa_13 105.26 100.94 101.10 83.74 83.92 86.38 86.14
## Empresa_14 77.28 102.44 103.07 65.44 65.74 59.71 51.34
## Empresa_15 108.38 100.82 101.49 88.15 86.79 90.82 91.08
## Empresa_16 84.48 92.68 94.67 49.54 51.29 76.80 39.58
## Empresa_17 86.10 95.36 96.80 47.17 47.19 75.90 38.81
## Empresa_18 81.64 107.49 109.10 71.73 71.68 59.12 59.87
## Empresa_19 90.14 105.64 107.43 75.71 76.46 67.65 68.58
## Empresa_20 75.87 98.01 99.67 44.88 45.57 74.82 38.11
summary(Datos$INVIA)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 70.67 81.78 88.12 91.66 101.38 117.54
Como vemos, la variable dependiente INVIA, que es un indicador de viabilidad de la empresa, muestra 20 observaciones del mismo (por tanto, estamos estudiando la viabilidad de 20 empresas), estando todos comprendidos entre 117,54 y 70,67.
Para ello, se ha seleccionado una empresa al azar y se le ha asignado un valor de 100, de modo que las empresas que presentan un valor superior a 100 están por encima de esta observación de referencia en cuanto al indicador viabilidad y las que presentan un valor inferior a este valor de referencia están en peor situación en cuanto al indicador mencionado.
hist(Datos$INVIA,xlab="INVIA",
ylab="Frecuencia",
main = "Indicador de viabilidad de la empresa",
col = "gold",
border="tomato1",
las = 1)
El histograma nos permite tener una visión global y conjunta del estado de las empresas observadas según el indicador de viabilidad. Así, vemos que donde más empresas encontramos es entre los valores 80 y 90 de este indicador. También debemos señalar que observamos como 6 de las 20 empresas observadas se encuentran por encima de 100, que es el valor asignado a nuestra empresa de referencia.
boxplot(Datos,
ylab="Valor del indicador",
main = "Comparación de indicadores",
col = "gold",xlim=c(0.5,7.5),
pars =list(boxwex=0.65),
las = 1)
El gráfico de cajas anterior representa una caja para cada uno de los indicadores estudiados. Se puede ver cómo las medias más elevadas las presentan los indicadores de endeudamiento y de coste de las materias primas, siendo, además, estos 2 indicadores los que menor dispersión de los datos muestran, hecho que parece lógico pues el endeudamiento es aceptable que sea parecido entre las empresas y el coste relativo de materias primas, dado que es un elemento no controlable directamente por las empresas, será parecido para todas.
También vemos como el indicador con menor media es el que mayor dispersión presenta, y es el indicador de la opinión de empresarios. Parece razonable que presente una mayor dispersión debido a las distintas opiniones vertidas sobre cada empresa en comparación con la empresa referencia y, como unas serán consideradas como muy buenas otras como muy malas, también parece lógico que exista una media menor por el efecto de estas últimas. Cabe señalar que este indicador muestra que todos los empresarios creen que la empresa referencia es la mejor en cuanto a viabilidad.
summary(Datos$INENDEU)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 90.31 97.73 100.83 100.20 101.67 110.27
summary(Datos$INMAPRI)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 92.11 98.90 100.67 101.03 102.52 111.60
summary(Datos$INDEMAN)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 43.21 54.98 70.12 69.57 82.02 100.00
summary(Datos$INVENTA)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 43.27 55.32 70.07 69.72 81.98 100.00
summary(Datos$INEXPERT)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 55.12 66.88 75.36 76.03 81.69 100.00
summary(Datos$INEMP)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 37.51 40.33 57.92 62.47 81.45 100.00
Como vemos, las variables explicativas del modelo también son indicadores, entre los que encontramos el indicador de endeudamiento (máximo de 110,27 y mínimo de 90,31), que hace representa el nivel de endeudamiento de cada una de las 20 empresas respecto a la empresa referencia, el indicador del coste relativo en materias primas (máximo de 111,60 y mínimo de 92,11) que indica el mayor o menor coste relativo de cada empresa respecto de la referencia, el indicador de demanda (máximo de 96,21 y mínimo de 43,21) en el que se nos muestra la demanda potencial de cada empresa respecto de la empresa referencia que, al tener asignado un valor de 100, significa que es la empresa con mayor demanda potencial, el indicador de ventas (máximo 95,72 y mínimo de 43,27) que nos señala el nivel relativo de ventas de la empresa en comparación con el nivel de ventas de la empresa tomada como referencia que, nuevamente y en relación con el indicador anterior, vuelve a mostrar el valor más elevado, el indicador de la opinión de expertos (máximo de 97,94 y mínimo de 55,12) que recoge la opinión de un grupo de expertos en economía empresarial sobre su confianza en la viabilidad de la empresa en comparación con la empresa tomada como referencia y, otra vez, la empresa sobre la que más confianza se tiene es la empresa referencia y, por último, el indicador de la opinión de los empresarios (máximo de 98,22 y mínimo de 37,51), siendo la referencia la empresa de la que mejor opinión tienen los empresarios.
regresion<-lm(INVIA~INENDEU+INMAPRI+INDEMAN+INVENTA+INEXPERT+INEMP, data = Datos)
summary(regresion)
##
## Call:
## lm(formula = INVIA ~ INENDEU + INMAPRI + INDEMAN + INVENTA +
## INEXPERT + INEMP, data = Datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.5291 -2.0489 0.6281 3.3162 8.2635
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 268.6941 85.9735 3.125 0.00805 **
## INENDEU 0.6233 2.8216 0.221 0.82859
## INMAPRI -2.4319 2.7192 -0.894 0.38739
## INDEMAN 0.1436 2.9555 0.049 0.96200
## INVENTA -0.5996 2.8283 -0.212 0.83540
## INEXPERT -0.3876 0.3581 -1.082 0.29872
## INEMP 1.0805 0.5285 2.044 0.06171 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.798 on 13 degrees of freedom
## Multiple R-squared: 0.879, Adjusted R-squared: 0.8232
## F-statistic: 15.74 on 6 and 13 DF, p-value: 2.787e-05
En el resultado obtenido de la regresión lineal vemos cómo el coeficiente de determinación lineal corregido es alto (82,32%) y que todas las variables explicativas son no significativas, ya que encontramos valores del estadístico muy próximos a 0 y p-valores muy elevados. Esto puede indicar la existencia de multicolinealidad entre los regresores. Las variables explicativas tienen un comportamiento parecido y comparten sus efectos, dando lugar a parámetros estimados poco significativos. Además, un elevado número de variables explicativas y un número reducido de elementos muestrales o casos (las empresas estudiadas) puede dar lugar a una pérdida de eficiencia en los estimadores como consecuencia de reducidos grados de libertad.
correlaciones <-cor(Datos)
correlaciones
## INVIA INENDEU INMAPRI INDEMAN INVENTA INEXPERT
## INVIA 1.00000000 -0.04015999 -0.1649180 0.7813107 0.7801599 0.7854479
## INENDEU -0.04015999 1.00000000 0.9838886 0.4649428 0.4603084 -0.3099590
## INMAPRI -0.16491800 0.98388863 1.0000000 0.3414156 0.3385095 -0.4144294
## INDEMAN 0.78131070 0.46494279 0.3414156 1.0000000 0.9994593 0.5388292
## INVENTA 0.78015987 0.46030836 0.3385095 0.9994593 1.0000000 0.5365336
## INEXPERT 0.78544791 -0.30995899 -0.4144294 0.5388292 0.5365336 1.0000000
## INEMP 0.82775020 0.41385215 0.2936210 0.9754035 0.9737274 0.6539425
## INEMP
## INVIA 0.8277502
## INENDEU 0.4138522
## INMAPRI 0.2936210
## INDEMAN 0.9754035
## INVENTA 0.9737274
## INEXPERT 0.6539425
## INEMP 1.0000000
Como ya suponíamos por la regresión lineal obtenida, existen correlaciones entre las variables, algunas de ellas muy fuertes como la existente entre INEMP e INVIA o entre INMAPRI e INENDEU o entre INVENTA e INDEMAN, encontrando muchos más casos de intensidad similar en la tabla.
library(corrplot)
corrplot(correlaciones, method = "circle" )
Gráficamente se aprecia incluso en mayor detalle. La presencia de puntos azules oscuros grandes muestran una correlación entre las variables mayor de 0,8 y encontramos gran existencia de este tipo de puntos, siendo anécdotica la no existencia de puntos, que representa que no hay correlación entre esas variables.
library("car")
vif(regresion)
## INENDEU INMAPRI INDEMAN INVENTA INEXPERT INEMP
## 107.34864 100.59524 1519.91409 1330.07552 12.24087 81.21457
Cuando se estudia un modelo lineal, también es posible evaluar la multicolinealidad con el método VIF (siglas en inglés de Factor de Inflación de la Varianza).
Con valores mayores de 1 ya deberíamos dudar de la validez de la regresión, y con valores mayores de 5 debemos descartar este tipo de análisis. Como en nuestro caso el valor más pequeño es el del indicador de la opinión de expertos con un valor de 12,24 y que, incluso se alcanzan valores de más de 1500 en alguno de los casos, se concluye que descartamos este tipo de análisis rotundamente.
Con estas evidencias, se procede a aplicar Componentes Principales a estas variables. La idea es poder sustituir en la regresión estas variables por otras que no estén correlacionadas entre sí, que tengan un poder explicativo del comportamiento de la variable dependiente similar, y que sean menos numerosas.
Datosdep <-Datos[,-1]
modelo.cp <- prcomp (Datosdep, scale = TRUE)
summary (modelo.cp)
## Importance of components%s:
## PC1 PC2 PC3 PC4 PC5 PC6
## Standard deviation 1.922 1.4500 0.42942 0.10410 0.07835 0.01860
## Proportion of Variance 0.616 0.3504 0.03073 0.00181 0.00102 0.00006
## Cumulative Proportion 0.616 0.9664 0.99711 0.99892 0.99994 1.00000
La tabla de las componentes calculadas muestra 3 informaciones correspondientes a las 6 componentes principales obtenidas. La desviación típica es la raíz cuadrada de los autovalores asociados a cada componente. La proporción de la varianza nos dice qué proporción de la varianza de las variables explica cada componente, proporción que se va acumulando en la última fila de la tabla. Cabe señalar que las componentes aparecen ordenadas de más a menos importantes en función de la cantidad de varianza que explican. Así, vemos como con las 2 primeras componentes principales se podría explicar el 96,6% de la varianza de las variables, llegando el valor a ser de un 99,7% si incluimos, además, la tercera componente.
autovalores <- modelo.cp$sdev^2
autovalores
## [1] 3.6958832536 2.1023912287 0.1844046475 0.0108366990 0.0061381535
## [6] 0.0003460177
seleccionados <- sum(autovalores > 1)
seleccionados
## [1] 2
Como vemos numéricamente, con el método de seleccionar aquellas componentes con autovalores mayores a la unidad se seleccionarían las dos primeras componentes, pues estos autovalores asociados son 3,69 y 2,10, respectivamente.
plot(autovalores, main = "Gráfico de Sedimentación",
xlab = "Nº de Autovalor", ylab="Valor", pch = 16, col = "red4", type = "b",
lwd = 2, las = 1)
abline(h = 1, lty = 2, col = "green4")
Ahora gráficamente, podemos observar cómo, efectivamente, los dos valores que quedan por encima de la línea (establecida con un valor constante en el eje Y de 1) son los autovalores asociados a las dos primeras componentes.
datosescalados <-scale(Datosdep)
S <- cov(datosescalados)
auto <- eigen(S)
auto
## eigen() decomposition
## $values
## [1] 3.6958832536 2.1023912287 0.1844046475 0.0108366990 0.0061381535
## [6] 0.0003460177
##
## $vectors
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] -0.3182533 0.5375692 0.27581539 0.4321158 0.57864338 -0.110035450
## [2,] -0.2609102 0.5870900 0.33387104 -0.2719036 -0.62590656 0.100452623
## [3,] -0.5078652 -0.1018088 -0.36024884 0.2701486 -0.07724791 0.723174380
## [4,] -0.5068781 -0.1030613 -0.38197788 0.2182918 -0.29205156 -0.673498654
## [5,] -0.2480058 -0.5658643 0.73154346 0.2491605 -0.14508589 0.002013745
## [6,] -0.5042632 -0.1586051 0.04017258 -0.7460777 0.40137456 -0.034868230
factores <- datosescalados %*% auto$vectors
auto$vectors[,1:2]
## [,1] [,2]
## [1,] -0.3182533 0.5375692
## [2,] -0.2609102 0.5870900
## [3,] -0.5078652 -0.1018088
## [4,] -0.5068781 -0.1030613
## [5,] -0.2480058 -0.5658643
## [6,] -0.5042632 -0.1586051
Las ecuaciones para cada componente principal seleccionada son las siguientes:
PC1= -0,318INENDEU-0,261INMAPRI-0,508INDEMAN-0,507INVENTA-0,248INEXPERT-0,504INEMP
PC2= 0,538INENDEU+0,587INMAPRI-0,102INDEMAN-0,103INVENTA-0,566INEXPERT-0,159INEMP
coeficientes <- modelo.cp$rotation
cargas <- t(coeficientes[, 1:2])*(sqrt(autovalores[1:2]))
cargas
## INENDEU INMAPRI INDEMAN INVENTA INEXPERT INEMP
## PC1 -0.6118319 -0.5015915 -0.9763546 -0.9744569 -0.4767831 -0.9694298
## PC2 -0.7794552 -0.8512585 0.1476189 0.1494351 0.8204820 0.2299714
Puede observarse como en la primera componente (primera fila) las mayores cargas se concentran en los indicadores de demanda, de ventas y de la opinión de los empresarios. Por otra parte, en la segunda componente (segunda fila), las mayores cargas se encuentran en los indicadores de coste de las materias primas, de opinión de expertos y de nivel de endeudamiento.
A la luz de lo obtenido, se podría decir que la primera componente está relacionada con factores de tipo comercial (ventas y demanda) y la segunda componente estaría más relacionada con los elementos financieros de la empresa (endeudamiento y coste de las materias primas).
puntuaciones <- datosescalados %*% coeficientes[, 1:seleccionados]
nuevosdatos <- data.frame(Datos, puntuaciones)
nuevosdatos <-nuevosdatos[, -2:-7]
regresion2 <- lm(INVIA ~ PC1 + PC2, data = nuevosdatos)
summary(regresion2)
##
## Call:
## lm(formula = INVIA ~ PC1 + PC2, data = nuevosdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16.895 -2.195 1.017 3.129 10.690
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 91.6640 1.3074 70.110 < 2e-16 ***
## PC1 -5.0313 0.6977 -7.211 1.46e-06 ***
## PC2 5.6014 0.9251 6.055 1.29e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.847 on 17 degrees of freedom
## Multiple R-squared: 0.8391, Adjusted R-squared: 0.8202
## F-statistic: 44.33 on 2 and 17 DF, p-value: 1.802e-07
En primer lugar, puede comprobarse cómo el valor del coeficiente de determinación lineal corregido se mantiene estable en un 82%. También se observa cómo los parámetros correspondientes a las dos variables explicativas son significativas, ya que encontramos p-valores pequeños. El efecto de PC1 (que podemos llamar “factores comerciales”) sobre el indicador de viabilidad de la empresa es negativo, lo que se traduce en que a mayor número de ventas y demanda, menor es el indicador de viabilidad. Por otro lado, el efecto de PC2 (que se puede denominar “factores financieros”) sobre el indicador de viabilidad es positivo, lo que se traduce en que a mayor nivel de endeudamiento y coste de materias primas mayor es el indicador de viabilidad, teniendo aproximadamente la misma intensidad los dos tipos de factores.
Por último, puede comprobarse como la correlación entre las componentes principales, que en esta regresión lineal son las variables explicativas, es nula, ya que son ambas significativas (por tener asociadas un p-valor muy pequeño) y porque ambos estadísticos se encuentran muy alejados de 0.
| variable | valor |
|---|---|
| INENDEU | 95 |
| INMAPRI | 110 |
| INDEMAN | 105 |
| INVENTA | 95 |
| INEXPERT | 115 |
| INEMP | 115 |
y<- c(95,110,105,95,115,115)
Datospre <-rbind(Datosdep,y)
datosescalados2 <-scale(Datospre)
modelo.cp2 <- prcomp (Datospre, scale = TRUE)
coeficientes2 <- modelo.cp2$rotation
puntuaciones2 <- datosescalados2 %*% coeficientes2[, 1:seleccionados]
nuevosdatos2 <- data.frame(Datospre, puntuaciones2)
nuevosdatos2<- nuevosdatos2[21,7:8]
row.names(nuevosdatos2) <- "empresa_21"
predict.lm(regresion2,nuevosdatos2)
## empresa_21
## 102.0293
Como vemos, el resultado obtenido de la estimación para el indicador de viabilidad de la empresa presenta un valor de 102,03, lo que parece un valor racional y lógico. Este valor muestra que una empresa con los valores dados por el ejercicio, tendría una mayor indice de viabilidad que la empresa de referencia.