mbc

mbcFit

Descripción

Realiza clustering basado en modelos utilizando el algoritmo EM (Expectation-Maximization). Esta acción ajusta modelos de mezcla gaussiana a los datos, permitiendo la identificación de subgrupos o clústeres latentes. Es útil para la segmentación de datos, la detección de anomalías y el análisis exploratorio de datos.

mbc.mbcFit { attributes={{name="nombre-variable", format="cadena", formattedLength=entero, label="cadena", nfd=entero, nfl=entero}, ...}, convergenceTest="AITKEN"|"LOGL", covStruct="ALL"|"ALLGMIX"|"ALLPGMIX"|"CCC"|"CCU"|"CUC"|"CUU"|"EEE"|"EEI"|"EEV"|"EII"|"EVI"|"EVV"|"UCC"|"UCU"|"UUC"|"UUU"|"VII"|"VVI"|"VVV"|{"ALL", "ALLGMIX", ...}, criterion="AIC"|"AICC"|"BIC"|"LOGL"|"NONE", display={caseSensitive=TRUE|FALSE, exclude=TRUE|FALSE, excludeAll=TRUE|FALSE, keyIsPath=TRUE|FALSE, names={"cadena-1", ...}, pathType="LABEL"|"NAME", traceNames=TRUE|FALSE}, emEpsilon=doble, factorDetails=TRUE|FALSE, groupByLimit=entero-64-bits, initMethod="KMEANS"|"RANDOM", itHist="DETAILS"|"NONE"|"SUMMARY", maxIter=entero, model={depVars={{name="nombre-variable"}, ...}, effects={{interaction="BAR"|"CROSS"|"NONE", maxInteract=entero, nest={"cadena-1", ...}, vars={"cadena-1", ...}}, ...}}, nClusters=entero-64-bits|{entero-64-bits-1, ...}, nFactors=entero-64-bits|{entero-64-bits-1, ...}, noise="N"|"Y"|{"N", "Y"}, output={allstats=TRUE|FALSE, casOut={caslib="cadena", ...}, copyVars="ALL"|"ALL_MODEL"|"ALL_NUMERIC"|{"nombre-variable-1", ...}, currClus="cadena", loglik="cadena", maxpost="cadena", nextClus="cadena", pred="cadena", role="cadena"}, outputTables={groupByVarsRaw=TRUE|FALSE, includeAll=TRUE|FALSE, names={"cadena-1", ...}|{clave-1={tabla-cas-salida-1}, ...}, repeated=TRUE|FALSE, replace=TRUE|FALSE}, parameterEpsilon=doble, seed=entero, singularEpsilon=doble, store={caslib="cadena", label="cadena", lifetime=entero-64-bits, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="nombre-tabla", promote=TRUE|FALSE, replace=TRUE|FALSE, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE"}, table={caslib="cadena", ...}, technique="CEM"|"EM", topModels=entero-64-bits };
Parámetros
ParámetroDescripción
tableEspecifica la tabla de datos de entrada que contiene las variables a analizar.
modelDefine el modelo a ajustar, incluyendo las variables de análisis (efectos).
effectsDentro de 'model', especifica las variables numéricas que se utilizarán para el clustering.
nClustersEspecifica el número de clústeres gaussianos a ajustar. Puede ser un solo valor o una lista de valores para probar múltiples modelos.
covStructEspecifica el/los modelo(s) de estructura de covarianza a utilizar. 'EEE' (elipsoidal, igual volumen, igual forma) es una opción común.
criterionEspecifica el criterio de selección del modelo (por ejemplo, BIC, AIC) para elegir el mejor modelo cuando se prueban múltiples configuraciones.
noiseEspecifica si se debe incluir un clúster de ruido para capturar valores atípicos que no pertenecen a ningún clúster principal.
seedEspecifica la semilla aleatoria para la reproducibilidad, especialmente cuando se utiliza un método de inicialización aleatorio.
outputDefine la tabla de salida donde se almacenarán los resultados por observación, como las probabilidades de pertenencia al clúster.
storeGuarda el modelo ajustado en una tabla de almacenamiento de CAS para su uso posterior en la puntuación de nuevos datos con la acción mbcScore.
maxIterEstablece el número máximo de iteraciones para el algoritmo EM.
emEpsilonDefine el criterio de convergencia para el logaritmo de la verosimilitud en el algoritmo EM.
Creación de Datos de Muestra

Este bloque de código crea una tabla en CAS llamada 'sample_data' con tres variables numéricas. Estos datos se utilizarán para realizar el clustering basado en modelos.

¡Copiado!
1DATA mycas.sample_data;
2 DO i = 1 to 100;
3 x1 = rand('NORMAL', 10, 2);
4 x2 = rand('NORMAL', 20, 5);
5 x3 = rand('NORMAL', 5, 1);
6 OUTPUT;
7 END;
8 DO i = 1 to 100;
9 x1 = rand('NORMAL', 30, 3);
10 x2 = rand('NORMAL', 10, 2);
11 x3 = rand('NORMAL', 15, 3);
12 OUTPUT;
13 END;
14RUN;

Ejemplos

Este ejemplo realiza un clustering basado en modelos en la tabla 'sample_data', buscando 3 clústeres con una estructura de covarianza EEE (elipsoidal, igual volumen y forma).

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 mbc.mbcFit RESULT=res /
3 TABLE={name='sample_data'},
4 model={effects={{vars={'x1', 'x2', 'x3'}}},
5 nClusters=3,
6 covStruct='EEE',
7 seed=12345;
8RUN;
9PRINT res;
10QUIT;
Resultado :
Una tabla de resultados que muestra el resumen del modelo, las estimaciones de los parámetros y otras estadísticas para el modelo de 3 clústeres ajustado.

Este ejemplo prueba un rango de número de clústeres (de 2 a 4) y múltiples estructuras de covarianza (EEE, EEV, VVV). Utiliza el Criterio de Información Bayesiano (BIC) para seleccionar el mejor modelo. El modelo final se guarda en una tabla de almacenamiento llamada 'mbc_store' para su uso posterior en la puntuación.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 mbc.mbcFit RESULT=res /
3 TABLE={name='sample_data'},
4 model={effects={{vars={'x1', 'x2', 'x3'}}},
5 nClusters={2, 3, 4},
6 covStruct={'EEE', 'EEV', 'VVV'},
7 criterion='BIC',
8 noise='Y',
9 seed=12345,
10 OUTPUT={casOut={name='mbc_output', replace=true}, copyVars={'x1', 'x2', 'x3'}, maxpost='Cluster'},
11 store={name='mbc_store', replace=true};
12RUN;
13PRINT res.ModelInfo;
14PRINT res.TopModels;
15QUIT;
Resultado :
Los resultados incluirán una tabla 'TopModels' que clasifica los modelos probados según el BIC. El mejor modelo (el que tiene el BIC más bajo) se utilizará para generar la tabla de salida 'mbc_output' y se guardará en 'mbc_store'.

FAQ

¿Para qué sirve la acción mbc.mbcFit?
¿Qué especifica el parámetro 'table'?
¿Cómo se definen las variables para el análisis en el modelo?
¿Es posible especificar el número de clústeres a buscar?
¿Qué controla el parámetro 'covStruct'?
¿Qué criterio se utiliza por defecto para la selección del mejor modelo?
¿Se puede incluir un clúster para el ruido o los valores atípicos?
¿Cómo puedo guardar el modelo resultante para usarlo después?