Comprender el modelo de efectos aleatorios, sus hipótesis y la descomposición de la varianza.
Modelo de Efectos Aleatorios: En este modelo, los niveles del factor constituyen una muestra aleatoria extraída de una población de niveles. A diferencia del modelo de efectos fijos, donde los niveles son seleccionados deliberadamente por el investigador, en el modelo de efectos aleatorios los niveles se eligen aleatoriamente de un conjunto potencialmente grande (posiblemente infinito) de niveles disponibles.
El modelo de efectos aleatorios surge cuando existe la necesidad de estudiar un factor que presenta un número elevado de posibles niveles. Las conclusiones obtenidas a partir de este diseño se generalizan a toda la población de niveles del factor, dado que los niveles empleados en el experimento fueron seleccionados de manera aleatoria. Esta característica fundamental distingue al modelo de efectos aleatorios del modelo de efectos fijos, donde las conclusiones se restringen únicamente a los niveles específicamente incluidos en el estudio.
La expresión matemática del modelo de efectos aleatorios presenta la misma estructura que el modelo de efectos fijos:
Sin embargo, existe una diferencia fundamental: en el modelo de efectos aleatorios, los efectos $ \tau_i $ son variables aleatorias en lugar de constantes fijas. Esta distinción tiene implicaciones profundas en el análisis estadístico y en la interpretación de los resultados obtenidos.
El modelo de efectos aleatorios requiere que se cumplan las siguientes condiciones estadísticas:
Nota importante: A diferencia del modelo de efectos fijos, donde se impone la restricción $ \sum n_i \tau_i = 0 $, en el modelo de efectos aleatorios esta restricción no puede aplicarse porque los $ \tau_i $ son variables aleatorias independientes. Imponer dicha restricción introduciría dependencia entre los efectos, violando los supuestos del modelo.
Por la independencia entre las variables $ \tau_i $ y $ u_{ij} $, la varianza de cualquier observación de la muestra (varianza total) se puede expresar como:
Esta ecuación establece que la variabilidad total observada en los datos se descompone en dos componentes: la variabilidad atribuible a las diferencias entre los niveles del factor ($ \sigma^2_\tau $) y la variabilidad residual o error experimental ($ \sigma^2 $). Esta descomposición constituye la base del método de componentes de varianza.
En el modelo de efectos aleatorios, carece de sentido probar hipótesis sobre los efectos de tratamiento individuales, ya que estos son considerados variables aleatorias. En su lugar, el contraste de interés se formula en términos de la varianza de los efectos:
La interpretación de estas hipótesis es la siguiente: si se acepta $ H_0 $ ($ \sigma^2_\tau = 0 $), significa que todos los tratamientos son idénticos, es decir, no existe variabilidad sistemática entre los niveles del factor. Por el contrario, si se acepta $ H_1 $ ($ \sigma^2_\tau > 0 $), se concluye que existe variabilidad entre los tratamientos, lo cual indica que el factor estudiado influye en la variable respuesta.
Visualizar la estructura jerárquica del diseño de efectos aleatorios.
Representación jerárquica:
El diseño experimental de efectos aleatorios sigue una estructura jerárquica que puede describirse de la siguiente manera:
Paso 1 - Identificación de la población: Se parte de una población de niveles del factor que potencialmente puede ser muy grande o incluso infinita. Por ejemplo, si se estudia el rendimiento de operarios en una fábrica, la población estaría constituida por todos los operarios que podrían trabajar en ese puesto.
Paso 2 - Selección aleatoria de niveles: Del conjunto total de niveles disponibles, se seleccionan aleatoriamente $ I $ niveles para ser incluidos en el experimento. Esta selección aleatoria es fundamental porque garantiza que los resultados puedan generalizarse a toda la población de niveles.
Paso 3 - Obtención de observaciones: Para cada nivel seleccionado, se obtienen $ n_i $ observaciones de la variable respuesta. En el caso equilibrado, $ n_i = n $ para todo $ i $. En el caso no-equilibrado, los tamaños muestrales pueden variar entre niveles.
Paso 4 - Modelación estadística: Cada observación $ y_{ij} $ se expresa como la suma de tres componentes: la media general $ \mu $, el efecto aleatorio del nivel $ \tau_i $, y el error aleatorio $ u_{ij} $.
| Característica | Efectos Fijos | Efectos Aleatorios |
|---|---|---|
| Selección de niveles | Deliberada por el investigador | Aleatoria de una población |
| Naturaleza de $ \tau_i $ | Constantes fijas | Variables aleatorias |
| Restricción | $ \sum n_i\tau_i = 0 $ | Sin restricción (independencia) |
| Hipótesis nula | $ H_0: \tau_1 = \tau_2 = ... = \tau_I = 0 $ | $ H_0: \sigma^2_\tau = 0 $ |
| Alcance de conclusiones | Solo niveles incluidos | Toda la población de niveles |
Formular el modelo ANOVA con datos no balanceados, estimadores y prueba F.
En el modelo no-equilibrado, el número de observaciones varía entre los diferentes niveles del factor. Esta situación es común en la práctica experimental cuando, por diversas razones (pérdida de datos, limitaciones logísticas, etc.), no es posible mantener un número constante de observaciones por nivel.
Al igual que en el modelo de efectos fijos, la variabilidad total de los datos se puede expresar como la suma de la variabilidad entre los tratamientos y la variabilidad dentro de los mismos. A partir de estas variabilidades se definen las correspondientes varianzas muestrales que sirven como base para el contraste de hipótesis.
Para establecer el procedimiento del contraste de hipótesis para el modelo de efectos aleatorios, es necesario calcular primero los valores esperados de la varianza entre tratamientos y de la varianza residual. Como punto de partida, se consideran las expresiones de los totales y medias muestrales en función de los parámetros del modelo.
El total de observaciones del i-ésimo tratamiento, denotado por $ y_{i.} $, y su correspondiente media $ \bar{y}_{i.} $, se expresan como:
donde $ u_{i.} = \sum_{j=1}^{n_i} u_{ij} $ representa el total de los errores para el i-ésimo tratamiento, y $ \bar{u}_{i.} = u_{i.}/n_i $ es la media de dichos errores.
De manera análoga, el total de todas las observaciones, denotado por $ y_{..} $, y la media general $ \bar{y}_{..} $, se expresan como:
donde $ N = \sum_{i=1}^{I} n_i $ es el número total de observaciones, $ u_{..} = \sum_{i=1}^{I} \sum_{j=1}^{n_i} u_{ij} $ es el total de todos los errores, y $ \bar{u}_{..} = u_{..}/N $ representa la media de todos los errores.
La varianza entre tratamientos (también llamada varianza inter-grupos) se define como:
Sustituyendo las expresiones de las medias en función de los parámetros del modelo:
Simplificando y reagrupando términos, se obtiene:
Desarrollando el cuadrado de la expresión anterior, la varianza entre tratamientos se puede escribir como la suma de tres componentes:
Por la linealidad del operador esperanza, el valor esperado de $ S^2_{Tr} $ será la suma de los valores esperados de cada componente:
Para calcular este término, se utilizan las propiedades de las variables aleatorias $ \tau_i $. Puesto que las $ \tau_i $ son variables aleatorias independientes con media cero, se cumple que:
Además, como $ \mathbb{E}[\tau^2_i] = \sigma^2_\tau $ (por definición de varianza), también se verifica que:
Desarrollando el cuadrado y aplicando las propiedades anteriores:
Después de desarrollar los productos y simplificar, se obtiene:
Para el segundo término, se trabaja con los errores $ u_{ij} $. Desarrollando la expresión:
Desarrollando el cuadrado y aplicando las propiedades de los errores ($ \mathbb{E}[u_{ij}u_{kh}] = \sigma^2 $ si $ (i,j) = (k,h) $, y 0 en caso contrario por independencia):
Dado que las variables aleatorias $ \tau_i $ y $ u_{ij} $ son independientes entre sí, y ambas tienen esperanza cero:
Por tanto, el tercer término se anula:
Sustituyendo los tres términos calculados en la expresión original:
Esta expresión muestra que el valor esperado de la varianza entre tratamientos depende tanto de la varianza de los efectos ($ \sigma^2_\tau $) como de la varianza del error ($ \sigma^2 $). El coeficiente que multiplica a $ \sigma^2_\tau $ depende del diseño específico a través de los tamaños muestrales $ n_i $.
La varianza residual (o varianza intra-grupos) se define como:
Sustituyendo $ y_{ij} = \mu + \tau_i + u_{ij} $ y $ \bar{y}_{i.} = \mu + \tau_i + \bar{u}_{i.} $:
Desarrollando el cuadrado:
Aplicando las propiedades de los errores $ u_{ij} $ (independientes, con varianza $ \sigma^2 $):
Por tanto:
Este resultado demuestra que $ S^2_R $ constituye un estimador insesgado del parámetro $ \sigma^2 $. Además, si no existe variabilidad entre los tratamientos ($ \sigma^2_\tau = 0 $), entonces $ S^2_{Tr} $ es también un estimador insesgado de $ \sigma^2 $, ya que $ \mathbb{E}[S^2_{Tr}] = \sigma^2 $ cuando $ \sigma^2_\tau = 0 $.
Bajo la hipótesis nula $ H_0: \sigma^2_\tau = 0 $, puede demostrarse que las cantidades $ SCTr/\sigma^2 $ y $ SCR/\sigma^2 $ siguen distribuciones chi-cuadrado independientes con $ I-1 $ y $ N-I $ grados de libertad, respectivamente. Por tanto, el cociente:
sigue una distribución $ F $ de Snedecor con $ I-1 $ y $ N-I $ grados de libertad. Este estadístico se utiliza para probar la hipótesis de interés en el modelo de efectos aleatorios.
Bajo la hipótesis alternativa ($ \sigma^2_\tau > 0 $), el valor esperado del numerador del estadístico de contraste es mayor que $ \sigma^2 $, y por tanto se rechaza la hipótesis nula para valores significativamente grandes de $ F $.
En el modelo de efectos aleatorios, para contrastar la hipótesis $ H_0: \sigma^2_\tau = 0 $ frente a $ H_1: \sigma^2_\tau > 0 $, se aplica el siguiente criterio:
Nota: La tabla del análisis de la varianza para el modelo de efectos aleatorios es idéntica a la del modelo de efectos fijos. La diferencia fundamental radica en que las conclusiones obtenidas en el modelo de efectos aleatorios se generalizan a toda la población de niveles del factor, mientras que en el modelo de efectos fijos las conclusiones se limitan a los niveles específicamente incluidos en el experimento.
Además de efectuar el contraste de hipótesis, en el modelo de efectos aleatorios interesa estimar los valores de las varianzas poblacionales. El procedimiento utilizado se denomina "método de componentes de varianza" y consiste en igualar las esperanzas de las varianzas muestrales con sus correspondientes valores observados:
Resolviendo este sistema se obtienen los estimadores:
Puede comprobarse que si la hipótesis alternativa es cierta, entonces $ \hat{\sigma}^2_\tau $ es un estimador insesgado de $ \sigma^2_\tau $.
Situación especial: Estimación negativa de $ \sigma^2_\tau $
En el caso de que la varianza residual sea mayor que la varianza entre tratamientos ($ S^2_R > S^2_{Tr} $), el método de componentes de varianza conduce a una estimación negativa de $ \sigma^2_\tau $. Evidentemente esto carece de sentido, al tratarse de un parámetro no negativo. Cuando esto ocurre pueden adoptarse las siguientes alternativas:
La selección de una opción concreta dependerá del experimento analizado o del criterio del investigador.
En una forja se utilizan varios hornos para calentar muestras de metal. Se supone que todos los hornos operan a la misma temperatura, aunque se sospecha que probablemente esto no sea cierto. Se seleccionan aleatoriamente tres hornos y se anotan sus temperaturas en sucesivos calentamientos. A partir de estos datos, se desea determinar si existe variación significativa en la temperatura de los hornos al nivel de significación del 5%.
| Horno | Observaciones | |||||
|---|---|---|---|---|---|---|
| 1 | 91.50 | 98.30 | 98.10 | 93.50 | 93.60 | - |
| 2 | 88.50 | 84.65 | 79.90 | 77.35 | - | - |
| 3 | 90.10 | 84.80 | 88.25 | 73.00 | 71.85 | 78.65 |
# =============================================================================
# MODELO DE EFECTOS ALEATORIOS NO-EQUILIBRADO
# Ejemplo: Análisis de temperatura en hornos de una forja
# =============================================================================
import numpy as np
import scipy.stats as stats
# -----------------------------------------------------------------------------
# 1. DEFINICIÓN DE LOS DATOS
# Cada lista representa las observaciones de un horno diferente
# -----------------------------------------------------------------------------
datos = {
'Horno_1': [91.50, 98.30, 98.10, 93.50, 93.60],
'Horno_2': [88.50, 84.65, 79.90, 77.35],
'Horno_3': [90.10, 84.80, 88.25, 73.00, 71.85, 78.65]
}
# Número de niveles del factor (hornos)
I = len(datos)
# Tamaños muestrales por nivel
n_i = [len(datos[k]) for k in datos]
# Tamaño muestral total
N = sum(n_i)
print(f"Número de hornos (I): {I}")
print(f"Tamaños por nivel: {n_i}")
print(f"Tamaño total (N): {N}")
print()
# -----------------------------------------------------------------------------
# 2. CÁLCULO DE ESTADÍSTICOS DESCRIPTIVOS
# -----------------------------------------------------------------------------
medias_grupo = [np.mean(datos[k]) for k in datos]
media_general = np.mean([x for grupo in datos.values() for x in grupo])
print("Estadísticos descriptivos:")
for i, (k, v) in enumerate(datos.items()):
print(f" {k}: media = {medias_grupo[i]:.2f}°C, n = {len(v)}")
print(f" Media general: {media_general:.2f}°C")
print()
# -----------------------------------------------------------------------------
# 3. CÁLCULO DE SUMAS DE CUADRADOS
# -----------------------------------------------------------------------------
# Suma de cuadrados total (SCT)
todos_datos = [x for grupo in datos.values() for x in grupo]
SCT = sum((x - media_general)**2 for x in todos_datos)
# Suma de cuadrados entre grupos (SCTr)
SCTr = sum(n_i[i] * (medias_grupo[i] - media_general)**2
for i in range(I))
# Suma de cuadrados residual (SCR)
SCR = sum((x - medias_grupo[i])**2
for i, grupo in enumerate(datos.values())
for x in grupo)
print("Sumas de cuadrados:")
print(f" SCT (Total): {SCT:.2f}")
print(f" SCTr (Entre grupos): {SCTr:.2f}")
print(f" SCR (Residual): {SCR:.2f}")
print()
# -----------------------------------------------------------------------------
# 4. CÁLCULO DE GRADOS DE LIBERTAD Y CUADRADOS MEDIOS
# -----------------------------------------------------------------------------
gl_Tr = I - 1 # Grados de libertad entre grupos
gl_R = N - I # Grados de libertad residual
gl_T = N - 1 # Grados de libertad total
# Cuadrados medios
S2_Tr = SCTr / gl_Tr # Varianza entre tratamientos
S2_R = SCR / gl_R # Varianza residual
print("Grados de libertad:")
print(f" Entre grupos: {gl_Tr}")
print(f" Residual: {gl_R}")
print(f" Total: {gl_T}")
print()
print("Cuadrados medios:")
print(f" S²_Tr (Entre): {S2_Tr:.2f}")
print(f" S²_R (Residual): {S2_R:.2f}")
print()
# -----------------------------------------------------------------------------
# 5. CÁLCULO DEL ESTADÍSTICO F
# -----------------------------------------------------------------------------
F_exp = S2_Tr / S2_R
print(f"Estadístico F experimental: {F_exp:.2f}")
# Valor crítico de F para α = 0.05
alpha = 0.05
F_critico = stats.f.ppf(1 - alpha, gl_Tr, gl_R)
print(f"Valor crítico F(0.05; {gl_Tr},{gl_R}): {F_critico:.2f}")
print()
# -----------------------------------------------------------------------------
# 6. DECISIÓN ESTADÍSTICA
# -----------------------------------------------------------------------------
if F_exp > F_critico:
decision = "Se RECHAZA H₀"
conclusion = "Existe variabilidad significativa entre los hornos"
else:
decision = "Se ACEPTA H₀"
conclusion = "No hay evidencia de variabilidad entre hornos"
print(f"Decisión: {decision}")
print(f"Conclusión: {conclusion}")
print()
# -----------------------------------------------------------------------------
# 7. ESTIMACIÓN DE COMPONENTES DE VARIANZA
# -----------------------------------------------------------------------------
# Estimador de la varianza del error
sigma2_est = S2_R
# Coeficiente para el caso no-equilibrado
suma_n2 = sum(n**2 for n in n_i)
coef = N * (I - 1) / (N**2 - suma_n2)
# Estimador de la varianza entre tratamientos
sigma2_tau_est = coef * (S2_Tr - S2_R)
# Varianza total estimada
sigma2_T_est = sigma2_tau_est + sigma2_est
print("Estimación de componentes de varianza:")
print(f" σ̂² (error): {sigma2_est:.2f}")
print(f" σ̂²_τ (entre hornos): {sigma2_tau_est:.2f}")
print(f" σ̂²_T (total): {sigma2_T_est:.2f}")
# Porcentajes de variabilidad
pct_entre = (sigma2_tau_est / sigma2_T_est) * 100
pct_dentro = (sigma2_est / sigma2_T_est) * 100
print(f"\nDistribución de la varianza:")
print(f" Variabilidad entre hornos: {pct_entre:.2f}%")
print(f" Variabilidad dentro de hornos: {pct_dentro:.2f}%")
Número de hornos (I): 3
Tamaños por nivel: [5, 4, 6]
Tamaño total (N): 15
Estadísticos descriptivos:
Horno_1: media = 95.00°C, n = 5
Horno_2: media = 82.60°C, n = 4
Horno_3: media = 81.11°C, n = 6
Media general: 86.00°C
Sumas de cuadrados:
SCT (Total): 1008.34
SCTr (Entre grupos): 594.53
SCR (Residual): 413.81
Grados de libertad:
Entre grupos: 2
Residual: 12
Total: 14
Cuadrados medios:
S²_Tr (Entre): 297.26
S²_R (Residual): 34.48
Estadístico F experimental: 8.62
Valor crítico F(0.05; 2,12): 3.89
Decisión: Se RECHAZA H₀
Conclusión: Existe variabilidad significativa entre los hornos
Estimación de componentes de varianza:
σ̂² (error): 34.48
σ̂²_τ (entre hornos): 53.26
σ̂²_T (total): 87.74
Distribución de la varianza:
Variabilidad entre hornos: 60.70%
Variabilidad dentro de hornos: 39.30%
| Fuente de variación | Suma de cuadrados | Grados de libertad | Cuadrados medios | F |
|---|---|---|---|---|
| Entre grupos | 594.53 | 2 | 297.26 | 8.62 |
| Dentro de grupos | 413.81 | 12 | 34.48 | - |
| Total | 1008.34 | 14 | - | - |
El análisis estadístico revela que el valor del estadístico de contraste (F = 8.62) excede considerablemente el valor crítico ($ F_{0.05;2,12} = 3.89 $), lo cual conduce al rechazo de la hipótesis nula. Por tanto, se concluye que existe variabilidad significativa en la temperatura entre los hornos de la forja.
La estimación de componentes de varianza indica que la varianza total de 87.74 se descompone en una parte atribuible a las diferencias entre hornos ($ \hat{\sigma}^2_\tau = 53.26 $) y otra procedente de la variabilidad dentro de ellos ($ \hat{\sigma}^2 = 34.48 $). El mayor peso relativo corresponde a la variación entre hornos (60.70%), lo cual sugiere que las diferencias sistemáticas entre hornos son la principal fuente de variabilidad en la temperatura observada. Desde una perspectiva práctica, este resultado tiene implicaciones importantes para el control de calidad del proceso de calentamiento.
Simplificar el análisis para el caso de datos balanceados con fórmulas directas.
En el modelo equilibrado o balanceado, el número de observaciones en cada nivel del factor es el mismo. Si se denota este valor común como $ n $, entonces el número total de observaciones es $ N = I \times n $. Esta simetría en el diseño simplifica considerablemente las expresiones matemáticas y los cálculos involucrados en el análisis.
Modelo Equilibrado: Diseño experimental en el que cada nivel del factor tiene exactamente $ n $ observaciones. El tamaño muestral total es $ N = I \times n $, donde $ I $ es el número de niveles del factor. Esta condición de balanceamiento facilita la estimación de componentes de varianza y mejora las propiedades estadísticas de los estimadores.
En el caso equilibrado, la esperanza de la varianza entre tratamientos se simplifica significativamente:
Esta simplificación se debe a que, con $ n_i = n $ para todo $ i $, el coeficiente que multiplica a $ \sigma^2_\tau $ se reduce a $ n $. Los estimadores de los componentes de varianza también se simplifican:
Desde el punto de vista práctico, el modelo equilibrado presenta varias ventajas importantes:
Una fábrica de textiles dispone de un gran número de telares. En principio, se supone que cada uno de ellos debe producir la misma cantidad de tela por unidad de tiempo. Para investigar esta suposición se seleccionan al azar cinco telares, y se mide la cantidad de tela producida en cinco ocasiones diferentes. El objetivo es determinar si todos los telares tienen el mismo rendimiento.
| Telar | Observaciones | ||||
|---|---|---|---|---|---|
| 1 | 14.0 | 14.1 | 14.2 | 14.0 | 14.1 |
| 2 | 13.9 | 13.8 | 13.9 | 14.0 | 14.0 |
| 3 | 14.1 | 14.2 | 14.1 | 14.0 | 13.9 |
| 4 | 13.6 | 13.8 | 14.0 | 13.9 | 13.7 |
| 5 | 13.8 | 13.6 | 13.9 | 13.8 | 14.0 |
# =============================================================================
# MODELO DE EFECTOS ALEATORIOS EQUILIBRADO
# Ejemplo: Análisis de rendimiento de telares en fábrica textil
# =============================================================================
import numpy as np
import scipy.stats as stats
# -----------------------------------------------------------------------------
# 1. DEFINICIÓN DE LOS DATOS (Diseño equilibrado: 5 telares × 5 obs)
# -----------------------------------------------------------------------------
datos = np.array([
[14.0, 14.1, 14.2, 14.0, 14.1], # Telar 1
[13.9, 13.8, 13.9, 14.0, 14.0], # Telar 2
[14.1, 14.2, 14.1, 14.0, 13.9], # Telar 3
[13.6, 13.8, 14.0, 13.9, 13.7], # Telar 4
[13.8, 13.6, 13.9, 13.8, 14.0] # Telar 5
])
# Dimensiones del diseño
I, n = datos.shape # I = número de telares, n = obs por telar
N = I * n # Tamaño muestral total
print(f"Dimensiones del diseño:")
print(f" Número de telares (I): {I}")
print(f" Observaciones por telar (n): {n}")
print(f" Total de observaciones (N): {N}")
print()
# -----------------------------------------------------------------------------
# 2. ESTADÍSTICOS DESCRIPTIVOS POR GRUPO
# -----------------------------------------------------------------------------
medias_grupo = np.mean(datos, axis=1)
media_general = np.mean(datos)
print("Estadísticos por telar:")
for i in range(I):
print(f" Telar {i+1}: media = {medias_grupo[i]:.2f}, "
f"desv. típ. = {np.std(datos[i], ddof=1):.4f}")
print(f" Media general: {media_general:.2f}")
print()
# -----------------------------------------------------------------------------
# 3. CÁLCULO DE SUMAS DE CUADRADOS
# -----------------------------------------------------------------------------
# Suma de cuadrados total
SCT = np.sum((datos - media_general)**2)
# Suma de cuadrados entre grupos
SCTr = n * np.sum((medias_grupo - media_general)**2)
# Suma de cuadrados residual (dentro de grupos)
SCR = 0
for i in range(I):
SCR += np.sum((datos[i] - medias_grupo[i])**2)
print("Análisis de varianza:")
print(f" SCT (Total): {SCT:.4f}")
print(f" SCTr (Entre): {SCTr:.4f}")
print(f" SCR (Residual): {SCR:.4f}")
print()
# -----------------------------------------------------------------------------
# 4. CUADRADOS MEDIOS Y ESTADÍSTICO F
# -----------------------------------------------------------------------------
gl_Tr = I - 1 # Grados de libertad entre grupos
gl_R = N - I # Grados de libertad residual
S2_Tr = SCTr / gl_Tr # Cuadrado medio entre
S2_R = SCR / gl_R # Cuadrado medio residual
F_exp = S2_Tr / S2_R
print("Cuadrados medios:")
print(f" S²_Tr: {S2_Tr:.4f}")
print(f" S²_R: {S2_R:.4f}")
print(f" F experimental: {F_exp:.2f}")
print()
# -----------------------------------------------------------------------------
# 5. CONTRASTE DE HIPÓTESIS
# -----------------------------------------------------------------------------
alpha = 0.05
F_critico = stats.f.ppf(1 - alpha, gl_Tr, gl_R)
p_valor = 1 - stats.f.cdf(F_exp, gl_Tr, gl_R)
print(f"Contraste al nivel α = {alpha}:")
print(f" F crítico: {F_critico:.2f}")
print(f" p-valor: {p_valor:.4f}")
if F_exp > F_critico:
print(" → Se RECHAZA H₀: Los telares no tienen el mismo rendimiento")
else:
print(" → Se ACEPTA H₀: No hay evidencia de diferencias")
print()
# -----------------------------------------------------------------------------
# 6. ESTIMACIÓN DE COMPONENTES DE VARIANZA (Caso equilibrado)
# -----------------------------------------------------------------------------
# Fórmulas simplificadas para diseño equilibrado
sigma2_est = S2_R # Varianza del error
sigma2_tau_est = (S2_Tr - S2_R) / n # Varianza entre tratamientos
sigma2_T_est = sigma2_tau_est + sigma2_est
print("Componentes de varianza estimados:")
print(f" σ̂² (error): {sigma2_est:.4f}")
print(f" σ̂²_τ (entre telares): {sigma2_tau_est:.4f}")
print(f" σ̂²_T (total): {sigma2_T_est:.4f}")
# Porcentajes de contribución
pct_entre = (sigma2_tau_est / sigma2_T_est) * 100
pct_dentro = (sigma2_est / sigma2_T_est) * 100
print(f"\nDistribución porcentual:")
print(f" Variabilidad entre telares: {pct_entre:.2f}%")
print(f" Variabilidad dentro de telares: {pct_dentro:.2f}%")
Dimensiones del diseño:
Número de telares (I): 5
Observaciones por telar (n): 5
Total de observaciones (N): 25
Estadísticos por telar:
Telar 1: media = 14.08, desv. típ. = 0.0837
Telar 2: media = 13.92, desv. típ. = 0.0837
Telar 3: media = 14.06, desv. típ. = 0.1225
Telar 4: media = 13.80, desv. típ. = 0.1414
Telar 5: media = 13.82, desv. típ. = 0.1483
Media general: 13.94
Análisis de varianza:
SCT (Total): 0.6376
SCTr (Entre): 0.3416
SCR (Residual): 0.2960
Cuadrados medios:
S²_Tr: 0.0854
S²_R: 0.0148
F experimental: 5.77
Contraste al nivel α = 0.05:
F crítico: 2.87
p-valor: 0.0030
→ Se RECHAZA H₀: Los telares no tienen el mismo rendimiento
Componentes de varianza estimados:
σ̂² (error): 0.0148
σ̂²_τ (entre telares): 0.0141
σ̂²_T (total): 0.0289
Distribución porcentual:
Variabilidad entre telares: 48.82%
Variabilidad dentro de telares: 51.18%
| Fuente de variación | Suma de cuadrados | Grados de libertad | Cuadrados medios | F |
|---|---|---|---|---|
| Entre grupos | 0.3416 | 4 | 0.0854 | 5.77 |
| Dentro de grupos | 0.2960 | 20 | 0.0148 | - |
| Total | 0.6376 | 24 | - | - |
El estadístico F experimental (5.77) supera ampliamente el valor crítico ($ F_{0.05;4,20} = 2.87 $), lo que conduce al rechazo de la hipótesis nula de que todos los telares tienen el mismo rendimiento. El p-valor asociado (0.0030) confirma la significancia estadística del resultado.
La estimación de componentes de varianza revela que la varianza total (0.0289) se distribuye de manera prácticamente equilibrada entre la variabilidad atribuible a diferencias entre telares (48.82%) y la variabilidad dentro de ellos (51.18%). Este resultado sugiere que, aunque existen diferencias sistemáticas entre los telares que deben ser atendidas desde el punto de vista del control de calidad, también hay una componente importante de variabilidad aleatoria que podría deberse a factores no controlados del proceso productivo.
Comparar las propiedades de los casos equilibrado y no-equilibrado.
| Expresión | Caso No-Equilibrado | Caso Equilibrado |
|---|---|---|
| Tamaño muestral | $ N = \sum n_i $ | $ N = I \times n $ |
| $ E(S^2_{Tr}) $ | $ [(N^2 - \sum n_i^2)/N(I-1)]\sigma^2_\tau + \sigma^2 $ | $ n\sigma^2_\tau + \sigma^2 $ |
| $ E(S^2_R) $ | $ \sigma^2 $ | $ \sigma^2 $ |
| Estimador de $ \sigma^2 $ | $ S^2_R $ | $ S^2_R $ |
| Estimador de $ \sigma^2_\tau $ | $ [N(I-1)/(N^2-\sum n_i^2)](S^2_{Tr}-S^2_R) $ | $ (S^2_{Tr} - S^2_R)/n $ |
| Grados de libertad (entre) | $ I - 1 $ | $ I - 1 $ |
| Grados de libertad (residual) | $ N - I $ | $ N - I = I(n-1) $ |
Practicar con ejercicios de aplicación.
Contexto: Una universidad desea evaluar si existe variabilidad significativa en el rendimiento académico de los estudiantes entre diferentes profesores que imparten la misma asignatura. Se seleccionan aleatoriamente 4 profesores de un departamento grande, y se registran las calificaciones finales de varios estudiantes de cada profesor.
| Profesor | Calificaciones | ||||
|---|---|---|---|---|---|
| A | 78 | 82 | 85 | 79 | - |
| B | 88 | 91 | 87 | 89 | 90 |
| C | 72 | 75 | 78 | - | - |
| D | 83 | 85 | 80 | 82 | 84 |
Se solicita:
Paso 1: Se trata de un modelo de efectos aleatorios no-equilibrado, ya que los profesores fueron seleccionados aleatoriamente de una población mayor y el número de estudiantes por profesor varía.
Paso 2: Valores preliminares:
Paso 3: El lector debe completar los cálculos de SCT, SCTr, SCR y determinar la decisión estadística.
Contexto: Una empresa farmacéutica tiene múltiples líneas de producción para el mismo medicamento. Se desea determinar si existe variabilidad significativa en el contenido de principio activo entre las diferentes líneas. Se seleccionan aleatoriamente 6 líneas de producción y se toman 4 mediciones del contenido de principio activo (en mg) de cada línea.
| Línea | Mediciones | |||
|---|---|---|---|---|
| 1 | 502 | 498 | 501 | 499 |
| 2 | 495 | 497 | 496 | 498 |
| 3 | 508 | 510 | 507 | 509 |
| 4 | 500 | 502 | 499 | 501 |
| 5 | 496 | 498 | 495 | 497 |
| 6 | 504 | 506 | 503 | 505 |
Se solicita:
Paso 1: Es un diseño equilibrado de efectos aleatorios porque: (i) las líneas fueron seleccionadas aleatoriamente, y (ii) cada línea tiene exactamente 4 observaciones.
Paso 2: Estructura del código Python:
# Diseño equilibrado: I=6 líneas, n=4 obs/línea, N=24
datos = np.array([
[502, 498, 501, 499],
[495, 497, 496, 498],
[508, 510, 507, 509],
[500, 502, 499, 501],
[496, 498, 495, 497],
[504, 506, 503, 505]
])
# Fórmulas simplificadas para caso equilibrado
sigma2_tau_est = (S2_Tr - S2_R) / n
Paso 3: El lector debe calcular SCT, SCTr, SCR, los cuadrados medios, el estadístico F y comparar con $ F_{0.05;5,18} $.
Paso 4: Interpretación pendiente: ¿Qué porcentaje de la variabilidad se debe a diferencias entre líneas? ¿Es aceptable desde el punto de vista del control de calidad?
Consultar las fuentes bibliográficas.