열에 범주 형 데이터가 있는지 또는 파이썬을 사용하지 않는지 통계적으로 증명하는 방법


10

파이썬에서 모든 범주 형 변수를 찾아야하는 데이터 프레임이 있습니다. int유형도 범주 형일 수 있으므로 열 유형을 확인하는 것이 항상 작동하지는 않습니다 .

따라서 열이 범주인지 여부를 식별하는 올바른 가설 검정 방법을 찾는 데 도움을 요청합니다.

카이 제곱 테스트 아래에서 시도했지만 이것이 충분히 좋은지 확실하지 않습니다.

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

조언 부탁드립니다.


1
서수 변수로 사용되는 int와 임의의 범주 형 코딩으로 사용되는 int를 구별하고 싶다는 것을 올바르게 이해했는지 알 수 있습니까? 나는 대답이 없지만, 다른 책들이 당신이 원하는 것을 분명히하는 데 도움이 될 수 있습니다. 직관적으로 Chi2가 안정적으로 작업을 수행 할 수 있다고 생각하지 않습니다.
ReneBt

그래, 너가 맞아. 내 초점은 변수의 유형이 아니라 변수의 유형에 중점을 둡니다. 따라서 예제 코드에서 공유 한 결과는 5 개의 고유 값 만 있기 때문에 범주 형 변수라는 것입니다.
아 미트

1
규칙은 "결과는 5 개의 고유 한 값만 있기 때문에 범주 형 변수 여야합니다." 에서 온?
Dennis Soemers 11

아, 그것은 규칙이 아닙니다. 직관적으로 나는 모든 열 데이터 가이 5 값이라는 것을 알고 있습니다.
11:23에

다른 사람들이 할 수 없다는 것을 올바르게 지적했지만 그럼에도 불구하고 이것은 흥미로운 기계 학습 문제를 일으킬 것입니다. 의심의 여지없이 합리적으로 정확한 예측이 이루어질 수있는 문제 영역이 있습니다.
존 콜먼

답변:


34

짧은 대답 : 당신은 할 수 없습니다.

1과 10 사이의 정수를 포함하는 예측 변수가 숫자 예측 변수 (예 : 자식 수)인지 아니면 10 가지 범주를 인코딩하는지 여부를 알려주는 통계 테스트는 없습니다. (예측자가 음수를 포함하거나 가장 작은 수가 1보다 크거나 정수를 건너 뛰는 경우 이는 범주 인코딩이 아니라고 분석 할 수 있습니다. 또는 분석가가 비표준 인코딩을 사용했음을 의미 할 수 있습니다.)

확실한 방법은 도메인 전문 지식이나 데이터 세트의 코드북 (항상 존재해야 함)을 활용하는 것입니다.


14
"데이터 세트의 코드북 (항상 존재해야 함)"— 하, 좋습니다.
Kodiologist

12

데이터 세트에 어떤 기준 (또는 규칙)이 적용 되더라도 환영하지만 데이터를 볼 수는 없습니다. 어쨌든 문제는 일반적으로 더 나은 경향이 있으며 특정 소프트웨어를 참조하지 않아도됩니다.

생각보다 나쁘다고 생각하더라도 생각보다 나쁩니다.

  1. @Stephan Kolassa의 답변은 이미 하나의 핵심 포인트를 만듭니다. 작은 정수는 범주가 아니라 개수를 의미 할 수 있습니다. 3은 3 대의 자동차 또는 고양이를 의미하며 3은 동일하지 않습니다. "사람은 자동차를 소유 함"또는 "사람은 고양이가 소유 함"을 의미합니다.

  2. 예를 들어 산업 또는 질병과 같은 코드화 된 분류의 일부로 소수점 변수가 범주 형 변수 내에 숨어있을 수 있습니다.

  3. 엄격한 의미의 측정은 관습에 따라 정수일 수 있습니다. 예를 들어 사람의 키는 정수 cm 또는 인치로, 혈압은 정수 mm Hg로보고 될 수 있습니다.

  4. 고유 한 값 ( "고유 한"보다 나은 용어, 여전히 한 번만 발생한다는 주요 의미를 가짐) 값도 좋은 지침이 아닙니다. 온건 한 표본에서 가능한 다른 높이의 사람들의 수는 아마도 다른 종교 소속이나 민족의 수보다 훨씬 적을 것입니다.


+1. 고려해야 할 좋은 목록입니다. 범주 형 변수 탐지를 자동화하려면이를 데이터 세트 (및 모든 문서)에 대한 도메인 지식과 결합해야합니다.
Anna

@Anna 자동 검색 을 수행해서는 안되며이 스레드에 설명 된대로 문제를 일으킬 수있는 것입니다. 도메인 지식과 문서는 다른 변수 중에서 다항 변수를 쉽게 식별 할 수 있으므로 추측 할 필요가 없습니다.
prince_of_pears

7

그런데 나는 그것이 다른 답변이 제안하는 것보다 더 나쁜 생각 : 데이터가없는 범주 또는 숫자입니다 서브 정화가 æternatis - "측정의 수준은"뭔가 특별한 기회의 특정 질문에 대답하기 위해 분석에 의해 규정이다. Glen_b의 답변은 여기를 참조 하십시오 .

그것을 이해하는 것이 실질적으로 중요합니다. 예를 들어, 분류 트리를 사용하면 비율, 구간 및 순서 수준 예측 변수의 차이는 중요하지 않습니다. 중요한 유일한 차이점은 순서 예측 변수와 명목 예측 변수 간의 차이뿐입니다. 선을 따라 한 지점에서 예측 변수를 분할하도록 알고리즘을 제한하고 더 낮은 값에서 분리하면 예측 성능 (예상 서수) 예측 변수와 반응의 관계의 부드러움에 따라 예측 성능에 상당한 영향을 줄 수 있습니다. & 데이터 세트의 크기. 표본에서 발견 한 값이 무엇이든, 수행하려는 분석에 관계없이 예측 변수가 현실을 나타내는 방식에 대해서만 겨냥한 결정을 내릴 수있는 합리적인 방법은 없습니다.


0

이것은 공개 연구 질문입니다. 예를 들어 Valera et al. ( 종이 ) 또는 확장 (예 : Dhir et al.- 논문 ).

편집하다:

통계 및 머신 러닝의 일반적인 관행은 변수의 통계 데이터 유형 (예 : 서수, 범주 형 또는 실수 값) 및 일반적으로 가능성 모델이 알려져 있다고 가정하는 것입니다. 그러나 실제 데이터의 가용성이 증가함에 따라이 가정은 너무 제한적입니다. 데이터는 종종 이질적이고 복잡하며 부적절하거나 불완전하게 문서화됩니다. 놀랍게도, 실제적인 중요성에도 불구하고, 데이터 세트의 변수에 대한 통계적 유형뿐만 아니라 적절한 우도 (노이즈) 모델을 자동으로 검색하는 도구가 여전히 부족합니다.

(Valerra 논문에서)

따라서 이것이 "공개 질문"이라고 말하면 (이상하게 인용하기에는 충분하지 않습니다), 현재 유한 샘플이 주어진 데이터 유형을 유추하는 좋은 자동 방법이 없다고 말합니다. 무한한 표본을 가지고 있다면 쉽지만 불가능하기 때문에 다른 방법으로 되돌려 야합니다.


"공개 연구 질문"으로 언급 한 내용을 말씀해 주시겠습니까? 이 글에서 답변이 다른 답변과 어떻게 상충되지 않는지 설명하십시오.
whuber

물론 대답을 편집하겠습니다.
Astrid

감사합니다. Valera 논문을 꼼꼼히 살펴보면 훨씬 더 강력한 주장을하는 것처럼 보였습니다. 즉, 변수 유형을 추측하고 특히 범주 형 데이터와 서수 데이터를 구별하는 방법을 갖는 것이 좋습니다. 나는 그 방법을 연구하지는 않았지만, 그러한 변수들과 관련이 있다고 생각되는 다른 변수들 사이의 관계를 살펴 보는 데있어 (적어도 부분적으로) 기반이되어야한다고 가정한다. "무한 샘플"(무엇이든)이 추가로 어떻게 사용되는지 이해할 수 없습니다. 문제가 어떻게 "쉬운"지 설명 할 수 있습니까?
whuber

그것은 실제로 매우 강력한 방법이며, 나는 그것을 스스로 자세히 연구 해왔다. 그러나 그들은 매우 영리합니다. 우리는 각 열 유형이 유형의 혼합으로 설명 될 수 있다고 가정합니다 (혼합 모델과 유사). 가중이 가장 높은 유형을 찾은 다음 해당 '유형'을 변수의 실제 유형이라고합니다. 타입 추론이 진행되는 한, 그것은 매우 영리하고 최상의 자동 방법입니다 (내가 아는). 다른 사람이 다른 사람을 알고 있다면 공유하십시오!
Astrid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.