Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

ANOVA con efectos aleatorios

Este ejemplo muestra cómo utilizar para ajustar los modelos donde los niveles de un factor representan una selección aleatoria de un conjunto más grande (infinito) de posibles niveles.anovan

En un modelo ANOVA ordinario, cada variable de agrupamiento representa un factor fijo. Los niveles de ese factor son un conjunto fijo de valores. El objetivo es determinar si los diferentes niveles de factores conducen a diferentes valores de respuesta.

Configure el modelo

Cargue los datos de ejemplo.

load mileage

La función solo funciona con datos equilibrados y deduce los valores de las variables de agrupamiento de los números de fila y columna de la matriz de entrada.anova2 La función, por otro lado, requiere crear explícitamente vectores de valores de variable de agrupamiento.anovan Cree estos vectores de la siguiente manera.

Cree una matriz que indique la fábrica para cada valor en millaje. Esta matriz es 1 para la primera columna, 2 para la segunda y 3 para la tercera.

factory  = repmat(1:3,6,1);

Cree una matriz que indique el modelo de vehículo para cada valor de kilometraje. Esta matriz es 1 para las tres primeras filas de kilometraje y 2 para las tres filas restantes.

carmod = [ones(3,3); 2*ones(3,3)];

Convierta estas matrices en vectores y mostrarlas.

mileage = mileage(:); factory = factory(:); carmod = carmod(:); [mileage factory carmod]
ans = 18×3

   33.3000    1.0000    1.0000
   33.4000    1.0000    1.0000
   32.9000    1.0000    1.0000
   32.6000    1.0000    2.0000
   32.5000    1.0000    2.0000
   33.0000    1.0000    2.0000
   34.5000    2.0000    1.0000
   34.8000    2.0000    1.0000
   33.8000    2.0000    1.0000
   33.4000    2.0000    2.0000
      ⋮

Ajuste un modelo de efectos aleatorios

Supongamos que estás estudiando algunas fábricas pero quieres información sobre lo que pasaría si construyes estos mismos modelos de coche en una fábrica diferente, ya sea uno que ya tienes u otro que podrías construir. Para obtener esta información, ajuste el modelo de análisis de varianza, especificando un modelo que incluya un término de interacción y que el factor de fábrica sea aleatorio.

[pvals,tbl,stats] = anovan(mileage, {factory carmod}, ...  'model',2, 'random',1,'varnames',{'Factory' 'Car Model'});

En la versión de efectos fijos de este ajuste, que se obtiene omitiendo las entradas en el código anterior, el efecto del modelo de coche es significativo, con un valor de 0,0039.'random',1p Pero en este ejemplo, que tiene en cuenta la variación aleatoria del efecto de la variable de una fábrica a otra, el efecto sigue siendo significativo, pero con un valor más alto de 0,0136.'Car Model'p

F-Statistics para modelos con efectos aleatorios

La-estadística en un modelo que tiene efectos aleatorios se define de manera diferente que en un modelo que tiene todos los efectos fijos.F En el modelo de efectos fijos, calcule la-estadística para cualquier término tomando la proporción del cuadrado medio para ese término con el cuadrado medio para el error.F En un modelo de efectos aleatorios, sin embargo, algunas-estadísticas utilizan un cuadrado medio diferente en el denominador.F

En el ejemplo descrito en, el efecto de la variable podría variar entre los modelos de coche.Configure el modelo'Factory' En este caso, el cuadrado medio de la interacción toma el lugar del cuadrado medio del error en el-estadístico.F

Busque la-estadística.F

F = 26.6756 / 0.02
F = 1.3338e+03 

Los grados de libertad para la estadística son los grados de libertad para el numerador (2) y el denominador (2) cuadrados medio.

Busque el valor-.p

pval = 1 - fcdf(F,2,2)
pval = 7.4919e-04 

Con efectos aleatorios, el valor esperado de cada cuadrado medio depende no sólo de la varianza del término de error, sino también de las varianzas aportadas por los efectos aleatorios. Puede ver estas dependencias escribiendo los valores esperados como combinaciones lineales de contribuciones de los distintos términos del modelo.

Encuentra los coeficientes de estas combinaciones lineales.

stats.ems
ans = 4×4

    6.0000    0.0000    3.0000    1.0000
    0.0000    9.0000    3.0000    1.0000
    0.0000    0.0000    3.0000    1.0000
         0         0         0    1.0000

Esto devuelve el campo de la estructura.emsstats

Mostrar representaciones de texto de las combinaciones lineales.

stats.txtems
ans = 4x1 cell array
    {'6*V(Factory)+3*V(Factory*Car Model)+V(Error)'  }
    {'9*Q(Car Model)+3*V(Factory*Car Model)+V(Error)'}
    {'3*V(Factory*Car Model)+V(Error)'               }
    {'V(Error)'                                      }

El valor esperado para el cuadrado medio debido al modelo de coche (segundo término) incluye las contribuciones de una función cuadrática de los efectos del modelo de coche, más tres veces la varianza del efecto del término de interacción, más la varianza del término de error. Tenga en cuenta que si los efectos del modelo de coche eran todos cero, la expresión se reduciría al cuadrado medio esperado para el tercer término (el término de interacción). Es por eso que la-estadística para el efecto de modelo de coche utiliza el cuadrado medio de interacción en el denominador.F

En algunos casos no hay un solo término cuyo valor esperado coincida con el requerido para el denominador de la-estadística.F En ese caso, el denominador es una combinación lineal de cuadrados de media. La estructura stats contiene campos que dan las definiciones de los denominadores para cada-estadística.F El campo,, contiene una representación de texto, y el campo contiene una matriz que define una combinación lineal de las desviaciones de los términos en el modelo.txtdenomstats.txtdenomdenom Para los modelos equilibrados como este, la matriz,, contiene ceros y unos, porque el denominador es sólo un cuadrado medio de un solo término.denomstats.denom

Visualice el campo.txtdenom

stats.txtdenom
ans = 3x1 cell array
    {'MS(Factory*Car Model)'}
    {'MS(Factory*Car Model)'}
    {'MS(Error)'            }

Visualice el campo.denom

stats.denom
ans = 3×3

    0.0000    1.0000         0
    0.0000    1.0000   -0.0000
   -0.0000    0.0000    1.0000

Componentes de varianza

Para el modelo descrito en, considerar el kilometraje para un coche en particular de un modelo en particular hecho en una fábrica aleatoria.Configure el modelo La varianza de ese coche es la suma de los componentes, o contribuciones, una de cada uno de los términos aleatorios.

Mostrar los nombres de los términos aleatorios.

stats.rtnames
ans = 3x1 cell array
    {'Factory'          }
    {'Factory*Car Model'}
    {'Error'            }

No conoce las desviaciones, pero puede calcularlas a partir de los datos. Recuerde que el campo de la estructura expresa el valor esperado del cuadrado medio de cada término como una combinación lineal de desviaciones desconocidas para términos aleatorios y formas cuadráticas desconocidas para términos fijos.emsstats Si se toman las expresiones cuadradas medias esperadas para los términos aleatorios y se equipara los valores esperados a los cuadrados media calculados, se obtiene un sistema de ecuaciones que se pueden resolver para las desviaciones desconocidas. Estas soluciones son las estimaciones de componentes de desviación.

Visualice la estimación del componente de desviación para cada término.

stats.varest
ans = 3×1

    4.4426
   -0.0313
    0.1139

En algunas condiciones, la variabilidad atribuida a un término es inusualmente baja, y la estimación del componente de varianza de ese término es negativa. En esos casos, es común establecer la estimación en cero, que puede hacer, por ejemplo, para crear un gráfico de barras de los componentes.

Cree un gráfico de barras de los componentes.

bar(max(0,stats.varest))

gca.xtick = 1:3; gca.xticklabel = stats.rtnames;

También puede calcular los límites de confianza para la estimación de desviación. La función lo hace calculando los límites de confianza para los cuadrados medio esperados de la varianza, y encontrando los límites inferiores y superiores en cada componente de la varianza que contiene todos estos límites.anovan Este procedimiento conduce a un conjunto de límites que es conservador para los datos equilibrados. (Es decir, 95% los límites de confianza tendrán una probabilidad de al menos 95% de contener las desviaciones verdaderas si el número de observaciones para cada combinación de variables de agrupamiento es el mismo.) Para los datos desequilibrados, se trata de aproximaciones que no se garantiza que sean conservadoras.

Visualice las estimaciones de desviaciones y los límites de confianza para las estimaciones de desviación de cada componente.

[{'Term' 'Estimate' 'Lower' 'Upper'};  stats.rtnames, num2cell([stats.varest stats.varci])]
ans = 4x4 cell array
    {'Term'             }    {'Estimate'}    {'Lower' }    {'Upper'   }
    {'Factory'          }    {[  4.4426]}    {[1.0736]}    {[175.6038]}
    {'Factory*Car Model'}    {[ -0.0313]}    {[   NaN]}    {[     NaN]}
    {'Error'            }    {[  0.1139]}    {[0.0586]}    {[  0.3103]}