La regresión logística multinomial constituye una extensión de la regresión logística binaria utilizada cuando la variable dependiente presenta más de dos categorías nominales.
Esta técnica permite modelar la probabilidad de pertenencia a cada categoría de respuesta a partir de un conjunto de variables explicativas, las cuales pueden ser tanto cualitativas como cuantitativas. El enfoque del modelo se basa en comparar cada categoría de interés respecto a una categoría tomada como referencia, permitiendo analizar cómo distintos factores influyen diferencialmente sobre cada resultado posible.
Esta guía desarrolla la aplicación del modelo de regresión logística multinomial para estudiar la capacidad innovadora de las empresas, tomando como referencia un estudio aplicado a pymes paraguayas, publicado en el artículo Capacidad innovadora de las pymes paraguayas.
El problema estadístico se plantea a partir de una variable dependiente categórica con más de dos resultados posibles: empresas que no innovaron, empresas que realizaron innovaciones incrementales y empresas que realizaron innovaciones sustanciales.
Al finalizar esta guía, serás capaz de:
La innovación en pequeñas y medianas empresas no constituye un fenómeno uniforme. La literatura aplicada plantea que los factores que explican la innovación pueden variar según el grado de novedad de las mejoras introducidas. En este sentido, una empresa puede no haber innovado, puede haber incorporado mejoras incrementales o puede haber introducido innovaciones de mayor novedad o sustanciales. La regresión multinomial resulta especialmente útil para estudiar fenómenos complejos y multidimensionales, como los distintos grados de capacidad innovadora de las empresas, posibilitando identificar características personales, organizacionales y del entorno que incrementan o reducen la probabilidad relativa de desarrollar
Desde una perspectiva aplicada, este enfoque permite responder preguntas como:
En esta guía se utiliza como ejemplo la variable dependiente
Grad_Prod_Y, que clasifica el grado de innovación de
producto/servicio de la empresa en tres categorías:
No innovoInn_IncrementalInn_SustancialLa categoría No innovo será utilizada como categoría de
referencia.
Sea \(Y_i\) una variable dependiente categórica con \(J\) categorías mutuamente excluyentes. En este caso:
\[ Y_i \in \{1,2,3\} \]
donde:
\[ 1 = \text{No innovó}, \quad 2 = \text{Innovación incremental}, \quad 3 = \text{Innovación sustancial} \]
El modelo multinomial permite estimar la probabilidad de que la empresa \(i\) pertenezca a cada categoría de innovación, condicionada a un conjunto de variables explicativas \(X_i\).
En la regresión multinomial se selecciona una categoría como base de comparación. En esta guía se define:
\[ Y_i = 1 = \text{No innovó} \]
como categoría de referencia. Por tanto, el modelo estima dos ecuaciones:
\[ \log\left(\frac{P(Y_i=2\mid X_i)}{P(Y_i=1\mid X_i)}\right) = \alpha_2 + X_i'\beta_2 \]
\[ \log\left(\frac{P(Y_i=3\mid X_i)}{P(Y_i=1\mid X_i)}\right) = \alpha_3 + X_i'\beta_3 \]
La primera ecuación compara la probabilidad relativa de realizar una innovación incremental frente a no innovar. La segunda compara la probabilidad relativa de realizar una innovación sustancial frente a no innovar.
Definimos los predictores lineales:
\[ \eta_{2i} = \alpha_2 + X_i'\beta_2 \]
\[ \eta_{3i} = \alpha_3 + X_i'\beta_3 \]
Entonces, las probabilidades estimadas se obtienen como:
\[ P(Y_i=1\mid X_i) = \frac{1}{1 + \exp(\eta_{2i}) + \exp(\eta_{3i})} \]
\[ P(Y_i=2\mid X_i) = \frac{\exp(\eta_{2i})}{1 + \exp(\eta_{2i}) + \exp(\eta_{3i})} \]
\[ P(Y_i=3\mid X_i) = \frac{\exp(\eta_{3i})}{1 + \exp(\eta_{2i}) + \exp(\eta_{3i})} \]
Estas tres probabilidades siempre cumplen que:
\[ P(Y_i=1\mid X_i)+P(Y_i=2\mid X_i)+P(Y_i=3\mid X_i)=1 \]
El modelo multinomial parte de una comparación entre cada categoría de respuesta y una categoría de referencia. Supongamos que la categoría de referencia es \(Y=0\).
Para cualquier categoría \(j \neq 0\), el modelo plantea:
\[ \log\left(\frac{\pi_j(\mathbf{x})}{\pi_0(\mathbf{x})}\right)=\eta_j \]
donde:
\[ \eta_j=\beta_{0j}+\beta_{1j}x_1+\beta_{2j}x_2+\cdots+\beta_{kj}x_k \]
El primer paso consiste en eliminar el logaritmo aplicando la función exponencial a ambos lados:
\[ \frac{\pi_j(\mathbf{x})}{\pi_0(\mathbf{x})}=e^{\eta_j} \]
Luego, despejamos la probabilidad de la categoría \(j\):
\[ \pi_j(\mathbf{x})=\pi_0(\mathbf{x})e^{\eta_j} \]
Esto indica que la probabilidad de cada categoría no base puede expresarse como una proporción de la probabilidad de la categoría de referencia.
Como todas las probabilidades deben sumar 1, se cumple que:
\[ \pi_0(\mathbf{x})+\pi_1(\mathbf{x})+\pi_2(\mathbf{x})+\cdots+\pi_{J-1}(\mathbf{x})=1 \]
Reemplazando cada \(\pi_j(\mathbf{x})\) por \(\pi_0(\mathbf{x})e^{\eta_j}\), se obtiene:
\[ \pi_0(\mathbf{x})+\pi_0(\mathbf{x})e^{\eta_1} +\pi_0(\mathbf{x})e^{\eta_2} +\cdots+ \pi_0(\mathbf{x})e^{\eta_{J-1}}=1 \]
Sacando factor común \(\pi_0(\mathbf{x})\):
\[ \pi_0(\mathbf{x}) \left[ 1+e^{\eta_1}+e^{\eta_2}+\cdots+e^{\eta_{J-1}} \right]=1 \]
Por tanto, la probabilidad de la categoría de referencia es:
\[ \pi_0(\mathbf{x})= \frac{1} {1+\sum_{m=1}^{J-1}e^{\eta_m}} \]
Finalmente, como:
\[ \pi_j(\mathbf{x})=\pi_0(\mathbf{x})e^{\eta_j} \]
se reemplaza \(\pi_0(\mathbf{x})\) por su expresión anterior:
\[ \pi_j(\mathbf{x})= \frac{e^{\eta_j}} {1+\sum_{m=1}^{J-1}e^{\eta_m}} \]
Esta es la ecuación general para calcular la probabilidad estimada de cualquier categoría \(j\neq 0\).
Para la categoría de referencia, la ecuación queda como:
\[ \pi_0(\mathbf{x})= \frac{1} {1+\sum_{m=1}^{J-1}e^{\eta_m}} \]
En el caso aplicado a la innovación empresarial, si la categoría de referencia es “No innovó”, las probabilidades serían:
\[ P(Y=\text{No innovó})= \frac{1} {1+e^{\eta_1}+e^{\eta_2}} \]
\[ P(Y=\text{Innovación incremental})= \frac{e^{\eta_1}} {1+e^{\eta_1}+e^{\eta_2}} \]
\[ P(Y=\text{Innovación sustancial})= \frac{e^{\eta_2}} {1+e^{\eta_1}+e^{\eta_2}} \]
donde:
\[ \eta_1 \]
representa la ecuación lineal para “Innovación incremental” frente a “No innovó”, y:
\[ \eta_2 \]
representa la ecuación lineal para “Innovación sustancial” frente a “No innovó”.
# install.packages("nnet")
# install.packages("dplyr")
# install.packages("knitr")
# install.packages("kableExtra")
library(nnet)
library(dplyr)
library(knitr)
base1 <- read.table("base1.txt", header = TRUE)
dim(base1)
#> [1] 365 24
str(base1)
#> 'data.frame': 365 obs. of 24 variables:
#> $ Grad_Proc_Y: chr "No innovo" "Inn_Incremental" "No innovo" "No innovo" ...
#> $ Grad_Prod_Y: chr "No innovo" "No innovo" "Inn_Incremental" "No innovo" ...
#> $ Sexo : chr "Hombre" "Hombre" "Hombre" "Hombre" ...
#> $ Terciario : chr "Si" "Si" "Si" "No" ...
#> $ P2601 : int 1 1 1 1 1 5 1 5 3 1 ...
#> $ P2604 : int 3 5 1 1 3 1 3 1 1 3 ...
#> $ P2603 : int 3 1 1 1 3 1 1 5 3 3 ...
#> $ P2605 : int 5 5 1 5 2 5 2 2 4 2 ...
#> $ P2606 : int 2 1 1 1 3 2 3 2 2 2 ...
#> $ P30 : chr "Si" "Si" "Si" "Si" ...
#> $ P3700C : int 25 22 20 140 30 10 20 25 20 30 ...
#> $ RECRAMA : chr "Servicios no Financiero" "Industria" "Industria" "Industria" ...
#> $ P3701 : int 5 2 5 2 2 5 5 2 2 1 ...
#> $ P38_Formal : chr "Si" "No" "Si" "No" ...
#> $ P4201 : chr "Si" "Si" "Si" "Si" ...
#> $ P4202 : chr "Si" "Si" "Si" "Si" ...
#> $ P4203 : chr "Si" "No" "Si" "Si" ...
#> $ P60_01 : int 1 5 5 1 5 4 1 2 2 3 ...
#> $ P60_02 : int 5 5 3 5 2 1 1 2 2 3 ...
#> $ P60_03 : int 5 3 5 5 2 3 5 5 4 5 ...
#> $ P60_04 : int 1 5 5 1 2 1 2 3 5 3 ...
#> $ P60_05 : int 4 1 5 3 2 3 3 3 4 5 ...
#> $ P60_06 : int 1 3 2 1 2 2 4 1 2 3 ...
#> $ P60_07 : int 3 3 3 3 2 5 1 3 5 3 ...
Antes de ajustar el modelo, se recomienda definir correctamente las
variables categóricas. En particular, se fija la categoría
No innovo como referencia de la variable dependiente.
base1 <- base1 %>%
mutate(
Grad_Prod_Y = factor(Grad_Prod_Y,
levels = c("No innovo", "Inn_Incremental", "Inn_Sustancial")),
Sexo = factor(Sexo),
Terciario = factor(Terciario),
P30 = factor(P30),
RECRAMA = factor(RECRAMA),
P38_Formal = factor(P38_Formal),
P4201 = factor(P4201),
P4202 = factor(P4202),
P4203 = factor(P4203)
)
summary(base1$Grad_Prod_Y)
#> No innovo Inn_Incremental Inn_Sustancial
#> 128 162 75
tabla_innovacion <- base1 %>%
count(Grad_Prod_Y) %>%
mutate(porcentaje = 100 * n / sum(n))
kable(tabla_innovacion,
digits = 2,
caption = "Distribución de empresas según grado de innovación de producto/servicio")
| Grad_Prod_Y | n | porcentaje |
|---|---|---|
| No innovo | 128 | 35,07 |
| Inn_Incremental | 162 | 44,38 |
| Inn_Sustancial | 75 | 20,55 |
El modelo multinomial utiliza como variable dependiente el grado de innovación de producto/servicio de la empresa. Las variables explicativas se organizan en tres dimensiones analíticas: características personales del decisor, características de la empresa y características del entorno. Esta organización permite vincular el análisis estadístico con la interpretación del fenómeno de innovación empresarial.
| Nombre | Variable | Descripcion | Categorias |
|---|---|---|---|
| Grado de innovación | Grad_Prod_Y | Clasifica a la empresa según el grado de novedad de la innovación de producto o servicio introducida. | No innovo; Inn_Incremental; Inn_Sustancial |
La categoría No innovo se utiliza como categoría de
referencia. En consecuencia, el modelo estima dos comparaciones
principales: Inn_Incremental frente a
No innovo e Inn_Sustancial frente a
No innovo.
| Dimension | Nombre | Variable | Tipo | Categorias_o_medicion |
|---|---|---|---|---|
| Características personales | Sexo del decisor | Sexo | Categórica | Hombre; Mujer |
| Características personales | Nivel educativo terciario | Terciario | Categórica | Si; No |
| Características personales | Motivación intrínseca | P2601 | Ordinal / escala | Escala de percepción/motivación |
| Características personales | Motivación extrínseca | P2604 | Ordinal / escala | Escala de percepción/motivación |
| Características personales | Motivación por oportunidad | P2603 | Ordinal / escala | Escala de percepción/motivación |
| Características personales | Motivación por necesidad | P2605 | Ordinal / escala | Escala de percepción/motivación |
| Características personales | Formación específica empresarial | P30 | Categórica | Si; No |
| Características de la empresa | Tamaño de la empresa | P3700C | Cuantitativa | Cantidad de personas ocupadas en la empresa |
| Características de la empresa | Sector económico | RECRAMA | Categórica | Comercio; Industria; Servicios no Financiero |
| Características de la empresa | Riesgo empresarial | P3701 | Ordinal / escala | Escala de percepción |
| Características de la empresa | Cooperación formal | P38_Formal | Categórica | Si; No |
| Características de la empresa | Planificación | P4201 | Categórica | Si; No |
| Características de la empresa | Control | P4202 | Categórica | Si; No |
| Características de la empresa | Identificación de mercado | P4203 | Categórica | Si; No |
| Características de la empresa | Formalidad de la empresa | P2606 | Ordinal / escala | Escala de percepción |
| Características del entorno | Competencia informal | P60_01 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Corrupción | P60_02 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Impuestos | P60_03 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Dificultad para encontrar trabajadores cualificados | P60_04 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Obstáculos administrativos y regulatorios | P60_05 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Dificultad de financiación externa | P60_06 | Ordinal / escala | Escala de percepción del entorno |
| Características del entorno | Infraestructura física y tecnológica | P60_07 | Ordinal / escala | Escala de percepción del entorno |
En el ajuste del modelo se incorpora explícitamente la variable
P3700C, correspondiente al tamaño de la
empresa, medida como cantidad de personas ocupadas. Esta
variable permite evaluar si el tamaño organizacional se asocia con
cambios en la probabilidad relativa de realizar innovación incremental o
sustancial frente a no innovar.
La especificación general del modelo es:
\[ \text{Grado de innovación} = f(\text{características personales},\ \text{características empresariales},\ \text{factores del entorno}) \]
modelo_prod <- multinom(
Grad_Prod_Y ~ Sexo + Terciario + P2601 + P2604 + P2603 + P2605 + P2606 +
P30 + P3700C + RECRAMA + P3701 + P38_Formal + P4201 + P4202 + P4203 +
P60_01 + P60_02 + P60_03 + P60_04 + P60_05 + P60_06 + P60_07,
data = base1,
trace = FALSE
)
summary(modelo_prod)
#> Call:
#> multinom(formula = Grad_Prod_Y ~ Sexo + Terciario + P2601 + P2604 +
#> P2603 + P2605 + P2606 + P30 + P3700C + RECRAMA + P3701 +
#> P38_Formal + P4201 + P4202 + P4203 + P60_01 + P60_02 + P60_03 +
#> P60_04 + P60_05 + P60_06 + P60_07, data = base1, trace = FALSE)
#>
#> Coefficients:
#> (Intercept) SexoMujer TerciarioSi P2601 P2604
#> Inn_Incremental -3,239790 -0,4813028 -0,01164724 -0,006798263 -0,07535661
#> Inn_Sustancial -2,679868 -0,1460288 0,18833655 -0,153810895 -0,09564207
#> P2603 P2605 P2606 P30Si P3700C
#> Inn_Incremental 0,2505823 -0,02022193 0,04354005 0,3099136 0,002473018
#> Inn_Sustancial 0,2250799 0,23564848 -0,13126369 0,5184663 0,001246720
#> RECRAMAIndustria RECRAMAServicios no Financiero P3701
#> Inn_Incremental 0,3107908 -0,2537258 -0,2081407
#> Inn_Sustancial -0,3843033 -0,7236743 -0,1995087
#> P38_FormalSi P4201Si P4202Si P4203Si P60_01
#> Inn_Incremental 0,5493441 1,2691022 -1,1998027 1,2395791 0,2545143
#> Inn_Sustancial 1,0754343 0,8619518 -0,9717289 0,8742829 0,2902812
#> P60_02 P60_03 P60_04 P60_05 P60_06
#> Inn_Incremental -0,003138495 0,13800864 0,06884343 0,25775263 -0,1139884
#> Inn_Sustancial 0,048646397 -0,07200622 0,13790203 0,07518565 -0,1639093
#> P60_07
#> Inn_Incremental 0,03002041
#> Inn_Sustancial 0,05264150
#>
#> Std. Errors:
#> (Intercept) SexoMujer TerciarioSi P2601 P2604 P2603
#> Inn_Incremental 0,9946345 0,2878794 0,3280150 0,1192847 0,1018932 0,1069736
#> Inn_Sustancial 1,1824181 0,3402401 0,4148752 0,1431821 0,1208227 0,1242569
#> P2605 P2606 P30Si P3700C RECRAMAIndustria
#> Inn_Incremental 0,1012928 0,1016446 0,2822449 0,006088975 0,3331556
#> Inn_Sustancial 0,1178427 0,1201823 0,3384646 0,007062014 0,3821743
#> RECRAMAServicios no Financiero P3701 P38_FormalSi
#> Inn_Incremental 0,3933532 0,08815654 0,3121051
#> Inn_Sustancial 0,4672799 0,10645295 0,3871846
#> P4201Si P4202Si P4203Si P60_01 P60_02 P60_03
#> Inn_Incremental 0,5062037 0,6748112 0,4964923 0,1039260 0,1112632 0,1188401
#> Inn_Sustancial 0,6319583 0,8194164 0,5944281 0,1227009 0,1350686 0,1444062
#> P60_04 P60_05 P60_06 P60_07
#> Inn_Incremental 0,09451434 0,1281334 0,1423890 0,1514863
#> Inn_Sustancial 0,11500536 0,1503578 0,1672411 0,1846528
#>
#> Residual Deviance: 667,9903
#> AIC: 763,9903
Los coeficientes estimados por multinom() se presentan
en términos de logaritmos de razones de odds. Para
obtener los valores p se calcula el estadístico tipo Wald:
\[ z = \frac{\hat{\beta}}{SE(\hat{\beta})} \]
Luego:
\[ p\text{-valor} = 2 \left[1 - \Phi(|z|)\right] \]
resumen <- summary(modelo_prod)
coeficientes <- resumen$coefficients
errores <- resumen$standard.errors
z_valores <- coeficientes / errores
p_valores <- 2 * (1 - pnorm(abs(z_valores)))
odds_ratio <- exp(coeficientes)
resultados_modelo <- data.frame(
categoria = rep(rownames(coeficientes), each = ncol(coeficientes)),
variable = rep(colnames(coeficientes), times = nrow(coeficientes)),
coeficiente = as.vector(t(coeficientes)),
error_estandar = as.vector(t(errores)),
z = as.vector(t(z_valores)),
p_valor = as.vector(t(p_valores)),
odds_ratio = as.vector(t(odds_ratio))
)
kable(resultados_modelo,
digits = 4,
caption = "Resultados del modelo de regresión logística multinomial")
| categoria | variable | coeficiente | error_estandar | z | p_valor | odds_ratio |
|---|---|---|---|---|---|---|
| Inn_Incremental | (Intercept) | -3,2398 | 0,9946 | -3,2573 | 0,0011 | 0,0392 |
| Inn_Incremental | SexoMujer | -0,4813 | 0,2879 | -1,6719 | 0,0945 | 0,6180 |
| Inn_Incremental | TerciarioSi | -0,0116 | 0,3280 | -0,0355 | 0,9717 | 0,9884 |
| Inn_Incremental | P2601 | -0,0068 | 0,1193 | -0,0570 | 0,9546 | 0,9932 |
| Inn_Incremental | P2604 | -0,0754 | 0,1019 | -0,7396 | 0,4596 | 0,9274 |
| Inn_Incremental | P2603 | 0,2506 | 0,1070 | 2,3425 | 0,0192 | 1,2848 |
| Inn_Incremental | P2605 | -0,0202 | 0,1013 | -0,1996 | 0,8418 | 0,9800 |
| Inn_Incremental | P2606 | 0,0435 | 0,1016 | 0,4284 | 0,6684 | 1,0445 |
| Inn_Incremental | P30Si | 0,3099 | 0,2822 | 1,0980 | 0,2722 | 1,3633 |
| Inn_Incremental | P3700C | 0,0025 | 0,0061 | 0,4061 | 0,6846 | 1,0025 |
| Inn_Incremental | RECRAMAIndustria | 0,3108 | 0,3332 | 0,9329 | 0,3509 | 1,3645 |
| Inn_Incremental | RECRAMAServicios no Financiero | -0,2537 | 0,3934 | -0,6450 | 0,5189 | 0,7759 |
| Inn_Incremental | P3701 | -0,2081 | 0,0882 | -2,3610 | 0,0182 | 0,8121 |
| Inn_Incremental | P38_FormalSi | 0,5493 | 0,3121 | 1,7601 | 0,0784 | 1,7321 |
| Inn_Incremental | P4201Si | 1,2691 | 0,5062 | 2,5071 | 0,0122 | 3,5577 |
| Inn_Incremental | P4202Si | -1,1998 | 0,6748 | -1,7780 | 0,0754 | 0,3013 |
| Inn_Incremental | P4203Si | 1,2396 | 0,4965 | 2,4967 | 0,0125 | 3,4542 |
| Inn_Incremental | P60_01 | 0,2545 | 0,1039 | 2,4490 | 0,0143 | 1,2898 |
| Inn_Incremental | P60_02 | -0,0031 | 0,1113 | -0,0282 | 0,9775 | 0,9969 |
| Inn_Incremental | P60_03 | 0,1380 | 0,1188 | 1,1613 | 0,2455 | 1,1480 |
| Inn_Incremental | P60_04 | 0,0688 | 0,0945 | 0,7284 | 0,4664 | 1,0713 |
| Inn_Incremental | P60_05 | 0,2578 | 0,1281 | 2,0116 | 0,0443 | 1,2940 |
| Inn_Incremental | P60_06 | -0,1140 | 0,1424 | -0,8005 | 0,4234 | 0,8923 |
| Inn_Incremental | P60_07 | 0,0300 | 0,1515 | 0,1982 | 0,8429 | 1,0305 |
| Inn_Sustancial | (Intercept) | -2,6799 | 1,1824 | -2,2664 | 0,0234 | 0,0686 |
| Inn_Sustancial | SexoMujer | -0,1460 | 0,3402 | -0,4292 | 0,6678 | 0,8641 |
| Inn_Sustancial | TerciarioSi | 0,1883 | 0,4149 | 0,4540 | 0,6499 | 1,2072 |
| Inn_Sustancial | P2601 | -0,1538 | 0,1432 | -1,0742 | 0,2827 | 0,8574 |
| Inn_Sustancial | P2604 | -0,0956 | 0,1208 | -0,7916 | 0,4286 | 0,9088 |
| Inn_Sustancial | P2603 | 0,2251 | 0,1243 | 1,8114 | 0,0701 | 1,2524 |
| Inn_Sustancial | P2605 | 0,2356 | 0,1178 | 1,9997 | 0,0455 | 1,2657 |
| Inn_Sustancial | P2606 | -0,1313 | 0,1202 | -1,0922 | 0,2747 | 0,8770 |
| Inn_Sustancial | P30Si | 0,5185 | 0,3385 | 1,5318 | 0,1256 | 1,6794 |
| Inn_Sustancial | P3700C | 0,0012 | 0,0071 | 0,1765 | 0,8599 | 1,0012 |
| Inn_Sustancial | RECRAMAIndustria | -0,3843 | 0,3822 | -1,0056 | 0,3146 | 0,6809 |
| Inn_Sustancial | RECRAMAServicios no Financiero | -0,7237 | 0,4673 | -1,5487 | 0,1215 | 0,4850 |
| Inn_Sustancial | P3701 | -0,1995 | 0,1065 | -1,8741 | 0,0609 | 0,8191 |
| Inn_Sustancial | P38_FormalSi | 1,0754 | 0,3872 | 2,7776 | 0,0055 | 2,9313 |
| Inn_Sustancial | P4201Si | 0,8620 | 0,6320 | 1,3639 | 0,1726 | 2,3678 |
| Inn_Sustancial | P4202Si | -0,9717 | 0,8194 | -1,1859 | 0,2357 | 0,3784 |
| Inn_Sustancial | P4203Si | 0,8743 | 0,5944 | 1,4708 | 0,1413 | 2,3972 |
| Inn_Sustancial | P60_01 | 0,2903 | 0,1227 | 2,3658 | 0,0180 | 1,3368 |
| Inn_Sustancial | P60_02 | 0,0486 | 0,1351 | 0,3602 | 0,7187 | 1,0498 |
| Inn_Sustancial | P60_03 | -0,0720 | 0,1444 | -0,4986 | 0,6180 | 0,9305 |
| Inn_Sustancial | P60_04 | 0,1379 | 0,1150 | 1,1991 | 0,2305 | 1,1479 |
| Inn_Sustancial | P60_05 | 0,0752 | 0,1504 | 0,5000 | 0,6170 | 1,0781 |
| Inn_Sustancial | P60_06 | -0,1639 | 0,1672 | -0,9801 | 0,3270 | 0,8488 |
| Inn_Sustancial | P60_07 | 0,0526 | 0,1847 | 0,2851 | 0,7756 | 1,0541 |
En el modelo de regresión logística multinomial, la interpretación de los parámetros se realiza siempre en relación con una categoría de referencia. En este caso, la categoría base es “No innovó”. Por tanto, cada coeficiente indica la dirección del efecto de una variable explicativa sobre la probabilidad relativa de pertenecer a una categoría de innovación respecto a no innovar.
El signo del coeficiente permite identificar la orientación del efecto:
Es importante señalar que esta lectura basada solo en el signo permite conocer la dirección del efecto, pero no su intensidad.
Ejemplo para una variable cualitativa
En el modelo ajustado, la variable Sexo_Mujer presenta un coeficiente negativo para la comparación Innovación incremental vs. No innovación.
Esto significa que, manteniendo constantes las demás variables del modelo, las empresas dirigidas por mujeres presentan una menor probabilidad relativa de introducir innovaciones incrementales frente a no innovar, en comparación con las empresas dirigidas por hombres.
La interpretación se formula de esta manera porque la categoría de referencia de la variable sexo es Hombre, y la categoría de referencia de la variable dependiente es No innovó.
Ejemplo para una variable cuantitativa
En el modelo ajustado, la variable Tamaño de la empresa presenta un coeficiente positivo para la comparación Innovación incremental vs. No innovación.
Esto indica que, manteniendo constantes las demás variables del modelo, a medida que aumenta el tamaño de la empresa, medido por la cantidad de trabajadores, aumenta la probabilidad relativa de introducir innovaciones incrementales frente a no innovar.
Sin embargo, dado que esta interpretación se basa únicamente en el signo del coeficiente, solo permite concluir la orientación del efecto. Para conocer la magnitud del cambio sería necesario calcular razones de odds, probabilidades predichas o efectos marginales.
Para una variable explicativa \(X_k\), el coeficiente \(\beta_{jk}\) indica el cambio esperado en el logaritmo de la razón de probabilidades de pertenecer a la categoría \(j\) frente a la categoría de referencia, ante un aumento unitario en \(X_k\), manteniendo constantes las demás variables.
Por ejemplo, si el coeficiente asociado a SexoMujer en
la ecuación Inn_Incremental es negativo, entonces:
\[ \log\left(\frac{P(\text{Inn Incremental})}{P(\text{No innovó})}\right) \]
disminuye para empresas dirigidas por mujeres respecto a empresas dirigidas por hombres, manteniendo constantes las demás variables.
La interpretación suele ser más directa si se transforma el coeficiente mediante la exponencial:
\[ OR = \exp(\hat{\beta}) \]
Por ejemplo, si:
\[ \hat{\beta}_{\text{SexoMujer, Inn Incremental}} = -0,48 \]
entonces:
\[ OR = \exp(-0,48) \approx 0,62 \]
Esto indicaría que, manteniendo constantes las demás variables, las empresas dirigidas por mujeres presentan una razón de odds aproximadamente 38% menor de realizar innovación incremental frente a no innovar, en comparación con las empresas dirigidas por hombres.
El test global compara el modelo completo contra un modelo nulo que contiene únicamente interceptos.
\[ H_0: \beta_1 = \beta_2 = \cdots = \beta_k = 0 \]
El conjunto de variables explicativas no mejora el ajuste del modelo frente al modelo nulo.
\[ H_1: \text{al menos un } \beta_k \neq 0 \]
Al menos una variable explicativa contribuye significativamente a explicar el grado de innovación.
modelo_nulo <- multinom(Grad_Prod_Y ~ 1, data = base1, trace = FALSE)
anova(modelo_nulo, modelo_prod)
#> Model
#> 1 1
#> 2 Sexo + Terciario + P2601 + P2604 + P2603 + P2605 + P2606 + P30 + P3700C + RECRAMA + P3701 + P38_Formal + P4201 + P4202 + P4203 + P60_01 + P60_02 + P60_03 + P60_04 + P60_05 + P60_06 + P60_07
#> Resid. df Resid. Dev Test Df LR stat. Pr(Chi)
#> 1 728 768,8009 NA NA NA
#> 2 682 667,9903 1 vs 2 46 100,8106 0,000005643405
También puede calcularse manualmente el estadístico de razón de verosimilitud:
\[ LR = -2(LL_0 - LL_1) \]
LL0 <- as.numeric(logLik(modelo_nulo))
LL1 <- as.numeric(logLik(modelo_prod))
LR <- -2 * (LL0 - LL1)
gl <- attr(logLik(modelo_prod), "df") - attr(logLik(modelo_nulo), "df")
p_global <- pchisq(LR, df = gl, lower.tail = FALSE)
test_global <- data.frame(
logLik_nulo = LL0,
logLik_modelo = LL1,
LR = LR,
gl = gl,
p_valor = p_global
)
kable(test_global,
digits = 4,
caption = "Test global de razón de verosimilitud")
| logLik_nulo | logLik_modelo | LR | gl | p_valor |
|---|---|---|---|---|
| -384,4004 | -333,9952 | 100,8106 | 46 | 0 |
El test individual evalúa si cada coeficiente estimado es estadísticamente distinto de cero.
\[ H_0: \beta_{jk} = 0 \]
\[ H_1: \beta_{jk} \neq 0 \]
Si el valor p es menor al nivel de significancia seleccionado, se rechaza la hipótesis nula y se concluye que la variable presenta evidencia estadística de asociación con la categoría analizada frente a la categoría de referencia.
resultados_modelo %>%
mutate(significativo_5 = ifelse(p_valor < 0.05, "Sí", "No")) %>%
filter(p_valor < 0.10) %>%
arrange(categoria, p_valor) %>%
kable(digits = 4,
caption = "Parámetros con evidencia estadística al 10%")
| categoria | variable | coeficiente | error_estandar | z | p_valor | odds_ratio | significativo_5 |
|---|---|---|---|---|---|---|---|
| Inn_Incremental | (Intercept) | -3,2398 | 0,9946 | -3,2573 | 0,0011 | 0,0392 | Sí |
| Inn_Incremental | P4201Si | 1,2691 | 0,5062 | 2,5071 | 0,0122 | 3,5577 | Sí |
| Inn_Incremental | P4203Si | 1,2396 | 0,4965 | 2,4967 | 0,0125 | 3,4542 | Sí |
| Inn_Incremental | P60_01 | 0,2545 | 0,1039 | 2,4490 | 0,0143 | 1,2898 | Sí |
| Inn_Incremental | P3701 | -0,2081 | 0,0882 | -2,3610 | 0,0182 | 0,8121 | Sí |
| Inn_Incremental | P2603 | 0,2506 | 0,1070 | 2,3425 | 0,0192 | 1,2848 | Sí |
| Inn_Incremental | P60_05 | 0,2578 | 0,1281 | 2,0116 | 0,0443 | 1,2940 | Sí |
| Inn_Incremental | P4202Si | -1,1998 | 0,6748 | -1,7780 | 0,0754 | 0,3013 | No |
| Inn_Incremental | P38_FormalSi | 0,5493 | 0,3121 | 1,7601 | 0,0784 | 1,7321 | No |
| Inn_Incremental | SexoMujer | -0,4813 | 0,2879 | -1,6719 | 0,0945 | 0,6180 | No |
| Inn_Sustancial | P38_FormalSi | 1,0754 | 0,3872 | 2,7776 | 0,0055 | 2,9313 | Sí |
| Inn_Sustancial | P60_01 | 0,2903 | 0,1227 | 2,3658 | 0,0180 | 1,3368 | Sí |
| Inn_Sustancial | (Intercept) | -2,6799 | 1,1824 | -2,2664 | 0,0234 | 0,0686 | Sí |
| Inn_Sustancial | P2605 | 0,2356 | 0,1178 | 1,9997 | 0,0455 | 1,2657 | Sí |
| Inn_Sustancial | P3701 | -0,1995 | 0,1065 | -1,8741 | 0,0609 | 0,8191 | No |
| Inn_Sustancial | P2603 | 0,2251 | 0,1243 | 1,8114 | 0,0701 | 1,2524 | No |
En modelos multinomiales no se utiliza el \(R^2\) clásico de regresión lineal. Una alternativa es el pseudo \(R^2\) de Nagelkerke:
\[ R^2_N = \frac{1 - \exp\left(\frac{2}{n}(LL_0 - LL_1)\right)}{1 - \exp\left(\frac{2}{n}LL_0\right)} \]
n <- nrow(base1)
R2_N <- (1 - exp((2 / n) * (LL0 - LL1))) / (1 - exp((2 / n) * LL0))
R2_N
#> [1] 0,2747697
Este indicador toma valores entre 0 y 1. Valores más altos indican mayor capacidad explicativa relativa del modelo respecto al modelo nulo. No debe interpretarse como proporción exacta de varianza explicada, sino como una medida comparativa de ajuste.
El modelo permite obtener la categoría predicha como aquella con mayor probabilidad estimada.
prob_pred <- predict(modelo_prod, type = "probs")
clase_pred <- colnames(prob_pred)[max.col(prob_pred)]
clase_pred <- factor(clase_pred, levels = levels(base1$Grad_Prod_Y))
matriz_clasificacion <- table(
Observado = base1$Grad_Prod_Y,
Predicho = clase_pred
)
matriz_clasificacion
#> Predicho
#> Observado No innovo Inn_Incremental Inn_Sustancial
#> No innovo 77 44 7
#> Inn_Incremental 35 119 8
#> Inn_Sustancial 21 43 11
tasa_clasificacion <- sum(diag(matriz_clasificacion)) / sum(matriz_clasificacion)
tasa_clasificacion
#> [1] 0,5671233
La tasa de clasificación correcta se calcula como:
\[ TCC = \frac{\text{número de casos correctamente clasificados}}{\text{número total de casos}} \]
Además de los coeficientes, el modelo puede utilizarse para estimar probabilidades de innovación para perfiles concretos de empresas.
nuevo_perfil <- data.frame(
Sexo = factor("Hombre", levels = levels(base1$Sexo)),
Terciario = factor("Si", levels = levels(base1$Terciario)),
P2601 = 3,
P2604 = 3,
P2603 = 3,
P2605 = 3,
P2606 = 3,
P30 = factor("Si", levels = levels(base1$P30)),
P3700C = mean(base1$P3700C, na.rm = TRUE),
RECRAMA = factor("Comercio", levels = levels(base1$RECRAMA)),
P3701 = 3,
P38_Formal = factor("Si", levels = levels(base1$P38_Formal)),
P4201 = factor("Si", levels = levels(base1$P4201)),
P4202 = factor("Si", levels = levels(base1$P4202)),
P4203 = factor("Si", levels = levels(base1$P4203)),
P60_01 = 3,
P60_02 = 3,
P60_03 = 3,
P60_04 = 3,
P60_05 = 3,
P60_06 = 3,
P60_07 = 3
)
predict(modelo_prod, newdata = nuevo_perfil, type = "probs")
El procedimiento step() puede utilizarse con fines
exploratorios para identificar una especificación más parsimoniosa. Sin
embargo, debe utilizarse con cautela y siempre con fundamento
teórico.
modelo_step <- step(modelo_prod, trace = FALSE)
summary(modelo_step)
Utilizando la base base1.txt, realice las siguientes
actividades:
Grad_Proc_Y.Inn_Incremental.La regresión logística multinomial es una herramienta útil cuando la variable dependiente presenta más de dos categorías y se desea analizar cómo un conjunto de covariables modifica la probabilidad relativa de pertenecer a cada categoría frente a una categoría base. En el estudio de la innovación empresarial, permite identificar si los factores personales, organizacionales y del entorno inciden de manera diferenciada sobre la probabilidad de realizar innovaciones incrementales o sustanciales.
Desde una perspectiva de investigación aplicada, el valor del modelo no se limita a identificar significancia estadística. También permite construir probabilidades predichas para perfiles empresariales concretos, evaluar la capacidad de clasificación del modelo y discutir la dirección e intensidad de los factores asociados a la capacidad innovadora de las empresas.
Nota metodológica: La presente guía fue elaborada con apoyo de herramientas de inteligencia artificial generativa, específicamente ChatGPT de OpenAI, como asistencia en la estructuración y redacción del material. La selección de contenidos, la validación conceptual y la revisión final son responsabilidad del docente.
Agresti, A. (2018). An Introduction to Categorical Data Analysis. Wiley.
Hosmer, D. W., Lemeshow, S. y Sturdivant, R. X. (2013). Applied Logistic Regression. Wiley.
Wickham, H., François, R., Henry, L., Müller, K., y Vaughan, D. dplyr: A Grammar of Data Manipulation. R package.
Schauberger, P., y Walker, A. openxlsx: Read, Write and Edit xlsx Files. R package.
Xie, Y. knitr: A General-Purpose Package for Dynamic Report Generation in R. R package.
Ripley, B., & Venables, W. (2023). nnet: Feed-Forward Neural Networks and Multinomial Log-Linear Models (R package version 7.3-19). Comprehensive R Archive Network (CRAN). https://CRAN.R-project.org/package=nnet
Sanabria, D. (2024). Capacidad innovadora de las pequeñas y medianas empresas paraguayas: un análisis mediante regresión logística multinomial. Población y Desarrollo, 27(53), 29-45. https://scielo.iics.una.py/pdf/pdfce/v27n53/2076-054x-pdfce-27-53-29.pdf