Guardé mis residuos estudentizados y los agrupé, ejecuté un análisis de valores atípicos como se muestra a continuación:
Explore Outliers(
Y( Column Group( "Studentized Group" ) ),
Robust Fit Outliers( K Sigma( 2.5 ), Huber( 1 ) )
);
obj << Change to Missing(
Ahora, si falta alguno en las columnas estudentizadas, necesito crear una nueva columna a partir de esa Y(variable) y usar todos los datos originales sin esa fila que es el valor atípico encontrado en el residuo estudentizado.
No hay una sola variable, pueden ser muchas. Entonces debe ser general.
Me imagino que probablemente sea una fórmula/script que verifica la cadena después de "residuo studentizado" para encontrar la misma columna que tiene el mismo nombre que creará una nueva columna y cambiará la columna/fila que falta en la residual studentizada.
Hola @Bmllnn ,
La plataforma le permitirá crear un script que puede crear una columna 'Culled' que elimina los valores que son atípicos en una nueva columna de fórmula.
Estoy usando el conjunto de datos 'Diamante' en la carpeta de datos de muestra como ejemplo, si ejecuto la plataforma Robust Fit Outlier, puedo presionar 'Columna de fórmula' y creará una nueva columna que tiene los valores atípicos eliminados.

Puedes ver en el conjunto de datos de diamantes a continuación que se han eliminado los valores:

Si quieres programarlo, puedes hacerlo así (agregué una opción de menú para seleccionar la columna para que sea más flexible):
dt=current data table();
cols=dt<<GET column="" names=""></GET>
<BR />
<BR />Hola,
Gracias por tu respuesta. Lo que tengo actualmente es esto:
obj << Studentized Residuals;
dt << Clear Selection;
colList = dt << Get Column Names( String );
For( i = 1, i <= N Cols( dt ), i++,
If( Contains( colList[i], "Studentized" ),
Column( colList[i] ) << Set Selected( 1 )
)
);
dt << group columns("Studentized Group");
// ANOTHER script
Names Default To Here(1);
dt=Current Data Table();
dt << Explore Outliers(
Y( Column Group("Studentized Group" ) ),
Robust Fit Outliers( K Sigma( 2.5 ), Huber( 1 ) ),
SendToReport(
Dispatch( {"Robust Fit Outliers"}, "", TabListBox, {Set Selected( 2 )} ),
Dispatch( {"Robust Fit Outliers"}, "", Tab Page Box( 2 ),
{Title( "Outliers by Cell" )}
),
Dispatch( {"Robust Fit Outliers"}, "", List Box( 9 ),
{Padding( {Left( 12 ), Top( 0 ), Right( 0 ), Bottom( 0 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", TextBox,
{Padding( {Left( 2 ), Top( 6 ), Right( 0 ), Bottom( 8 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", Panel Box( 3 ),
{Padding( {Left( 0 ), Top( 0 ), Right( 12 ), Bottom( 0 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", Lineup Box( 3 ), {Spacing( 1 )} ),
Dispatch( {"Robust Fit Outliers"}, "", Button Box( 11 ),
{Margin( {Left( 1 ), Top( 1 ), Right( 1 ), Bottom( 1 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", Button Box( 12 ),
{Margin( {Left( 1 ), Top( 1 ), Right( 1 ), Bottom( 1 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", Lineup Box( 4 ), {Spacing( 1 )} ),
Dispatch( {"Robust Fit Outliers"}, "", Button Box( 13 ),
{Margin( {Left( 1 ), Top( 1 ), Right( 1 ), Bottom( 1 )} )}
),
Dispatch( {"Robust Fit Outliers"}, "", Button Box( 14 ),
{Margin( {Left( 1 ), Top( 1 ), Right( 1 ), Bottom( 1 )} )}
)
)
);Todo esto funciona. A partir de aquí, tengo que seleccionar los valores atípicos y hacer la fórmula SI en una nueva columna para el residuo estudentizado (como mencionaste). Sin embargo, después tengo que crear una nueva columna para los parámetros que se encontraron con el valor atípico para cambiarlo a una columna sin valores atípicos en el conjunto de datos reales.
@Bmllnn ,
Si entiendo correctamente, tienes un grupo de columnas que son residuos estudentizados de varios modelos, ¿quieres ejecutar los valores atípicos de ajuste robusto y luego crear copias de cada una de las columnas estudentizadas individuales, pero con las filas de valores atípicos eliminadas para cada columna?
Si es así, solo necesita hacer clic en "Columna de fórmula" y generará las nuevas columnas para usted, o usar el JSL como se muestra a continuación:
Names Default to Here(1);
dt=current data table();
colList = dt << Get Column Names( String );
For( i = 1, i <= N Cols( dt ), i++,
If( Contains( colList[i], "Studentized" ),
Column( colList[i] ) << Set Selected( 1 )
)
);
dt << group columns("Studentized Group");
//Run the outliers
obj=Explore Outliers(
Y( Column Group( "Studentized Group" ) ),
);
obj<< Robust Fit Outliers( K Sigma( 2.5 ), Huber( 1 ) );//run the robust fit
wait(2);//wait to allow time for platform to run and perform calculations
obj<< Formula Columns( Suffix( "Culled" ) );//Create each column from the original studentised, with outliers removed