Mam ramkę danych w pythonie, w której muszę znaleźć wszystkie zmienne jakościowe. Sprawdzanie typu kolumny nie zawsze działa, ponieważ int
typ może być również kategoryczny.
Dlatego szukam pomocy w znalezieniu właściwej metody testowania hipotez, aby ustalić, czy kolumna jest kategoryczna, czy nie.
Próbowałem poniżej testu chi-kwadrat, ale nie jestem pewien, czy to wystarczy
import numpy as np
data = np.random.randint(0,5,100)
import scipy.stats as ss
ss.chisquare(data)
Proszę doradź.
Odpowiedzi:
Krótka odpowiedź: nie możesz.
Nie ma testu statystycznego, który powiedziałby, czy predyktor zawierający liczby całkowite od 1 do 10 jest predyktorem numerycznym (np. Liczba dzieci) lub koduje dziesięć różnych kategorii. (Jeśli predyktor zawiera liczby ujemne lub najmniejsza liczba jest większa niż jedna lub pomija liczby całkowite, może to argumentować przeciwko kodowaniu kategorycznemu - lub może to po prostu oznaczać, że analityk zastosował niestandardowe kodowanie).
Jedynym sposobem, aby się upewnić, jest wykorzystanie wiedzy specjalistycznej w dziedzinie lub słownika kodów zestawu danych (który zawsze powinien istnieć).
źródło
Jakiekolwiek kryteria - lub podstawowe zasady - działają dla twojego zestawu danych, są mile widziane, ale nie widzimy twoich danych. W każdym razie problem jest ogólnie lepszy i bez odniesienia do żadnego konkretnego oprogramowania.
Jest gorzej niż myślisz, nawet jeśli uważasz, że jest gorzej niż myślisz.
Odpowiedź Stephana Kolassy już wskazuje na jeden kluczowy punkt. Małe liczby całkowite mogą oznaczać liczby, a nie kategorie: 3, co oznacza 3 samochody lub koty, to nie to samo co 3, co oznacza „osoba jest właścicielem samochodu” lub „osoba jest własnością kota”.
Kropki dziesiętne mogą czaić się w obrębie zmiennych kategorialnych, jako część zakodowanych klasyfikacji, np. Branż lub chorób.
Pomiary ściśle rozumiane mogą być zwyczajnie liczbami całkowitymi zgodnie z konwencją, np. Wysokości ludzi mogą być po prostu podawane jako liczba całkowita cm lub cale, ciśnienie krwi jako liczba całkowita mm Hg.
Liczba odrębnych (lepszy termin niż „unikalny”, który nadal ma podstawowe znaczenie występowania tylko raz), również nie jest dobrym przewodnikiem. Liczba osób o różnej wysokości możliwych w umiarkowanych próbach jest prawdopodobnie znacznie mniejsza niż liczba różnych przynależności religijnych lub pochodzenia etnicznego.
źródło
Cóż, myślę, że jest nawet gorzej niż sugerują inne odpowiedzi: dane nie są kategorycznymi ani liczbowymi sub specie æternatis - „poziom pomiaru” jest czymś określonym przez analityka, aby odpowiedzieć na dane pytanie przy konkretnej okazji. Zobacz odpowiedź Glen_b tutaj .
Zrozumienie tego ma praktyczne znaczenie. Na przykład w drzewie klasyfikacyjnym rozróżnienie między predyktorami stosunku, przedziału i poziomu porządkowego nie ma znaczenia: jedyne istotne znaczenie ma rozróżnienie między predyktorami porządkowymi i nominalnymi. Ograniczenie algorytmu do dzielenia predyktora w punkcie wzdłuż linii, oddzielenie wyższych od niższych wartości, może mieć znaczący wpływ na jego wydajność predykcyjną - na dobre lub złe, w zależności od gładkości relacji predyktora (przypuszczalnie porządkowego) do odpowiedzi i rozmiar zestawu danych. Nie ma rozsądnego sposobu, aby decyzja opierała się wyłącznie na zastanowieniu się, w jaki sposób zmienna predykcyjna reprezentuje rzeczywistość niezależnie od analizy, którą zamierzasz przeprowadzić, nie mówiąc już o tym, jakie wartości znajdziesz w próbce.
źródło
To otwarte pytanie badawcze. Patrz na przykład praca Valera i in. ( papier ) lub rozszerzenia (np. jeden autorstwa Dhir i wsp. - papier ).
Edytować:
(Z gazety Valera.)
Kiedy więc mówimy, że jest to „pytanie otwarte” (co dziwne, cytuję siebie), mamy na myśli, że obecnie nie ma dobrych automatycznych metod wnioskowania o typie danych na podstawie skończonej próbki. Gdybyś miał nieskończoną próbkę, byłoby to łatwe, ale ponieważ nie jest to możliwe, musimy powrócić do innych środków.
źródło