Bir sütunun kategorik verileri olup olmadığı istatistiksel olarak nasıl kanıtlanır?


10

Python tüm kategorik değişkenleri bulmak için gereken bir veri çerçevesi var. Sütun türünü denetlemek her zaman işe yaramaz çünkü inttür de kategorik olabilir.

Bu yüzden bir sütunun kategorik olup olmadığını belirlemek için doğru hipotez testi yöntemini bulmak için yardım arıyorum.

Ki-kare testinin altında çalışıyordum ama bunun yeterince iyi olup olmadığından emin değilim

import numpy as np
data = np.random.randint(0,5,100)
import scipy.stats as ss
ss.chisquare(data)

Tavsiye lütfen.


1
Sıralı değişken olarak kullanılan ve rasgele kategorik kodlama olarak kullanılan int arasında ayrım yapmak istediğinizi doğru anladığımı anlayabilir misiniz? Cevabım yok, ancak diğer okumaların ne istediğinizi netleştirmesine yardımcı olabilir. Sezgisel olarak Chi2'nin işi güvenilir bir şekilde yapabileceğini sanmıyorum.
18'de ReneBt

Evet haklısın. Benim odak dışında değişkenin türü değil, taşıdığı veri. Yani paylaştığım örnek kodda sonuç sadece 5 benzersiz değeri olduğundan kategorik bir değişken olması gerekir.
Amit

1
"Sonuç, yalnızca 5 benzersiz değere sahip olduğu için kategorik bir değişken olması gerekir" kuralı nerede? dan geliyorum?
Dennis Soemers

Ah bu bir kural değil, sezgisel olarak tüm sütun verilerimin sadece bu 5 değer olduğunu biliyorum.
Amit

Diğerleri bunun yapılamayacağını doğru bir şekilde işaret etseler de, bu yine de ilginç bir makine öğrenme sorunu yaratacaktır. Kuşkusuz, makul tahminlerin yapılabileceği sorunlu alanlar vardır.
John Coleman

Yanıtlar:


34

Kısa cevap: yapamazsınız.

1 ile 10 arasındaki tam sayıları içeren bir öngörücünün sayısal bir yordayıcı (örneğin, çocuk sayısı) olup olmadığını veya on farklı kategoriyi kodlayıp kodlamadığını söyleyecek istatistiksel bir test yoktur. (Öngörücü negatif sayılar içeriyorsa veya en küçük sayı birden büyükse veya tamsayılar atlıyorsa, bunun kategorik bir kodlama olmasına karşı çıkabilir - ya da sadece analistin standart olmayan kodlama kullandığı anlamına gelebilir.)

Emin olmanın tek yolu etki alanı uzmanlığından veya veri kümesinin kod çizelgesinden (her zaman var olması gerekir) faydalanmaktır.


14
"veri kümesinin kod kitabı (her zaman var olması gerekir)" - Ha, iyi olan.
Kodiologist

12

Veri kümeniz için hangi kriterler (ya da genel kurallar) işe yararsa hoş geldiniz, ancak verilerinizi göremiyoruz. Her durumda, sorun genel olarak ve herhangi bir özel yazılıma başvurulmadan daha iyi bir şekilde ortaya konmaktadır.

Düşündüğünüzden daha kötü, düşündüğünüzden daha kötü olduğunu düşünseniz bile.

  1. @Stephan Kolassa'nın cevabı zaten bir anahtar noktaya işaret ediyor. Küçük tamsayılar kategoriler yerine sayım anlamına gelebilir: 3, yani 3 araba veya kedi, 3 ile aynı değildir, yani "bir arabanın sahibi" veya "bir kedinin sahibi" anlamına gelir.

  2. Ondalık noktalar, örneğin endüstriler veya hastalıklar gibi kodlanmış sınıflandırmaların bir parçası olarak kategorik değişkenler içinde gizlenebilir.

  3. Ölçümler katı anlamda sadece konvansiyonla tamsayı olabilir, örneğin insanların yükseklikleri tamsayı cm veya inç, kan basınçları tamsayı mm Hg olarak bildirilebilir.

  4. Farklı (hala bir kez meydana gelmenin birincil anlamı olan "benzersiz" den daha iyi bir terim) sayısı da iyi bir rehber değildir. Ilımlı örneklerde mümkün olan farklı insan sayısı, muhtemelen farklı dini bağlılıkların veya etnik kökenlerin sayısından çok daha azdır.


+1. Bu, göz önünde bulundurulması gerekenlerin iyi bir listesidir. Kategorik değişken algılamayı otomatikleştirmek için bunu veri kümesi (ve herhangi bir belge) hakkındaki alan adı bilginizle birleştirmelisiniz.
Anna

@Anna, otomatik algılamanın gerçekleştirilmemesi gerektiğini söyleyebilirim ve tam olarak bu iş parçacığında özetlendiği gibi başınızı belaya sokabilecek şeydir . Alan bilgisi ve dokümantasyonu, tahmin etmenize gerek kalmayacak şekilde diğer değişkenler arasından çok değişkenli değişkenleri kolayca tanımlamalıdır.
prince_of_pears

7

Eh, diğer cevapların önerdiğinden bile daha kötü olduğunu düşünüyorum: veriler kategorik veya sayısal alt tür æternatis değil - "ölçüm seviyesi" belirli bir durumda belirli bir soruyu cevaplamak için analist tarafından öngörülen bir şeydir. Glen_b'in cevabını buradan görebilirsiniz .

Bunu anlamak pratik önem taşıyor. Örneğin, bir sınıflandırma ağacı ile oran, aralık ve sıra seviye seviye kestiricileri arasındaki ayrımın hiçbir sonucu yoktur: önemli olan tek ayrım sıralı ve nominal kestiriciler arasındaki orandır. Kestiriciyi bir çizgi boyunca bir noktada bölmek için algoritmayı sınırlamak, daha düşük değerlerden daha yüksek ayırmak, (varsayılan sıralı) kestiricinin yanıtla ilişkisinin düzgünlüğüne bağlı olarak, iyi veya kötü olmak üzere, tahmini performansı üzerinde önemli bir etkiye sahip olabilir. & veri kümesinin boyutu. Kararı, yalnızca bir örnekte hangi değerleri bulduğunuzu bulursanız, üstlenmek istediğiniz analizden bağımsız olarak, yalnızca yordayıcı değişkeninin gerçekliği nasıl temsil ettiğine dayandırmanın mantıklı bir yolu yoktur.


0

Bu açık bir araştırma sorusu. Örneğin bkz. Valera ve ark. ( kağıt ) veya uzantıları (örneğin, Dhir ve ark. - kağıt ).

Düzenle:

İstatistik ve makine öğreniminde yaygın bir uygulama, değişkenlerin istatistiksel veri türlerinin (örneğin sıralı, kategorik veya gerçek değerli) olduğunu ve genellikle de olasılık modelinin bilindiğini varsaymaktır. Bununla birlikte, gerçek dünyadaki verilerin mevcudiyeti arttıkça, bu varsayım çok kısıtlayıcı hale gelmektedir. Veriler genellikle heterojen, karmaşık ve yanlış veya eksik belgelenmiştir. Şaşırtıcı bir şekilde, pratik önemlerine rağmen, bir veri kümesindeki değişkenlerin istatistiksel tiplerini ve uygun olasılık (gürültü) modellerini otomatik olarak keşfetmek için hala araç eksikliği vardır.

(Valera belgesinden.)

Bu yüzden bunun "açık bir soru" (garip bir şekilde kendimi alıntılamak) olduğunu söylediğimizde, şu anda sınırlı bir örnek verilen veri türünü çıkarmak için iyi bir otomatik yöntem olmadığını söylemek istiyoruz. Sonsuz bir örneğiniz olsaydı bu kolay olurdu, ancak bu mümkün olmadığından, başka yollara geri dönmeliyiz.


"Açık araştırma sorusu" ile neye atıfta bulunduğunuzu anlatabilir misiniz? Lütfen cevabınızın bu konudaki diğer cevaplarla nasıl çelişmediğini (veya geçmediğini) açıklamayı da düşünün.
whuber

Elbette, cevabımı düzenleyeyim.
Astrid

Teşekkür ederim. Valera belgesine baktıktan sonra, çok daha güçlü bir iddiada bulunduğu görülüyordu: yani, değişken türleri tahmin etme ve özellikle kategorik ve sıralı verileri ayırt etme yöntemine sahip olduğunu iddia ediyor. Metodu incelemedim, ancak bu değişkenler ve ilişkili oldukları varsayılan diğer değişkenler arasındaki ilişkilere bakmanın da (en azından kısmen) dayanması gerektiğini varsayıyorum. Bir "sonsuz örnek" (ne olursa olsun) herhangi bir ek kullanım nasıl olacağını anlayamıyorum: Bu sorunun nasıl "kolay" hale getirebilir açıklayabilir misiniz?
whuber

Aslında çok sağlam bir yöntem ve ben de kendimi detaylı olarak inceledim (bu da beni biraz önyargılı yapmamı sağlıyor); ama fikir çok zekidir. Her sütun türünün bir tür karışım olarak tanımlanabileceğini varsayıyoruz (bir karışım modeli gibi) ve daha sonra en yüksek ağırlığa sahip türü bulmaya ve ardından karşılık gelen değişkenin gerçek türünü 'tür' olarak adlandırmaya çalışıyoruz. Tür çıkarımına gelince, çok akıllı ve en iyi otomatik yöntem (bildiğim). Diğerleri başkalarını biliyorsa, lütfen paylaşın!
Astrid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.