paquetes <- c("readxl", "ggplot2", "dplyr", "knitr", "scales")
install.packages(setdiff(paquetes, rownames(installed.packages())))Este trabajo estima, con intervalos de confianza al 95 %, los parámetros poblacionales asociados a la capacidad de ahorro de las personas representadas en una base de 100 observaciones y 11 variables, la misma del Taller #1. Se estimaron cuatro parámetros: la media del ahorro mensual, la proporción de personas que maneja un presupuesto, la varianza del ingreso mensual y la diferencia de ahorro promedio entre quienes manejan presupuesto y quienes no. Cada intervalo se resolvió primero de forma matemática, siguiendo la secuencia parámetro, estimador, error estándar, valor crítico y margen de error, y luego se reprodujo en R para comparar ambos resultados. Los supuestos se verificaron antes de aplicar cada procedimiento, en particular el de normalidad que exige la distribución ji-cuadrado. El ahorro mensual promedio se ubica entre 539.509 y 875.318 pesos. Entre el 66,5 % y el 83,5 % de la población maneja presupuesto. La desviación estándar del ingreso queda acotada entre 622.561 y 823.699 pesos. El intervalo para la diferencia de ahorro entre los dos grupos, (-258.969; 573.598), contiene el cero, de modo que no hay evidencia de que manejar un presupuesto se asocie con un ahorro promedio distinto. La estimación por intervalos cuantifica la incertidumbre que la estimación puntual deja fuera, y un resultado no significativo resulta informativo cuando se acompaña del margen de error que lo produce.
intervalo de confianza; estimación por intervalos; capacidad de ahorro; margen de error; inferencia estadística.
El ahorro es la parte del ingreso que no se destina al consumo corriente. Cuando esa diferencia se vuelve negativa, es decir, cuando el gasto mensual supera al ingreso, el faltante debe cubrirse vendiendo activos o endeudándose. Si la situación se sostiene, la posición financiera del hogar se deteriora.
El Taller #1 describió ese fenómeno en la muestra disponible. Caracterizó a quienes presentan ahorro negativo y analizó cómo se distribuyen el endeudamiento y la satisfacción económica. Esa descripción, sin embargo, deja abierta la pregunta de fondo. Los valores que allí se calcularon son estadísticos: cambiarían si se hubiera observado otro conjunto de individuos. Este trabajo aborda esa limitación.
La diferencia entre describir y estimar no es una formalidad. Una media muestral es un número conocido. El parámetro poblacional que esa media pretende representar es desconocido, y cualquier decisión basada en el primero sin medir la distancia al segundo ignora una fuente de error que puede ser grande. La estimación por intervalos hace explícita esa incertidumbre: en lugar de un valor único entrega un rango de valores plausibles, junto con el nivel de confianza del procedimiento que lo produjo.
En decisiones financieras esto pesa. Las decisiones de ahorro y endeudamiento dependen del ingreso, pero también del conocimiento financiero y de los hábitos de planeación (Lusardi y Mitchell, 2014). Determinar si una práctica como llevar un presupuesto se asocia con mayor ahorro obliga a distinguir entre una diferencia observada en la muestra y una diferencia que se sostenga en la población.
Tukey (1977) formalizó el Análisis Exploratorio de Datos como una etapa previa e independiente de la inferencia, dedicada a describir, detectar anomalías y generar preguntas. Ese fue el alcance del Taller #1. La etapa siguiente se apoya en el desarrollo formal de la estimación por intervalos, cuyo tratamiento clásico está en Casella y Berger (2002) y cuya presentación aplicada se encuentra en Walpole, Myers, Myers y Ye (2012).
Dos aportes metodológicos resultan pertinentes aquí. Welch (1947), sobre la aproximación de Satterthwaite (1946), propuso un procedimiento para comparar medias de dos poblaciones sin suponer varianzas iguales, que es el empleado en la sección 7.4. Agresti y Coull (1998) documentaron que el intervalo clásico de Wald para una proporción tiene cobertura real inferior a la nominal y compararon su comportamiento con alternativas como el de Wilson. Esa discusión explica la discrepancia que se reporta en la sección 9.2.
El análisis se realizó en R (R Core Team, 2025) con la gramática de
gráficos de ggplot2 (Wickham, 2016).
¿Entre qué valores plausibles se encuentran el ahorro mensual promedio, la proporción de personas que maneja un presupuesto y la variabilidad del ingreso en la población representada por la muestra, y existe evidencia de que el ahorro promedio difiera entre quienes manejan presupuesto y quienes no?
Estimar con intervalos de confianza al 95 % los parámetros poblacionales asociados a la capacidad de ahorro, y evaluar si la práctica de manejar un presupuesto se asocia con un ahorro promedio distinto.
La población es el conjunto completo de unidades sobre las que se desea concluir. La muestra es el subconjunto que efectivamente se observa. Un parámetro es una medida numérica de la población, desconocida y fija, y se denota con letras griegas (\(\mu\), \(\sigma^2\), \(p\)). Un estadístico es la medida análoga calculada sobre la muestra (\(\bar{x}\), \(s^2\), \(\hat{p}\)): se conoce, pero varía de una muestra a otra.
Un estimador es la regla de cálculo que asigna a cada muestra posible un valor destinado a aproximar el parámetro. La estimación puntual es el valor concreto que esa regla produce en la muestra observada. Su limitación está en que no dice nada sobre su propia precisión. Saber que \(\bar{x} =\) 707.414 pesos no informa si el parámetro está cerca o lejos de esa cifra.
El error estándar es la desviación estándar de la distribución muestral del estimador y mide cuánto varía el estadístico entre muestras. Para la media es \(\sigma/\sqrt{n}\), que se estima con \(s/\sqrt{n}\).
El margen de error es el producto del valor crítico por el error estándar. Determina la semiamplitud del intervalo y, con ella, la precisión de la estimación.
Un intervalo de confianza es un rango construido a partir de la muestra que, bajo repetición del procedimiento, contiene al parámetro en una proporción conocida de los casos. Esa proporción es el nivel de confianza.
La interpretación correcta exige una precisión que suele omitirse. No es válido afirmar que el parámetro tiene 95 % de probabilidad de encontrarse dentro del intervalo ya calculado. El parámetro es una constante desconocida y el intervalo está fijado: o lo contiene o no lo contiene. La confianza es una propiedad del procedimiento. De cada 100 muestras tomadas en las mismas condiciones, aproximadamente 95 producirían un intervalo que contiene el parámetro.
La distribución normal es el modelo de referencia para variables continuas simétricas y sustenta la estimación de proporciones por aproximación, válida cuando \(n\hat{p}\) y \(n(1-\hat{p})\) son suficientemente grandes.
La distribución \(t\) de Student se emplea al estimar una media cuando \(\sigma\) es desconocida y hay que sustituirla por \(s\). Sus colas son más pesadas que las de la normal, lo que compensa la incertidumbre que introduce esa sustitución. Con \(n\) grande converge a la normal.
La distribución \(\chi^2\) sustenta la estimación de la varianza. Si la variable proviene de una población normal, entonces \((n-1)s^2/\sigma^2 \sim \chi^2_{n-1}\). Es asimétrica y solo toma valores positivos, así que el intervalo resultante no queda centrado en \(s^2\).
La distribución \(F\) es la razón de dos variables \(\chi^2\) independientes divididas por sus grados de libertad, y se usa para comparar varianzas de dos poblaciones. En este trabajo no se construye un intervalo basado en \(F\): el taller pide una sola comparación y se eligió la de medias, que es la que responde a la pregunta problema. El concepto se define aquí por completitud.
Los procedimientos no dependen de sus supuestos con la misma intensidad, y esa diferencia gobierna las decisiones de la sección 7.
El intervalo para una media es robusto. Por el Teorema del Límite Central, con \(n = 100\) la distribución muestral de \(\bar{x}\) es aproximadamente normal aunque la variable de origen no lo sea.
El intervalo para una varianza no lo es. El resultado \((n-1)s^2/\sigma^2 \sim \chi^2_{n-1}\) se cumple solo bajo normalidad de la población, y si el supuesto falla el intervalo no se ensancha de forma visible: deja de cubrir el parámetro con la confianza declarada. Produce un número de aspecto correcto y equivocado en silencio. Por eso, en la sección 7.3 el supuesto se verifica con evidencia numérica y gráfica antes de aplicar el procedimiento.
La base procede del repositorio docente
Kalbam/Data_Psicolog-a, archivo
Base_Economia_Negocios.xlsx, asignado al grupo Economía y
Negocios. Es el mismo archivo del Taller #1, lo que mantiene la
continuidad del estudio.
Esta sección delimita el alcance del trabajo y conviene leerla antes que los resultados.
La base es de construcción sintética. No existe un marco muestral documentado, no hubo selección probabilística de unidades y no se describe un procedimiento de recolección en campo. En sentido estricto, estos 100 registros no constituyen una muestra de ninguna población empírica identificable.
Para que la estimación tenga un referente definido, se adopta el siguiente marco. La población de referencia se define como una población hipotética infinita de unidades generadas por el mismo mecanismo que produjo la base, y se asume que los 100 registros son una muestra aleatoria simple de esa población. Ese supuesto habilita la interpretación frecuentista de los intervalos: sin él, la expresión “confianza del 95 %” carecería de contenido.
La validez externa queda limitada por el origen de los datos. Los intervalos estiman parámetros del mecanismo generador, no de la población económica colombiana ni de ningún colectivo humano concreto. Ninguna conclusión de este informe se extrapola a personas reales.
La declaración no debilita el trabajo, lo delimita. Presentar intervalos calculados sobre datos sintéticos como si estimaran parámetros de una población real sería un error de fondo, por impecable que resultara la aritmética.
La muestra comprende 100 observaciones sin valores faltantes ni duplicados.
data.frame(
Variable = c("ahorro (derivada)", "maneja_presupuesto",
"ingreso_mensual", "ahorro por grupo"),
Naturaleza = c("Cuantitativa continua", "Cualitativa dicotómica",
"Cuantitativa continua", "Cuantitativa continua"),
Parametro = c("Media del ahorro", "Proporción con presupuesto",
"Varianza del ingreso", "Diferencia de medias entre grupos"),
Procedimiento = c("t de Student", "Aproximación normal (Wald)",
"Ji-cuadrado", "t de Welch")
) |>
kable(caption = "Parámetros estimados y procedimiento empleado en cada caso.",
col.names = c("Variable", "Naturaleza", "Parámetro", "Procedimiento"))| Variable | Naturaleza | Parámetro | Procedimiento |
|---|---|---|---|
| ahorro (derivada) | Cuantitativa continua | Media del ahorro | t de Student |
| maneja_presupuesto | Cualitativa dicotómica | Proporción con presupuesto | Aproximación normal (Wald) |
| ingreso_mensual | Cuantitativa continua | Varianza del ingreso | Ji-cuadrado |
| ahorro por grupo | Cuantitativa continua | Diferencia de medias entre grupos | t de Welch |
Las variables nivel_endeudamiento y
satisfaccion_economica son ordinales en escala 1 a 10, la
misma clasificación que recibieron en el Taller #1. No se emplean aquí
como base de ningún intervalo, por las razones de la sección 7.3.
La variable ahorro es derivada:
\[\text{ahorro} = \text{ingreso mensual} - \text{gasto mensual}\]
Como ya se advirtió en el Taller #1, esa definición implica que
ahorro está correlacionado con ingreso y con
gasto por construcción. La relación es algebraica, no
empírica, y no se interpreta como hallazgo.
Se emplea un nivel de confianza del 95 % en los cuatro intervalos,
fijado antes de realizar cálculo alguno. El procesamiento se hizo en R
(R Core Team, 2025) con los paquetes readxl,
dplyr, ggplot2, knitr y
scales.
Cada intervalo se resuelve dos veces por vías independientes. La sección 8 desarrolla la vía matemática, siguiendo la secuencia parámetro, estimador, error estándar, valor crítico, margen de error e intervalo. La sección 9 lo reproduce con las funciones de R y presenta ambos resultados juntos. La coincidencia entre las dos vías es la condición para dar cada intervalo por válido.
El doble cálculo no es una formalidad. Un error en el valor crítico, como emplear \(z\) en lugar de \(t\) o equivocar la cola de la distribución \(\chi^2\), produce un intervalo presentable y del todo incorrecto. El contraste con una implementación independiente es lo único que lo revela.
Se mantienen los controles de integridad del Taller #1. Las cifras citadas en el texto se calculan una sola vez y se insertan por referencia, de modo que la redacción y las tablas no puedan contradecirse. La compilación se detiene si la base cambia de tamaño, aparecen faltantes o los tamaños de grupo dejan de ser los esperados.
Dos procedimientos usan valores que no aparecen en las tablas impresas habituales. Los grados de libertad de Welch son fraccionarios, y las tablas de \(\chi^2\) suelen saltar de 90 a 100 grados de libertad. Para que cualquier lector pueda rehacer los cálculos con una calculadora, se publican aquí todos los valores empleados.
data.frame(
Procedimiento = c("Media del ahorro", "Proporción (Wald)",
"Varianza del ingreso", "Diferencia de medias (Welch)"),
Distribucion = c("t de Student", "Normal estándar", "Ji-cuadrado",
"t de Welch"),
gl = c(fmt(gl1, 0), "No aplica", fmt(gl3, 0), fmt(gl4, 4)),
Valor = c(paste0("t(0,975) = ", fmt(tc1, 4)),
paste0("z(0,975) = ", fmt(zc2, 4)),
paste0("Ji-cuadrado(0,025) = ", fmt(chi_i, 4),
" ; Ji-cuadrado(0,975) = ", fmt(chi_s, 4)),
paste0("t(0,975) = ", fmt(tc4, 4)))
) |>
kable(caption = "Valores críticos empleados en los cuatro intervalos.",
col.names = c("Procedimiento", "Distribución", "g.l.",
"Valor crítico"))| Procedimiento | Distribución | g.l. | Valor crítico |
|---|---|---|---|
| Media del ahorro | t de Student | 99 | t(0,975) = 1,9842 |
| Proporción (Wald) | Normal estándar | No aplica | z(0,975) = 1,9600 |
| Varianza del ingreso | Ji-cuadrado | 99 | Ji-cuadrado(0,025) = 73,3611 ; Ji-cuadrado(0,975) = 128,4220 |
| Diferencia de medias (Welch) | t de Welch | 38,0411 | t(0,975) = 2,0243 |
Esta sección plantea cada intervalo: el contexto, la pregunta estadística, el parámetro, los estadísticos muestrales, la fórmula y la verificación del supuesto correspondiente. El desarrollo matemático está en la sección 8, la comprobación en R en la sección 9 y la interpretación en la sección 10.
El Taller #1 estableció que 15 de las 100 personas de la muestra presentan ahorro negativo. Queda abierto cuál es el ahorro promedio de la población de referencia y con qué precisión puede estimarse.
¿Entre qué valores plausibles se encuentra el ahorro mensual promedio poblacional?
El parámetro es \(\mu\), ahorro mensual promedio poblacional.
data.frame(
Estadistico = c("n", "Media muestral", "Desviación estándar",
"Error estándar"),
Valor = c(fmt(n, 0), fmt(xb1, 2), fmt(s1, 2), fmt(se1, 2))
) |> kable(caption = "Estadísticos muestrales del ahorro.",
col.names = c("Estadístico", "Valor (pesos)"))| Estadístico | Valor (pesos) |
|---|---|
| n | 100 |
| Media muestral | 707.413,58 |
| Desviación estándar | 846.198,81 |
| Error estándar | 84.619,88 |
Como \(\sigma\) es desconocida se emplea la distribución \(t\) de Student:
\[IC_{95\%}(\mu) = \bar{x} \pm t_{\alpha/2,\,n-1} \cdot \frac{s}{\sqrt{n}}\]
La normalidad no es indispensable aquí. Con \(n = 100\) el Teorema del Límite Central garantiza la validez de la aproximación. Aun así, Shapiro-Wilk aplicado al ahorro arroja un p-valor de 0,7101, de modo que tampoco hay evidencia en contra.
Llevar un presupuesto es una práctica de planeación financiera. Interesa estimar qué proporción de la población la adopta.
¿Entre qué valores plausibles se encuentra la proporción poblacional de personas que maneja un presupuesto?
El parámetro es \(p\). El estimador es \(\hat{p} = x/n = 75/100 = 0,75\).
La aproximación normal requiere que \(n\hat{p}\) y \(n(1-\hat{p})\) sean grandes, con el criterio habitual de que ambos superen 10:
\[n\hat{p} = 75 > 10 \qquad n(1-\hat{p}) = 25 > 10\]
La condición se cumple y el procedimiento es aplicable.
Interesa estimar la variabilidad del ingreso, no su nivel. Dos poblaciones con el mismo ingreso medio pueden diferir mucho en dispersión.
¿Entre qué valores plausibles se encuentran la varianza y la desviación estándar poblacionales del ingreso mensual?
La elección de la variable requiere justificación. Como se expuso en
5.6, este procedimiento exige normalidad y no es robusto si el supuesto
falla. Variables como satisfaccion_economica o
nivel_endeudamiento resultarían temáticamente atractivas,
pero su distribución se aparta bastante de la normal, con p-valores de
Shapiro-Wilk inferiores a 0,001, y aplicarles el procedimiento
produciría un intervalo de cobertura real desconocida. Se emplea
ingreso_mensual, la variable monetaria de interés que
satisface el supuesto.
##
## Shapiro-Wilk normality test
##
## data: datos$ingreso_mensual
## W = 0.99132, p-value = 0.7699
La prueba arroja \(W =\) 0,9913 con un p-valor de 0,7699.
La lectura de ese resultado debe ser precisa. Un p-valor alto no prueba que la variable sea normal: indica que la muestra no aporta evidencia suficiente para rechazar esa hipótesis. Con \(n = 100\) la prueba tampoco tiene potencia para detectar desviaciones moderadas. Afirmar que la variable es normal porque p = 0,770 sería cometer, en dirección contraria, la misma falacia que este informe evita al interpretar el intervalo de la sección 10.4.
Por eso el supuesto no se sustenta solo en el p-valor.
ggplot(datos, aes(sample = ingreso_mensual)) +
stat_qq(colour = col_1, alpha = 0.7) +
stat_qq_line(colour = col_2, linewidth = 0.8) +
labs(title = "Gráfico Q-Q normal del ingreso mensual",
x = "Cuantiles teóricos", y = "Cuantiles muestrales",
caption = "El ajuste a la diagonal respalda el supuesto de normalidad.") +
tema_informeGráfico Q-Q normal del ingreso mensual. Los puntos se alinean sobre la diagonal, sin desviaciones sistemáticas en las colas.
data.frame(
Medida = c("Asimetría", "Curtosis en exceso", "Shapiro-Wilk (W)",
"Shapiro-Wilk (p-valor)"),
Valor = c(fmt(asim3, 4), fmt(curt3, 4), fmt(sw3$statistic, 4),
fmt(sw3$p.value, 4)),
Referencia = c("0 bajo normalidad", "0 bajo normalidad", "Cercano a 1",
"No aplica")
) |> kable(caption = "Evidencia complementaria sobre el supuesto de normalidad.",
col.names = c("Medida", "Valor",
"Valor esperado bajo normalidad"))| Medida | Valor | Valor esperado bajo normalidad |
|---|---|---|
| Asimetría | 0,1311 | 0 bajo normalidad |
| Curtosis en exceso | -0,4254 | 0 bajo normalidad |
| Shapiro-Wilk (W) | 0,9913 | Cercano a 1 |
| Shapiro-Wilk (p-valor) | 0,7699 | No aplica |
La asimetría (0,131) y la curtosis en exceso (-0,425) son próximas a cero, y el gráfico Q-Q no muestra desviaciones sistemáticas. El conjunto de la evidencia respalda el uso del procedimiento.
La sección 7.2 plantea que una mayoría de la población maneja presupuesto. Cabe preguntarse si esa práctica se asocia con mayor capacidad de ahorro.
¿Existe evidencia de que el ahorro mensual promedio difiera entre quienes manejan presupuesto y quienes no?
El parámetro es \(\mu_1 - \mu_2\), donde \(\mu_1\) corresponde a quienes manejan presupuesto y \(\mu_2\) a quienes no.
data.frame(
Grupo = c("Con presupuesto", "Sin presupuesto"),
n = c(n1, n2),
Media = c(fmt(m1, 2), fmt(m2, 2)),
Desviacion = c(fmt(sqrt(v1), 2), fmt(sqrt(v2), 2))
) |> kable(caption = "Estadísticos por grupo.",
col.names = c("Grupo", "n", "Media del ahorro",
"Desviación estándar"))| Grupo | n | Media del ahorro | Desviación estándar |
|---|---|---|---|
| Con presupuesto | 75 | 746.742,23 | 826.201,92 |
| Sin presupuesto | 25 | 589.427,64 | 910.861,68 |
Se emplea la aproximación de Welch, que no supone varianzas iguales. Conviene ser preciso sobre el motivo, porque no se está afirmando que las varianzas sean distintas. Las desviaciones estándar muestrales son similares (826.202 y 910.862 pesos) y esta muestra no permite concluir que difieran. Welch se adopta como criterio conservador por defecto: con tamaños de grupo desiguales (75 frente a 25, razón cercana a 3:1) el estadístico de varianza combinada es sensible a diferencias de varianza que esta muestra no tiene potencia para descartar, y el procedimiento de Welch es válido tanto si las varianzas coinciden como si no, mientras que el combinado solo lo es en el primer caso (Welch, 1947).
data.frame(
Grupo = c("Con presupuesto", "Sin presupuesto"),
W = c(fmt(sw4a$statistic, 4), fmt(sw4b$statistic, 4)),
p = c(fmt(sw4a$p.value, 4), fmt(sw4b$p.value, 4))
) |> kable(caption = "Shapiro-Wilk aplicado a cada grupo por separado.",
col.names = c("Grupo", "W", "p-valor"))| Grupo | W | p-valor |
|---|---|---|
| Con presupuesto | 0,9817 | 0,3524 |
| Sin presupuesto | 0,9572 | 0,3614 |
En ninguno de los dos grupos se rechaza la normalidad. Las observaciones son independientes entre sí, al corresponder a individuos distintos.
Cada intervalo se resuelve aquí con la estructura parámetro, estimador, error estándar, valor crítico, margen de error e intervalo.
\[\bar{x} = 707.413,58 \qquad s = 846.198,81 \qquad n = 100\]
\[SE = \frac{s}{\sqrt{n}} = \frac{846.198,81}{\sqrt{100}} = 84.619,88\]
\[t_{0{,}975;\,99} = 1,9842\]
\[E = t \cdot SE = 1,9842 \times 84.619,88 = 167.904,20\]
\[IC_{95\%}(\mu) = 707.413,58 \pm 167.904,20 = (539.509,38 \,;\, 875.317,78)\]
\[\hat{p} = \frac{x}{n} = \frac{75}{100} = 0,75\]
\[SE = \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} = \sqrt{\frac{0,75 \times 0,25}{100}} = 0,043301\]
\[z_{0{,}975} = 1,9600 \qquad E = z \cdot SE = 0,084869\]
\[IC_{95\%}(p) = 0,75 \pm 0,0849 = (0,6651 \,;\, 0,8349)\]
\[IC_{95\%}(\sigma^2) = \left( \frac{(n-1)s^2}{\chi^2_{1-\alpha/2,\,n-1}} \,;\, \frac{(n-1)s^2}{\chi^2_{\alpha/2,\,n-1}} \right)\]
\[s = 709.061,30 \qquad s^2 = 502.767.925.622 \qquad n - 1 = 99\]
\[\chi^2_{0{,}975;\,99} = 128,4220 \qquad \chi^2_{0{,}025;\,99} = 73,3611\]
Límite inferior de la varianza:
\[\frac{99 \times 502.767.925.622}{128,4220} = 387.581.793.135\]
Límite superior de la varianza:
\[\frac{99 \times 502.767.925.622}{73,3611} = 678.479.985.666\]
Tomando raíz cuadrada en ambos extremos se obtiene el intervalo para \(\sigma\):
\[IC_{95\%}(\sigma) = (622.560,67 \,;\, 823.698,97)\]
El error estándar de la diferencia es:
\[SE = \sqrt{\frac{s_1^2}{n_1} + \frac{s_2^2}{n_2}} = \sqrt{9.101.461.445 + 33.186.759.713} = 205.641,00\]
Los grados de libertad se obtienen con la aproximación de Satterthwaite (1946), que se desarrolla con los números de la muestra porque su resultado es fraccionario y no figura en ninguna tabla impresa:
\[\nu = \frac{\left( \dfrac{s_1^2}{n_1} + \dfrac{s_2^2}{n_2} \right)^2}{\dfrac{(s_1^2/n_1)^2}{n_1 - 1} + \dfrac{(s_2^2/n_2)^2}{n_2 - 1}}\]
Sustituyendo \(s_1^2/n_1 = 9.101.461.445\) y \(s_2^2/n_2 = 33.186.759.713\):
\[\nu = \frac{(42.288.221.158)^2}{\dfrac{(9.101.461.445)^2}{74} + \dfrac{(33.186.759.713)^2}{24}} = 38,0411\]
Con ese valor, \(t_{0{,}975;\,38,04} = 2,0243\):
\[E = t \cdot SE = 2,0243 \times 205.641,00 = 416.283,65\]
\[\bar{x}_1 - \bar{x}_2 = 746.742,23 - 589.427,64 = 157.314,59\]
\[IC_{95\%}(\mu_1 - \mu_2) = 157.314,59 \pm 416.283,65 = (-258.969,07 \,;\, 573.598,24)\]
Cada procedimiento se reproduce con las funciones de R y se contrasta contra el desarrollo de la sección 8.
##
## One Sample t-test
##
## data: datos$ahorro
## t = 8.3599, df = 99, p-value = 4.042e-13
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 539509.4 875317.8
## sample estimates:
## mean of x
## 707413.6
ic1R <- as.numeric(t.test(datos$ahorro, conf.level = conf)$conf.int)
data.frame(
Via = c("Cálculo matemático (§ 8.1)", "Función t.test()"),
Inferior = c(fmt(ic1[1], 2), fmt(ic1R[1], 2)),
Superior = c(fmt(ic1[2], 2), fmt(ic1R[2], 2))
) |> kable(caption = "Contraste entre el desarrollo manual y la función de R.",
col.names = c("Vía", "Límite inferior", "Límite superior"))| Vía | Límite inferior | Límite superior |
|---|---|---|
| Cálculo matemático (§ 8.1) | 539.509,38 | 875.317,78 |
| Función t.test() | 539.509,38 | 875.317,78 |
Ambas vías coinciden hasta el segundo decimal y el intervalo se da por válido.
##
## 1-sample proportions test with continuity correction
##
## data: x2 out of n, null probability 0.5
## X-squared = 24.01, df = 1, p-value = 9.584e-07
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.6516159 0.8288245
## sample estimates:
## p
## 0.75
data.frame(
Metodo = c("Wald (§ 8.2)",
"prop.test(): Wilson con corrección de continuidad"),
Inferior = c(fmt(ic2[1], 4), fmt(ic2R[1], 4)),
Superior = c(fmt(ic2[2], 4), fmt(ic2R[2], 4))
) |> kable(caption = "Los dos métodos no coinciden, y la diferencia es esperable.",
col.names = c("Método", "Límite inferior", "Límite superior"))| Método | Límite inferior | Límite superior |
|---|---|---|
| Wald (§ 8.2) | 0,6651 | 0,8349 |
| prop.test(): Wilson con corrección de continuidad | 0,6516 | 0,8288 |
Los dos intervalos no coinciden, y conviene explicar por qué en lugar
de ocultarlo. El desarrollo matemático emplea el intervalo de Wald, que
es el que presenta el curso: se centra en \(\hat{p}\) y usa el error estándar estimado
con la propia \(\hat{p}\). La función
prop.test() no aplica ese método sino el intervalo de
Wilson con corrección de continuidad, que invierte la prueba de
hipótesis y por eso no queda centrado en \(\hat{p}\).
Agresti y Coull (1998) mostraron que el intervalo de Wald tiene cobertura real inferior a la nominal, sobre todo cuando \(\hat{p}\) se aleja de 0,5 o el tamaño muestral es reducido, y que alternativas como la de Wilson corrigen ese defecto. La discrepancia observada, del orden de un punto porcentual en cada extremo, es el comportamiento esperado de ambos procedimientos y no un error de cálculo. Se reportan los dos, y la interpretación de la sección 10.2 se apoya en el de Wald por ser el desarrollado matemáticamente.
gl_v <- length(datos$ingreso_mensual) - 1
s2_v <- var(datos$ingreso_mensual)
lim_var <- c(gl_v * s2_v / qchisq(0.975, gl_v),
gl_v * s2_v / qchisq(0.025, gl_v))
lim_sd <- sqrt(lim_var)
data.frame(
Parametro = c("Varianza del ingreso", "Desviación estándar del ingreso"),
Inferior = c(fmt(lim_var[1], 0), fmt(lim_sd[1], 2)),
Superior = c(fmt(lim_var[2], 0), fmt(lim_sd[2], 2))
) |> kable(caption = "Intervalos obtenidos en R, coincidentes con el desarrollo manual.",
col.names = c("Parámetro", "Límite inferior", "Límite superior"))| Parámetro | Límite inferior | Límite superior |
|---|---|---|
| Varianza del ingreso | 387.581.793.135 | 678.479.985.666 |
| Desviación estándar del ingreso | 622.560,67 | 823.698,97 |
R no trae una función estándar para este intervalo, así que la
comprobación consiste en reproducir la fórmula con los cuantiles de
qchisq(), verificando que se usa la cola correcta en cada
extremo. Ese es justamente el punto donde un error de cola produciría un
intervalo invertido de aspecto plausible.
##
## Welch Two Sample t-test
##
## data: g1 and g2
## t = 0.765, df = 38.041, p-value = 0.449
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -258969.1 573598.2
## sample estimates:
## mean of x mean of y
## 746742.2 589427.6
data.frame(
Via = c("Cálculo matemático (§ 8.4)",
"Función t.test(var.equal = FALSE)"),
Inferior = c(fmt(ic4[1], 2), fmt(ic4R[1], 2)),
Superior = c(fmt(ic4[2], 2), fmt(ic4R[2], 2))
) |> kable(caption = "Contraste entre el desarrollo manual y la función de R.",
col.names = c("Vía", "Límite inferior", "Límite superior"))| Vía | Límite inferior | Límite superior |
|---|---|---|
| Cálculo matemático (§ 8.4) | -258.969,07 | 573.598,24 |
| Función t.test(var.equal = FALSE) | -258.969,07 | 573.598,24 |
Ambas vías coinciden, incluidos los grados de libertad fraccionarios.
Con un nivel de confianza del 95 %, el ahorro mensual promedio de la población de referencia se encuentra entre 539.509 y 875.318 pesos. La estimación puntual es 707.414 pesos.
El intervalo aporta lo que la estimación puntual deja fuera. Su amplitud es de 335.808 pesos, es decir, un margen de error de 167.904 pesos a cada lado. Esa imprecisión viene de la alta variabilidad del ahorro, con \(s =\) 846.199 pesos, superior a la propia media, porque la muestra combina personas con ahorro fuertemente positivo y personas con ahorro negativo. El intervalo completo queda por encima de cero, lo que indica que el ahorro promedio poblacional es positivo, aunque su magnitud no pueda precisarse más sin aumentar el tamaño muestral.
Con un nivel de confianza del 95 %, la proporción poblacional de personas que maneja un presupuesto está entre 66,5 % y 83,5 %. La estimación puntual es 75 %.
El margen de error es de 8,5 puntos porcentuales. Frente a la estimación puntual, el intervalo advierte que decir “tres de cada cuatro personas manejan presupuesto” simplifica: los datos son compatibles con proporciones que van desde cerca de dos tercios hasta más de cuatro quintos de la población. El intervalo completo queda por encima del 50 %, lo que permite afirmar que la práctica es mayoritaria.
Con un nivel de confianza del 95 %, la desviación estándar poblacional del ingreso mensual se encuentra entre 622.561 y 823.699 pesos. La estimación puntual es 709.061 pesos.
El intervalo no está centrado en la estimación puntual. El extremo superior dista 114.638 pesos de \(s\), mientras el inferior dista 86.501. No se trata de un error de cálculo sino de una consecuencia directa de la asimetría de la distribución \(\chi^2\), que distingue a este procedimiento de los basados en distribuciones simétricas.
En términos sustantivos, la dispersión del ingreso en la población es considerable. Incluso en su extremo más favorable la desviación estándar supera los 0,6 millones de pesos, frente a un ingreso medio de 2.446.225. El coeficiente de variación implícito ronda el 29 %.
Con un nivel de confianza del 95 %, la diferencia entre el ahorro promedio de quienes manejan presupuesto y quienes no se encuentra entre -258.969 y 573.598 pesos. La estimación puntual es 157.315 pesos a favor del primer grupo.
El intervalo contiene el cero. Los datos son compatibles con la ausencia de diferencia, y no hay evidencia suficiente para afirmar que manejar un presupuesto se asocie con un ahorro promedio distinto en la población de referencia.
Esa conclusión pide una precisión que suele omitirse: no se ha demostrado que ambos grupos sean iguales. La ausencia de evidencia de diferencia no equivale a evidencia de ausencia de diferencia. Con 25 observaciones en el grupo más pequeño y una desviación cercana a 910.862 pesos, la potencia del procedimiento es baja: diferencias reales del orden del margen de error (416.284 pesos) o menores tienen una probabilidad alta de producir un intervalo que contenga el cero. Detectar una asociación de magnitud moderada exigiría un grupo de comparación bastante mayor.
Frente a la estimación puntual, el intervalo aporta precisamente eso. Leída sola, la cifra de 157.315 pesos sugeriría una ventaja del grupo con presupuesto. El intervalo muestra que esa cifra es indistinguible del ruido muestral que produce un tamaño de grupo reducido.
ggplot(datos, aes(x = presupuesto, y = ahorro, fill = presupuesto)) +
geom_boxplot(alpha = 0.75, outlier.colour = col_2, width = 0.55) +
geom_hline(yintercept = 0, linetype = "dashed", colour = "grey40") +
scale_fill_manual(values = c(col_1, col_3)) +
scale_y_continuous(labels = label_number(big.mark = ".",
decimal.mark = ",")) +
labs(title = "Ahorro mensual según manejo de presupuesto",
x = NULL, y = "Ahorro mensual (pesos)",
caption = "La línea discontinua marca el ahorro cero.") +
tema_informe + theme(legend.position = "none")Distribución del ahorro según manejo de presupuesto. La superposición entre ambos grupos es amplia.
data.frame(
Parametro = c("Media del ahorro",
"Proporción con presupuesto",
"Desviación estándar del ingreso",
"Diferencia de medias entre grupos"),
Estimacion = c(fmt(xb1, 0), fmt(ph2, 3), fmt(s3, 0), fmt(d4, 0)),
Inferior = c(fmt(ic1[1], 0), fmt(ic2[1], 3), fmt(ic3s[1], 0),
fmt(ic4[1], 0)),
Superior = c(fmt(ic1[2], 0), fmt(ic2[2], 3), fmt(ic3s[2], 0),
fmt(ic4[2], 0)),
Margen = c(fmt(me1, 0), fmt(me2, 3),
paste0("-", fmt(dist_inf3, 0), " / +", fmt(dist_sup3, 0)),
fmt(me4, 0))
) |> kable(caption = "Los cuatro intervalos de confianza al 95 %.",
col.names = c("Parámetro", "Estimación puntual", "Límite inferior",
"Límite superior", "Margen de error"))| Parámetro | Estimación puntual | Límite inferior | Límite superior | Margen de error |
|---|---|---|---|---|
| Media del ahorro | 707.414 | 539.509 | 875.318 | 167.904 |
| Proporción con presupuesto | 0,750 | 0,665 | 0,835 | 0,085 |
| Desviación estándar del ingreso | 709.061 | 622.561 | 823.699 | -86.501 / +114.638 |
| Diferencia de medias entre grupos | 157.315 | -258.969 | 573.598 | 416.284 |
La fila de la desviación estándar reporta dos distancias en lugar de un margen único, porque el intervalo basado en \(\chi^2\) no es simétrico respecto de la estimación puntual.
El ahorro promedio poblacional es positivo, pero se estima con baja precisión. El intervalo (539.509; 875.318) pesos queda por encima de cero, de modo que la población de referencia ahorra en promedio. Su amplitud de 335.808 pesos refleja la heterogeneidad que detectó el Taller #1, donde conviven personas con ahorro fuertemente positivo y 15 casos con ahorro negativo.
Manejar un presupuesto es una práctica mayoritaria. El intervalo (66,5 %; 83,5 %) se sitúa completo por encima del 50 %, pese a un margen de error de 8,5 puntos.
La dispersión del ingreso es considerable y queda acotada de forma asimétrica. La desviación estándar poblacional se estima entre 622.561 y 823.699 pesos. Que el intervalo no esté centrado, por la asimetría de la distribución \(\chi^2\), ilustra que no todos los intervalos se construyen alrededor de la estimación puntual.
No hay evidencia de que el presupuesto se asocie con mayor ahorro, y el procedimiento tampoco permitiría detectarlo si la asociación fuese moderada. El intervalo (-258.969; 573.598) contiene el cero. Con un margen de error de 416.284 pesos y 25 observaciones en el grupo menor, el resultado no debe leerse como prueba de igualdad.
Lo que la estimación por intervalos aporta sobre la descripción del Taller #1 es la medida de la incertidumbre. Los mismos datos que allí produjeron cifras únicas entregan aquí rangos de valores plausibles, y eso cambia la lectura de algunos resultados: una diferencia de 157.315 pesos entre grupos, que en términos descriptivos parecería relevante, resulta indistinguible de la variabilidad muestral una vez estimada su precisión.
Agresti, A., y Coull, B. A. (1998). Approximate is better than “exact” for interval estimation of binomial proportions. The American Statistician, 52(2), 119-126.
Casella, G., y Berger, R. L. (2002). Statistical inference (2.ª ed.). Duxbury Press.
Lusardi, A., y Mitchell, O. S. (2014). The economic importance of financial literacy: Theory and evidence. Journal of Economic Literature, 52(1), 5-44.
R Core Team. (2025). R: A language and environment for statistical computing. R Foundation for Statistical Computing. https://www.R-project.org/
Satterthwaite, F. E. (1946). An approximate distribution of estimates of variance components. Biometrics Bulletin, 2(6), 110-114.
Tukey, J. W. (1977). Exploratory data analysis. Addison-Wesley.
Walpole, R. E., Myers, R. H., Myers, S. L., y Ye, K. (2012). Probabilidad y estadística para ingeniería y ciencias (9.ª ed.). Pearson Educación.
Welch, B. L. (1947). The generalization of “Student’s” problem when several different population variances are involved. Biometrika, 34(1-2), 28-35.
Wickham, H. (2016). ggplot2: Elegant graphics for data analysis (2.ª ed.). Springer-Verlag.
data.frame(
Aspecto = c("Uso de IA", "Herramienta", "Finalidad",
"Porcentaje estimado"),
Informacion = c("Sí", "Claude (Anthropic)",
"Apoyo en la estructura del informe, revisión de redacción y verificación cruzada de los cálculos",
"30 %")
) |> kable(caption = "Declaración sobre el uso de Inteligencia Artificial.",
col.names = c("Aspecto", "Información"))| Aspecto | Información |
|---|---|
| Uso de IA | Sí |
| Herramienta | Claude (Anthropic) |
| Finalidad | Apoyo en la estructura del informe, revisión de redacción y verificación cruzada de los cálculos |
| Porcentaje estimado | 30 % |
Los desarrollos matemáticos, la elección de los procedimientos, la verificación de los supuestos y la interpretación de los resultados fueron revisados y comprendidos por los integrantes del grupo. Las cifras provienen de la ejecución del código incluido en este documento sobre la base adjunta.
El informe se genera a partir de un archivo .Rmd
autocontenido. Las cifras del texto se calculan durante la compilación y
se insertan por referencia, así que no pueden contradecir a las tablas.
La lectura de datos usa rutas relativas
(datos/Base_Economia_Negocios.xlsx) y el proyecto funciona
en cualquier equipo sin modificaciones.
Los controles de integridad detienen la compilación si la base cambia de tamaño, aparecen valores faltantes o los tamaños de grupo dejan de ser los esperados. La identificación de categorías no depende de caracteres acentuados, lo que evita que un problema de codificación produzca grupos vacíos sin aviso: un filtro escrito contra un literal con tilde no falla cuando la codificación se altera, devuelve un subconjunto vacío, y un grupo vacío genera un intervalo ausente que puede pasar inadvertido entre tablas bien formateadas.
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.4 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
## [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
## [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
## [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
##
## time zone: UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] scales_1.4.0 knitr_1.52 dplyr_1.2.1 ggplot2_4.0.3 readxl_1.5.0.1
##
## loaded via a namespace (and not attached):
## [1] vctrs_0.7.3 cli_3.6.6 rlang_1.3.0 xfun_0.61
## [5] generics_0.1.4 S7_0.2.2 jsonlite_2.0.0 labeling_0.4.3
## [9] glue_1.8.1 htmltools_0.5.9 sass_0.4.10 rmarkdown_2.32
## [13] grid_4.6.1 cellranger_1.1.0 tibble_3.3.1 evaluate_1.0.5
## [17] jquerylib_0.1.4 fastmap_1.2.0 yaml_2.3.12 lifecycle_1.0.5
## [21] compiler_4.6.1 RColorBrewer_1.1-3 pkgconfig_2.0.3 farver_2.1.2
## [25] digest_0.6.39 R6_2.6.1 tidyselect_1.2.1 pillar_1.11.1
## [29] magrittr_2.0.5 bslib_0.12.0 withr_3.0.3 tools_4.6.1
## [33] gtable_0.3.6 cachem_1.1.0