J'ai sauvegardé mes résidus studentisés et les ai regroupés, puis j'ai exécuté un filtrage des valeurs aberrantes comme ci-dessous :
Explore Outliers(
Y( Column Group( "Studentized Group" ) ),
Robust Fit Outliers( K Sigma( 2.5 ), Huber( 1 ) )
);
obj << Change to Missing(
Maintenant, s'il manque des données dans les colonnes studentisées, je dois créer une nouvelle colonne à partir de cette Y (variable) en utilisant toutes les données d'origine sans cette ligne qui est la valeur aberrante trouvée sur le résidu studentisé.
Il n'y a pas qu'une seule variable, il peut y en avoir plusieurs. Il faut alors qu'elle soit générale.
J'imagine qu'il s'agit probablement d'une formule/d'un script qui vérifie la chaîne après le « résidus étudiant » pour trouver la même colonne qui porte le même nom et qui créera une nouvelle colonne avec et changera celle qui manque à la colonne/ligne résiduelle étudiant.
Salut @Bmllnn ,
La plateforme vous permettra de créer un script capable de créer une colonne « Culled » qui supprime les valeurs aberrantes dans une nouvelle colonne de formule.
J'utilise l'ensemble de données « Diamond » dans le dossier de données d'exemple comme exemple. Si j'exécute la plate-forme Robust Fit Outlier, je peux appuyer sur « Formula Column » et cela créera une nouvelle colonne dans laquelle les valeurs aberrantes seront supprimées.

Vous pouvez voir dans l'ensemble de données de diamants ci-dessous que les valeurs ont été supprimées :

Si vous souhaitez créer un script, vous pouvez le faire comme ceci (j'ai ajouté une option de menu pour choisir la colonne pour la rendre plus flexible) :
dt=current data table();
cols=dt<<GET column="" names=""></GET>
<BR />
<BR />Bonjour,
Merci pour votre réponse. Ce que j'ai actuellement, c'est ceci :
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 )} )}
)
)
);Tout cela fonctionne. Ensuite, à partir de là, je dois sélectionner les valeurs aberrantes et exécuter la formule IF dans une nouvelle colonne pour le résidu studentisé (comme vous l'avez mentionné). Cependant, après cela, je dois créer une nouvelle colonne pour les paramètres qui ont été trouvés avec la valeur aberrante pour la changer en une colonne sans valeur aberrante dans l'ensemble de données réel.
@Bmllnn ,
Si je comprends bien, vous avez un groupe de colonnes qui sont des résidus studentisés provenant de plusieurs modèles, vous souhaitez exécuter les valeurs aberrantes Robust Fit, puis créer des copies de chacune des colonnes studentisées individuelles, mais avec les lignes aberrantes supprimées pour chaque colonne ?
Si tel est le cas, il vous suffit de cliquer sur « Colonne de formule » et les nouvelles colonnes seront générées pour vous, ou d'utiliser le JSL comme ci-dessous :
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