2016-08-06 19 views
0

ClustOfVar ist ein Paket zum Gruppieren von Spalten.R ClustOfVar ctree height error

mtcars[] = lapply(mtcars,as.character) 

fit = ClustOfVar::hclustvar(X.quali = mtcars) 

labels = cutree(fit,h=0.5) 

Aber wenn ich für einige Passungen ctreree, bekomme ich die folgende Nachricht.

Warning: Error in cutree: the 'height' component of 'tree' is not sorted (increasingly) 

Die Daten, auf denen dieses Problem auftritt, sind privat und groß. Die Anpassung wird erfolgreich generiert. Ich werde mein Bestes geben, um ein reproduzierbares Datenbeispiel zu finden, aber wenn Sie diese Art von Problem schon früher kennengelernt haben, lassen Sie mich bitte wissen, wie ich damit umgehen soll.

Antwort

0

Bei bestimmten Verknüpfungsmethoden kann es vorkommen, dass eine Nicht-Monotonität im Baum vorhanden ist. Dann tritt dieser Fehler auf. Wenn ich mich nicht irre, ist die Schwerpunktsverbindung besonders anfällig dafür.

Das Problem sieht so aus: C wird von A und B erstellt. Teilbaum A wird in Höhe x erstellt. Teilbaum B wird in Höhe y erstellt. Normalerweise würden A und B auf einer Höhe verschmelzen, so dass z> x und z> y. Aber mit einigen Verknüpfungen kann diese Eigenschaft verletzt werden und z.B. z < x. Wenn wir nun den Baum in Höhe h mit z < x < x schneiden wollen, dann haben wir den Widerspruch, dass Unterbaum C zusammengeführt werden sollte (becaude z < h), aber A sollte geteilt werden (weil h < x) - aber A ist Teil von C.

+0

Gibt es eine schnelle Problemumgehung? – John

+0

Verwenden Sie eine andere Verknüpfung. Wenn dies geschieht, sind die Ergebnisse widersprüchlich. –