Neue Spalte basierend auf den studentisierten Residuenausreißern - falls diese fehlen, erstellen Sie eine Kopier- und Einfügen-OriginalspalteIch habe meine studentisierten Residuen gespeichert und gruppiert und ein Screening auf Ausreißer wie folgt ausgeführt:
Explore Outliers(
Y( Column Group( "Studentized Group" ) ),
Robust Fit Outliers( K Sigma( 2.5 ), Huber( 1 ) )
);
obj << Change to Missing(
Wenn nun welche in den studentisierten Spalten fehlen, muss ich aus dieser Y(Variable) eine neue Spalte erstellen und alle Originaldaten ohne die Zeile verwenden, die den im studentisierten Residuum gefundenen Ausreißer darstellt.
Es gibt nicht nur eine Variable, es können mehrere sein. Dann muss es allgemein sein.
Ich stelle mir vor, dass es sich dabei wahrscheinlich um eine Formel/ein Skript handelt, das die Zeichenfolge nach dem „Studentized Residual“ prüft, um dieselbe Spalte mit demselben Namen zu finden, mit der eine neue Spalte erstellt wird, und die Spalte ersetzt, in der die Spalte/Zeile des studentisierten Residuums fehlt.
Automatisierung und SkriptingBetreff: Neue Spalte basierend auf den studentisierten Residuenausreißern – wenn sie fehlen, erstellen Sie eine Kopier- und Einfügen-OriginalspalteHallo @Bmllnn ,
Die Plattform ermöglicht Ihnen die Erstellung eines Skripts, mit dem Sie eine Spalte „Aussortiert“ erstellen können, in der die Werte entfernt werden, die Ausreißer in einer neuen Formelspalte sind.
Ich verwende den Datensatz „Diamond“ im Beispieldatenordner als Beispiel. Wenn ich die Plattform „Robust Fit Outlier“ ausführe, kann ich auf „Formelspalte“ klicken und es wird eine neue Spalte erstellt, aus der die Ausreißer entfernt wurden.

Sie können im Diamanten-Datensatz unten sehen, dass die Werte entfernt wurden:

Wenn Sie ein Skript dafür erstellen möchten, können Sie das folgendermaßen tun (ich habe eine Menüoption zum Auswählen der Spalte hinzugefügt, um es flexibler zu machen):
dt=current data table();
cols=dt<<GET column="" names=""></GET>
<BR />
<BR />Betreff: Neue Spalte basierend auf den studentisierten Residuenausreißern – wenn sie fehlen, erstellen Sie eine Kopier- und Einfügen-OriginalspalteHallo,
Danke für Ihre Antwort. Was ich derzeit habe, ist Folgendes:
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 )} )}
)
)
);Das funktioniert alles. Von hier aus muss ich dann die Ausreißer auswählen und die WENN-Formel in einer neuen Spalte für den studentisierten Restwert ausführen (wie Sie erwähnt haben). Danach muss ich jedoch eine neue Spalte für die Parameter erstellen, die mit dem Ausreißer gefunden wurden, um sie im realen Datensatz in eine Spalte ohne Ausreißer zu ändern.
Betreff: Neue Spalte basierend auf den studentisierten Residuenausreißern – wenn sie fehlen, erstellen Sie eine Kopier- und Einfügen-Originalspalte@Bmllnn ,
Wenn ich das richtig verstehe, verfügen Sie über eine Gruppe von Spalten, bei denen es sich um studentisierte Residuen aus mehreren Modellen handelt. Sie möchten die Robust-Fit-Ausreißer ausführen und dann Kopien der einzelnen studentisierten Spalten erstellen, jedoch ohne die Ausreißerzeilen aus jeder Spalte?
In diesem Fall müssen Sie nur auf die „Formel-Spalte“ klicken und die neuen Spalten werden für Sie generiert. Alternativ können Sie das JSL wie unten beschrieben verwenden:
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