관리 메뉴

ilovechoonsik

[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #9 - LOD (230323) 본문

STARTERS 4기 🚉/TIL 👶🏻

[STARTERS 4기 TIL] 프로젝트 기반 태블로 실전 트레이닝 #9 - LOD (230323)

춘시기좋아 2023. 3. 26. 17:08

 

📖 오늘 내가 배운 것

 

22일에 배운 LOD를 세부적으로 살펴보는 시간!

 

1. LOD Include, Exclude 예제

2. LOD 사용 시 집계 이유

3. LOD Fixed 이론 & 예제

4. LOD Fixed, Include 어떻게 다른가?

 


# 들어가기 전

LOD를 사용하려면

1. RAW 데이터를 꼭 확인해야 한다!

2. INCLUDE, EXCLUDE는 필터 영향을 다 받음!

필터 영향 다 받은 다음에 Score 측정하고 여기서 상위 20% 확인하면? 문제가 생길 수 있음

 

이상이 생겼을 경우

RAW COUNT 해봐야 함!

→ index() 앞에 삽입하고 필터링 여부 확인하기 (필터링 된 거 숫자 빠져있기 때문에 확인 가능)

 

1. LOD Include, Exclude 예제

1.1 INCLUDE

(1) 특징

 

1. 데이터의 깊이가 상대적으로 깊어야 합니다. 
2. 집계를 2번 해야할떄 (평균의 최댓값, 최솟값)
3. 설정한 차원의 영향을 include한 차원을 기준으로 결과 출력

4, VLOD에서 설정된 차원의 영향을 받는다 💞

 

 

(2) 예제

 

시/도 안에 있는 평균 중 제일 높은 평균, 가장 낮은 평균 매출을 가지고 있는 도시를 선택하고 싶다면

{include [도시]: AVG([매출])}

처음에 시/도는 생각하지 않고 뒷단에서 도시 별로 평균 매출을 만든다!

 

수많은 도시 매출 평균(우측과 같다)이 빨간 막대 사이에 투명하게 존재한다고 생각하면 된다

 

 

(3) 디테일하게 확인

 

📌 Category 별 AVG(Sales)

현재 VLOD 수준 = Category 

Furniture의 AVG(Sales) = 342.9

Furniture의 INCLUDE [Sub-Category] : AVG(Sales) = 439.9

 

왜 이런 결과가 나오는 걸까?

 

📌 우선 AVG(Sales) 부터 확인해 보자!

AVG(Sales)를 통해 나온 342.9는

가장 세부적인 차원(Order ID)으로 이동해 해당 Sales 값들의 전체 평균이다!

(소계 추가는? 분석-총계-모든 소계 추가)

 

 

📌 INCLUDE를 사용했을 때는?

{INCLUDE [SUB-Category]: AVG(Sales)} 계산 과정

 

SUB-Category에서 계산해 놓은 평균을 가져와 평균을 계산한다!

 

 

 

 

 

📌 활용할 수 있는 부분?

시/도 수준에서 Country 별 AVG(Sales)의 MIN/MAX를 구하고 싶을 때 INCLUDE를 사용할 수 있다.

좌측 : MAX/MIN(INCLUDE [CITY]~) / 우측 : MAX/MIN(Sales)

 

INCLUDE를 사용하면 하위 차원을 카테고리화해서 의미를 가지도록 도움을 준다!

 

[시/도 - 도시 - 도시 사람들의 매출]

이렇게 차원이 나뉘어 있을 때, 도시 평균의 MIN/MAX를 보고 싶다면 INCLUDE 도시로 설정하여 도시 별 평균을 사용해야 한다!

 

INCLUDE 없이 시/도의 최대 최소 : RAW 데이터에서 해당 시/도 안의 모든 값의 평균이기 때문에 도시가 전혀 고려되지 않는다.  MIN/MAX 확인 시 시/도 안에 0원을 파는 사람, 가장 많이 파는 사람으로 보여진다

 

INCLUDE로 도시를 포함 : 도시 별 사람들의 판매 값이 집계된 상태에서 확인하기 때문에 시/도로 묶어서 확인할 때와 다르게 도시 별 누가 얼마나 번다~ 인사이트를 얻을 수 있다.

 

# 근데? 구구절절 설명해야 하는데 LOD가 있다~ 그럼 안 쓰는 게 좋음

 

1.2 EXCLUDE

(1) 특징

 

1. 특성으로 설정됨
2. exclude lod에 명시된 차원을 제외한 후 집계가 이루어지고 vlod에 맞추어 표현하기 위해
첫 번째 단계 결과를 복제함
3. 효과적으로 Exclude를 쓰기 위해서는 Exclude LOD 안에서 선언된 차원이 반드시 VLOD에
들어가 있어야 함
4. LOD 식은 항상 raw level 값으로 집계를 꼭 씌어주어야 함 ATTR, AVG, sum 상관없음

 

 

(2) 예제

 

📌 상위 차원을 하위 차원에서 활용

 

📌 EXCLUDE 활용하여 비율 구하기

VLOD : COUNTRY -STATE - CITY 라면? SUM PROFIT은 CITY 수준에서 계산

 

앞의 State/Province 수준 에서의 Profit 합계 가져와서 비율을 계산해야 하기 때문에 EXCLUDE로 CITY를 벗김

 

그 후 계산식을 ABS로 절댓값 만들고 백분율 바꾸면?

 

📌 EXCLUDE 활용하여 카테고리 차이 구하기

 

들어가기 전 INCLUDE, EXCLUDE VS FIXED 간단 정리

더보기

필터에 의해 값이 바뀌는 경우 EXCLUDE, INCLUDE는 영향을 받는다.

FIXED는 영향을 받지 않음

→ INCLUDE, EXCLUDE는 자유도가 많이 떨어지긴 함

→ FIXED도 컨택스트 필터로 제어 가능하기 때문에 FIXED를 더 많이 쓴다.

근데? 그럼에도 INCLUDE, EXCLUDE를 쓰는 경우는?

 

FIXED는 VLOD영향을 안 받고 다른 애들은 받기 때문에 여기서 생길 수 있는 문제가 존재

그럴 때 사용한다.

 

- 이번 예시는 하위 범주에 대한 매출 합계!

 

1. SALES가 봉투보다 매출이 더 나왔는지 안 나왔는지

if [하위 범주] = '봉투' then [매출]
else null 
end

 

2. EXCLUDE로 상위 범주 합 가져오기

{EXCLUDE [하위 범주]: sum([sales-봉투])}

 

3. (1,2) 활용해서 계산! 다른 카테고리에 비해 봉투가 얼마나 팔렸을까~

SUM(매출)-ATTR([Exclude -봉투])

 

2. LOD 사용 시 집계 이유

SUM(PROFIT) / {EXCLUDE [] : SUM(~)}

이렇게 쓰면 에러 난다!

LOD 쓰면 태블로는 집계로 인식 안 한다

그렇기 때문에 LOD 식은 사용한 후 집계 함수를 씌워야 한다

 

바로 아래와 같이!

SUM(PROFIT) / ATTR({EXCLUDE [] : SUM(~)})

 

집계 시 SUM AVG 뭐 아무거나 써도 상관없긴 한데 강사님은 ATTR 쓰신다. (특성을 집계로 바꿈)

# 프로젝트 중 알게 되었는데 아무거나 쓰면 안 된다ㅠㅠ ATTR 사용하면 특정 상황에 정렬 안 되는 경우가 존재한다..

 

3. LOD Fixed 이론 & 예제

3.1 Fixed?

: 내가 원하는 특정 차원으로 차원을 고정시키는 것

 

 

(1) 특징

 

1. 화면 VLOD를 고려하지 않고 내가 선언한 그 차원으로 집계하는 것
2. 유연함
3. 결과의 종류는 Include, Exclude는 측정값만 결과로 나오는데 -  디멘션 필터의 영향을 받음 필터가 들어가면 계산 결과가 바뀌게 된다
4. fixed는 차원도 나옴 특히 날짜 최근 한 달 등등
5. 작동 순서에서 Fixed는 상위에 위치하고 제어하는 개념으로는 텍스트 필터가 있다.

 

 

(2) 예제

 

📌 VLOD가 범주 - 하위 범주

{FIXED [하위 범주] :AVG([매출])}

앞-뒤로 이동했을 때 INCLUDE, EXCLUDE 역할 다 할 수 있다

즉 VLOD의 영향을 받지 않는 엄청난 녀석

 

 

📌 VLOD가 시/도 도시

{FIXED [하위 범주] :AVG([매출])}

좌측은 광주의 RAW 데이터를 전부 모아 평균을 계산한 거!

그럼 우측은?

 

광주의 하위 범주에는 보관함 사무용품 액세서리가 있다!

요 녀석들을 다 더해서 평균을 계산한 게 위에서의 광주 평균

 

4. LOD Fixed, Include 어떻게 다른가?

4.1 FIXED

  1. 결과가 측정값 또는 차원으로 나옴
  2. 뷰에 있는 차원과 상관없음!

4.2 INCLUDE, EXCLUDE

  1. 항상 측정값으로 나온다~ 차원으로 만들 수 없음
  2. 뷰에 있는 차원에 영향을 받는다

INCLUDE : VLOD에서 포함하지 않고 있을 때, 어떤 특정 차원을 끌어들여서 함께 고려하고 싶을 때

EXCLUDE : 차원을 제외하고 계산하고 싶을 때 사용

 

4.3 INCLUDE VS FIXED

사용했을 때 차이가 존재한다면? 데이터 원본 가서 검증을 해야 한다

  1. 필터 추가 (확인하고 싶은 지역만)
  2. 데이터 확인하기~

예시를 통해 살펴보자

 

📌 도시 별 매출액 평균 확인 (VLOD는 시/도)

INCLUDE 사용

 

FIXED 사용

 

위 시트의 VLOD는 시/도이고

 

도시 별 매출액 평균을 확인하기 위해 각각 도시 기준 INCLUDE, FIXED를 사용한 상태이다!

 

사진이 작아서 수치가 안 보일 수 있지만 다른 지역이 몇 군데 존재한다! 왜 그럴까?

 

여기서 FIXED, INCLUDE의 차이를 확인할 수 있다.

각 도시의 데이터를 살펴보자

좌측과 같이 FIXED, INCLUDE 값이 다른 거 확인할 수 있다!

 

시/도 필터를 제거하고 도시로 다시 필터를 걸어준 우측 사진을 확인해보자

해당 시/도의 도시가 다른 시/도 에도 들어가 있는 거 확인할 수 있다.

 

여기서 차이를 확인할 수 있는데

INCLUDE : 현재 VLOD의 영향을 받는다~ 때문에 시/도까지 고려하여 Chhattisgarh의 Kota, Raipur 평균만을 보여주는 것

FIXED : VLOD 영향받지 않는다! 때문에 이름이 동일하면? 함께 집계해서 뿌려준다.

 

그렇기 때문에

Kota의 두 값 / Kota 개수 = FIXED 평균 (Raipur도 동일)

(1246 + 204) / 2 = 772.4

 

Jiangsu도 확인해보자

Jiangsu도 위와 같이 하위 도시가 다른 시/도에 포함되어 있기 때문에

VLOD 수준을 고려하지 않는 FIXED는 모든 시/도의 Suzhou 평균을 계산해 버린다

 


💪🏻 좋았던 점, 앞으로 개선해야 할 점 (추가로 배워야 할 점)

 

📌 한번 짚고 넘어갔어야 할 LOD를 다양한 예제와 함께 배워볼 수 있어서 좋았다! 근데~ 개념은 어느 정도 잡혔지만,

활용하기가 쉽지 않기에 다양한 데이터를 LOD를 사용해 시각화 해보는 것으로 익숙해질 수 있도록 하자🐻‍❄️

 

 

#유데미, #유데미코리아, #유데미부트캠프, #취업부트캠프, #부트캠프후기, #스타터스부트캠프, #데이터시각화 #데이터분석 #태블로

Comments