Attribute, 속성
attribute는 어떤 객체(object)의 성질이나 특징이다.
e.g. 사람의 눈 색깔, 온도, 계좌 잔금 등
Attribute Types
- Categorical: qualitative
- Nominal: category(범주), state(상태), names
- Binray: Nominal의 특별한 경우로, 2개의 state만 있는 형태. (0과 1, True or False, etc.)
- Ordinal: 순서가 있는 값. 그러나 간격의 크기는 의미를 갖지 않는다.
- Numeric: quantitative. discrete와 continuous한 값을 가질 수 있다.
- Interval: 같은 단위의 크기를 갖는 양. 0은 arbitrary-zero로 존재한다.(true-zero는 존재하지 않는다.)
- Ratio: absolute-zero로 존재한다.
Possible Data Analysis
데이터 타입에 따라 가능한 분석 방법이 있다.
Common
공통적인 특징으로는 해당 attribute가 몇 번 데이터에 등장하는지 파악하는 것이다. 기본적으로 counting은 모든 attribute에 대하여 유효하다. (심지어 실수값을 갖는 것도 포함된다)
Categorical Type vs Numerical Type
물건 배송의 상태를 나타내는 [ordered, send, received]를 [1, 2, 3]이라 하자. 그리고 배송 상태들의 데이터의 평균을 구했더니 2가 나왔다고 하자. 그렇다면 배송 상태는 평균적으로 send 상태라고 볼 수 있을까?
그렇지 않다. 데이터가 [1, 1, 1, 3, 3, 3]이라면 똑같이 평균이 2이고 어느 것도 send 상태가 아니다.
종교를 나타내는 [천주고, 개신교, 이슬람교, 불교, 기타]를 [1, 2, 3, 4, 5]라 하고 데이터의 평균이 3이라 하자. 그렇다면 이 데이터는 평균적으로 이슬람교라고 할 수 있는가?
그렇지 않다. 데이터가 [1, 1, 5, 5]라면 이슬람교는 존재하지 않음에도 평균은 3으로 이슬람이다.
Categoriccal type의 숫자는 임의적으로 정한 것이므로 그 순서를 바꾸면 평균의 의미도 바뀐다. 그리고 그것은 진정한 의미의 평균이 아니다.
Categorical type에서 유효한 통계량은 최빈값(mode)이다. binary type의 경우에는 비율이라는 것도 가능하다.
따라서 Categorical type에서 덧셈이나 뺄셈같은 수 체계에서의 연산을 하면 안된다.
애초에 Categorical Type의 숫자는 범주를 표현하기 위해 도입한 것이지 진짜 숫자가 아니다.
Nomial Type vs Ordinal Type
눈 홍채 색깔은 Nomical attribute로 [갈색, 검은색, 파란색, 초록색]을 [1, 2, 3, 4]하고,
학력이라는 변수는 Ordinal attribute로 [학사, 석사, 박사]을 [1, 2, 3]라 하자.
5명의 데이터를 정렬하여 눈색깔은 [1, 1, 2, 3, 4], 학력은 [1, 1, 2, 3, 3]로 분포한다고 하자.
눈색깔의 중앙값은 2인데 이것은 의미가 있는가? 그렇지 않다. Nomial의 특징으로 어떻게 숫자를 매핑해도 상관이 없다. 이때 [4, 3, 2, 1]이라 하면 [1, 2, 3, 4, 4]가 되는데 이때는 중앙값이 3이 된다.
학력의 중앙값은 2(석사)인데 이것은 정말로 석사라는 의미가 있는가? 그렇다.
만일 학력을 [1, 10, 100]으로 인코딩했어도 [1, 1, 10, 100, 100]의 중앙값은 10으로 여전히 석사를 의미한다.
Ordinal type은 순서가 있는 데이터이므로 숫자들의 위치는 변하지 않는다.
따라서 숫자의 순서와 관련있는 통계량인 중앙값, 백분위수, 사분위수 등이 가능하다.
Inverval Type vs Ratio Type
Inverval의 대표적인 예는 섭씨온도(℃), 화씨온도(℉), 날짜(Unix standard date) 등이 있다.
Ratio의 대표적인 예는 절대온도(캘빈 K), 거리, 지속시간(duration) 등이 있다.
아직 헷갈리는가? Interval와 Ratio를 구별하는 방법은 크게 2가지가 있다.
- 0의 값이 절대적인지를 확인한다.
- 숫자간의 비율관계가 성립하는지 확인한다.
온도를 예시로 들어보자.
(1) 0℃는 절대적인가? 그렇지 않다.
(2) 32℃는 16℃의 2배인가? 그렇지 않다. 이 둘을 ℉로 변환하면 89.6℉와 60.8℉ 인데 이들은 2배 관계가 아니다. 즉 섭씨온도와 화씨온도는 비율관계가 성립하지 않는다. (℃와 ℉는 물의 어는점과 끓는 점을 각각 100등분/180등분 한 것이다.)
그렇다면 절대온도(K)는 어떤지 확인해보자.
(1) 0K는 절대적인가? 그렇다. (과학적으로는 불확정성 원리에 의해 실제 0K는 존재할 수 없지만 수학적으로는 그렇다)
(2) 10K는 5K의 2배인가? 그렇다. (캘빈도는 이상기체의 에너지 관점에서 최저점을 0으로 정의한다. 따라서 에너지가 2배관계이므로 그렇다.)
시간을 예시로 들어보자.
유닉스 계열 컴퓨터는 시간을 표현할 때 유닉스 표준 시(Unix standard time)을 이용하여 표기한다. attriibute 관점에서 유닉스 시간의 0초는 1970년 1월 1일 자정이다. 당연히 이는 absolute-zero가 아니라 arbitrary-zero이므로 Interval scale이다.
Summary
Nomial = categorization
Ordinal = (Nomial) + ordering
Interval = (Ordinal) + equal distance
Ratio = (Interval) + absolute-zero
Categorical Type | Numeric Type | |||
operations | Nominal(Categorical) | Ordinal | Interval | Ratio |
빈도 분포, counting | YES | YES | YES | YES |
중앙값, 백분위수 | NO | YES | YES | YES |
덧셈, 뺄셈 (numeric operation) | NO | NO | YES | YES |
평균, 표준편차, 표준오차(standard error of the mean) | NO | NO | YES | YES |
비율, 변동계수(coefficient of variation) | NO | NO | NO | YES |
'스터디 > 데이터사이언스' 카테고리의 다른 글
[Data Science] 상관계수, Pearson, Spearman, Kendall (0) | 2023.03.17 |
---|---|
[Data Science] Basic Statistical Description of Data (0) | 2023.03.14 |
[pandas] [판다스] DataFrame 조작하기, MultiIndex (0) | 2023.02.15 |
[pandas] [판다스] 판다스 기초 (0) | 2023.02.15 |
[NumPy] 넘파이 - 선형대수 (0) | 2023.02.14 |