Ich habe einen Datenrahmen in Python, in dem ich alle kategorialen Variablen finden muss. Das Überprüfen des Spaltentyps funktioniert nicht immer, da der int
Typ auch kategorisch sein kann.
Daher suche ich Hilfe bei der Suche nach der richtigen Hypothesentestmethode, um festzustellen, ob eine Spalte kategorisch ist oder nicht.
Ich habe es unter dem Chi-Quadrat-Test versucht, bin mir aber nicht sicher, ob dies gut genug ist
import numpy as np
data = np.random.randint(0,5,100)
import scipy.stats as ss
ss.chisquare(data)
Bitte beraten.
Antworten:
Kurze Antwort: Sie können nicht.
Es gibt keinen statistischen Test, der Ihnen sagt, ob ein Prädiktor, der die ganzen Zahlen zwischen 1 und 10 enthält, ein numerischer Prädiktor ist (z. B. Anzahl der Kinder) oder zehn verschiedene Kategorien codiert. (Wenn der Prädiktor negative Zahlen enthält oder die kleinste Zahl größer als eins ist oder Ganzzahlen übersprungen werden, könnte dies gegen eine kategoriale Codierung sprechen - oder nur bedeuten, dass der Analyst eine nicht standardmäßige Codierung verwendet hat.)
Die einzige Möglichkeit, sicher zu sein, besteht darin, das Fachwissen der Domäne oder das Codebuch des Datasets (das immer vorhanden sein sollte) zu nutzen.
quelle
Unabhängig davon, welche Kriterien - oder Faustregeln - für Ihren Datensatz gelten, sind Sie willkommen, aber wir können Ihre Daten nicht sehen. In jedem Fall ist das Problem im Allgemeinen besser und auch ohne Bezugnahme auf eine bestimmte Software.
Es ist schlimmer als du denkst, auch wenn du denkst, es ist schlimmer als du denkst.
Die Antwort von @Stephan Kolassa macht bereits einen wichtigen Punkt. Kleine ganze Zahlen können eher Zählungen als Kategorien bedeuten: 3, was 3 Autos oder Katzen bedeutet, ist nicht dasselbe wie 3, was bedeutet, dass "Person ein Auto besitzt" oder "Person gehört einer Katze".
Dezimalstellen können innerhalb kategorialer Variablen als Teil codierter Klassifikationen lauern, z. B. von Branchen oder Krankheiten.
Messungen mit strengem Sinn können konventionell nur ganze Zahlen sein, z. B. können Körpergrößen nur als ganze Zahlen cm oder Zoll, Blutdruck als ganze Zahlen mm Hg angegeben werden.
Die Anzahl der unterschiedlichen Werte (ein besserer Begriff als "eindeutig", der immer noch die primäre Bedeutung hat, nur einmal vorzukommen) ist ebenfalls kein guter Anhaltspunkt. Die Anzahl unterschiedlicher Personengrößen, die in moderaten Stichproben möglich sind, ist wahrscheinlich viel geringer als die Anzahl unterschiedlicher religiöser Zugehörigkeiten oder ethnischer Herkunft.
quelle
Nun, ich denke, es ist noch schlimmer als die anderen Antworten vermuten lassen: Daten sind keine kategorialen oder numerischen Unterarten æternatis - "Messniveau" ist etwas, das vom Analysten festgelegt wurde, um eine bestimmte Frage bei einer bestimmten Gelegenheit zu beantworten. Siehe Glen_bs Antwort hier .
Es ist von praktischer Bedeutung, das zu verstehen. Beispielsweise ist bei einem Klassifizierungsbaum die Unterscheidung zwischen Verhältnis-, Intervall- und Ordnungsprädiktoren ohne Bedeutung: Die einzige Unterscheidung, die zählt, ist die zwischen Ordnungs- und Nominalprädiktoren. Die Einschränkung des Algorithmus zur Aufteilung des Prädiktors an einem Punkt entlang einer Linie, wobei höhere von niedrigeren Werten getrennt werden, kann sich erheblich auf seine Vorhersageleistung auswirken - für gut oder schlecht, abhängig von der Glätte der Beziehung des (mutmaßlich ordinalen) Prädiktors zur Antwort & die Größe des Datensatzes. Es gibt keinen vernünftigen Weg, die Entscheidung zu treffen, indem Sie nur darüber nachdenken, wie die Prädiktorvariable die Realität darstellt, unabhängig von der Analyse, die Sie durchführen möchten, geschweige denn, welche Werte Sie in einer Stichprobe gefunden haben.
quelle
Dies ist eine offene Forschungsfrage. Siehe zum Beispiel die Arbeit von Valera et al. ( Papier ) oder Erweiterungen (zB eine von Dhir et al. - Papier ).
Bearbeiten:
(Aus dem Valera-Papier.)
Wenn wir also sagen, dass dies eine "offene Frage" ist (seltsamerweise zitiere ich mich selbst), meinen wir damit, dass es derzeit keine guten automatischen Methoden gibt, um auf die Art der Daten bei einer endlichen Stichprobe zu schließen. Wenn Sie eine unendliche Stichprobe hätten, wäre dies einfach, aber da dies nicht möglich ist, müssen wir auf andere Mittel zurückgreifen.
quelle