Hallo,
Hat jemand eine Referenz darüber, wie die Entfernungen mithilfe des Hotspots berechnet werden, um die Entfernungen in den folgenden Situationen in der Datentabelle zu speichern:
- Analysieren -> Vorhersagemodellierung -> K Nächste Nachbarn -> "Variable" als "X, Faktor" -> OK -> Hotspot "Nahe Nachbarn entfernen"
- Analysieren -> Screening -> Ausreißer untersuchen -> "Variable" als "Y, Spalten" -> Multivariate: K Ausreißer der nächsten Nachbarn -> OK -> Schaltfläche "NN-Entfernungen speichern"
Warum frage ich:
- Die Ergebnisse sind nicht für beide Module identisch (siehe beigefügte Datentabelle: "Distanz 1-4" sind von 1. oben, "Nachbarste 1 Distanz_OutlierModule 1-4" sind von 2).
- Keiner von diesen scheint die euklidische Entfernung zu berechnen (sollte nicht der erste Abstand zum nächsten Nachbarn 1 für alle Werte / Zeilen der Variablen sein)?) Es scheint, dass einige Berechnungen des größten Abstands vorliegen und die anderen dann basierend auf ihrem Anteilsteil berechnet werden (0,25 als Abstand 1 und 1) als Abstand 4 (am weitesten vom variablen Wert 1 entfernt, also ist ein Viertel der maximalen Entfernung der gespeicherte NN-Abstand, während ich 1,2,3,4 als NN-Abstände für die erste Zeile in der Datentabelle erwarten würde). Und im Modellierungsmodul sind die Werte irgendwie ähnlich (für die Proportionen), unterscheiden sich jedoch von den absoluten Werten.
Ich habe die Dokumentation mit einem Verweis auf Folgendes gesehen: Hastie et al. ( 2009 ), Hand et al. ( 2001 ) und Shmueli et al. ( 2017 ). ( Übersicht über die K Nearest Neighbors Platform ), wo erwähnt, identifiziert es die kleinsten euklidischen Abstände zwischen den Prädiktorwerten für diese Beobachtung und den Prädiktorwerten für jede der anderen Beobachtungen. Es erklärt mir jedoch nicht die unterschiedlichen Ergebnisse.
Vielen Dank! Gibt es eine Möglichkeit, die Standardisierung rückgängig zu machen oder zu verhindern?
Obwohl es nicht dokumentiert ist, vermute ich wild, dass vor der Berechnung der euklidischen Entfernungen die durch (x_i - m_i) / s_i standardisierte K-Nearest Neighbors-Plattform, wobei m_i der Mittelwert und s_i der Standardwert für x_i ist.
Clear Globals();
x = [1,2,3,4,5];
s = Stddev(x);
m = Mean(x);
z = (x - m)/s;
n = Number(x);
dist_z = J(n, n, 0);
For(i = 1, i <= n - 1, i++,
For(j = 1, j <= n, j++,
dist_z[i, j] = dist_z[j, i] = Sqrt(Sum((z[i,0]-z[j,0])^2));
)
);
Show(dist_z);
Die folgenden Einträge in Sirius besagen, dass die Variablen von Q90 - Q10 auf der Explorer Outliers-Plattform standardisiert sind.
https://sirius.na.sas.com/Sirius/GSTS/ShowTrack.aspx?trknum=7612927109
https://sirius.na.sas.com/Sirius/GSTS/ShowTrack.aspx?trknum=7612540893
Clear Globals();
x = [1,2,3,4,5];
n = Number(x);
q90 = Quantile(0.9, x);
q10 = Quantile(0.1, x);
mid = (q90 + q10)/2;
range = q90 - q10;
w = (x - mid)/range;
dist_w = J(n, n, 0);
For(i = 1, i <= n - 1, i++,
For(j = 1, j <= n, j++,
dist_w[i, j] = dist_w[j, i] = Sqrt(Sum((w[i,0]-w[j,0])^2));
)
);
Show(dist_w);