STARTERS 4기 🚉/TIL 👶🏻

[STARTERS 4기 TIL] Tableau 고급 #1 (230303)

춘시기좋아 2023. 3. 6. 01:13

 

 

📖 오늘 내가 배운 것

 

1. 폴더, 그룹 및 집합

2. 테이블 고급 계산

3. 스토리 라인

 

1. 폴더, 그룹 및 집합

1.1 분석 프로젝트 개요

📌 벤처 캐피털 펀드

: 투자를 위해 잠재적으로 성장할 만한 1000개의 스타트업 검토

 

📌 투자 기준 (2015)

1. High Revenue

2. Low Expenses

3. Top Growth

 

📌 주어진 데이터

Sheet 1 : 조사할 회사 리스트

Sheet 2 : 조사할 회사들 재정 관련 정

 

📌 가정

기업 조사 시 해당 기업이 속한 산업군에 따라 고려해야 할 요소가 많은데, 이 프로젝트에서는 고려하지 않는다!

-> 성장 지표만 보고 판단!

 

1.2 폴더 생성 및 그룹화

(1) 폴더 생성

 

사용할 데이터에 측정값 데이터가 많다!

실무에서는 많을 경우 100개 이상일 수도 있는데

 

이런 경우 작업 공간을 정리하며 사용하는 게 효율이 좋다고 한다

 

어떻게 정리할 수 있을까?

 

바로 폴더 기능을 이용하면 된다!

 

[차원 or 수치 우클릭] - [폴더 별 그룹화]

 

 

 

그 결과로 우측과 같이 모든 값들이 나열되는데

 

여기서 두 데이터 간 중복 값을 제거하고

 

[측정값 여백 우클릭] - [폴더 만들기]

를 통해 원하는 데이터를 폴더에 넣어준다

 

 

 

 

 

 

 

연도 별 수치값으로 깔끔하게 정리된 모습!

 

(2) 그룹화

 

그룹 : 차원의 요소를 결합할 수 있는 방법

 

대부분의 회사들이 2009년 이후에 분포되어 있는 것을 확인할 수 있다!

2009년 이전에 적은 수로 분포되어 있는 회사 수는 분석 목적에 크게 고려할 요소가 되지 않기 때문에

그룹핑을 통해 보기 좋게 묶어 주는 것이 좋다

 

# Year Founded가 차원탭에 존재하지만 측정값으로 정의된 이유를 모르겠다

# 일단 차원 -> 측정값 -> 차원 단계를 거치는 것으로 형태를 바꿔줌  

 

📌 연도 그룹핑

[차원 우클릭] - [그룹 편집] - [그룹 안으로 드래그 드롭]

 

📌 산업 그룹핑

[차원 우클릭] - [만들기] - [그룹]

 

추가로 그룹화할 때 태블로가 평균을 어떻게 계산하는지 살펴보자 

좌측 두 개의 산업을 그룹화 하면 평균으로 61.1을 내준다

이 값은 차트에 보이는 계산된 두 개의 산업 평균을 단순히 더하고 나누기 2한 것이 아니라

그룹화 시 두 산업을 하나의 산업으로 처리하고 속해 있는 모든 회사의 직원 수를 총회사의 수 n으로 평균을 구한 것!

 

 

1.3 정적 및 동적 집합

집합을 생성하는 방법은 두 가지가 있다.

정적, 동적

 

(1) 정적 집합

 

태블로에서 특정 카테고리 값을 보려면 필터를 걸거나 사진과 같이 색상을 일일이 선택해서 변경해 주는 방법이 있다!

근데 이건 너무 시간이 오래 걸린다는 단점이 존재

 

우측 사진과 같이 집합으로 묶을 필드를 선택하고 집합을 만들어 쉽게 수행할 수 있다.

[우클릭] - [집합 만들기]

 

만든 집합을 이용하면 다음과 같이 쉽고 빠르게 시각적 표현이 가능하다

좌측 : 만든 집합을 필터로 사용

우측 : 만든 집합을 색상으로 사용

 

📌 2015년 기업들의 성장률을 시각화 해보자!

좌측 사진과 같이 소수점 형태로 표현되는데 더 보기 편하게 바꿀 수 있다!

 

[해당 필드 우클릭] - [기본 속성] - [숫자 형식] - [백분율]

해당 필드 자체에서 어떻게 표현될지 설정 -> 이후에 그 필드를 사용할 때, 원하는 형태의 수치로 지속 표현 가능

 

최종적으로 백분율 Top10을 집합으로 만들고 트리맵으로 표현하면 위와 같다!

 

근데 이렇게 하드 코딩 식으로 집합을 만들면 두 가지 문제가 생긴다!

1. 이후에 새로운 데이터를 얻었거나 혹은 내년에 이 같은 분석을 하고 싶다면 분석가가 스스로 직접 상위 성장 회사를 다시 확인하고 직접 넣어줘야 한다는 번거로움

2. 현재 Top 10이지만 Top 100을 뽑아달라 한다면? 분석가가 직접 집합에 다 추가해야 함

그렇기 때문에 동적 집합이 필요한 것!

(2) 동적 집합

 

집합 내부 데이터가 특정 조건에 의해 변경되기 원할 때 사용하는 방법!

 

📌 첫 번째 방법

[2015 Growth %]라는 수치값이 항상 [Top 10]인 ID 필드의 집합 만들기 

[ID 필드 우클릭] - [만들기] - [집합] - [일반 및 상위 탭 조건 설정]

 

위 사진과 같이 동적으로 변화하는 집합을 만들 수 있다.

 

📌 두 번째 방법!

투자를 고려하고 있는 스타트업의 두 가지 특성을 보기 -> 수익과 지출

900만 이상의 수익을 가진 회사 확인하기

 

[필드 우클릭] - [만들기] - [집합] - [조건 걸기]

 

(3) 집합 결합

 

📌 결합하는 방법

[결합하고 싶은 집합 선택] - [결합된 집합 만들기]

낮은 투자 비용, 높은 수익에 해당하는 회사

근데 우측 하단이라는 위치가 썩 마음에 들지 않는다

긍정적으로 표현하기 위해 상단으로 변경해 주자!

 

📌 축 반전

[반전하고 싶은 축 우클릭] - [축 편집] - [반전]

 

 

(4) 매개 변수로 집합 제어하기

 

📌 변수 한 개 - 트리맵

[매개 변수 생성] - [집합 편집에서 필드 기준을 매개 변수로 맵핑]

 

 

📌 변수 두 개 - 산점도

그리고 High Revenue, Low Expenses라는 두 집합을 필드 기준으로 만들어 놨었는데

요 녀석들을 새로 만든 매개 변수 기준으로 수정해 준다.

 

매개 변수 필터 설정으로 사용자에 따른 범위 액션 가능!

 

1.4 대시보드

좀 더 직관적이고 더 좋은 정보를 얻어갈 수 있도록!

그들이 흥미가 있어하는 것은 수입/비용에 대한 성장률!

 

📌 Growth 차트 수정 - 색상 넣기

모양 사각형으로 적용하여 색상 표현!

그리고 이걸 Scatter에 표현할 수 있게 하려면 어떻게 해야 할까?

 

📌 Scatter 차트 수정 - 색상

높은 성장 가능성을 갖는 회사, 일반 회사와 다른 모양을 주고 

[집합 드래그] - [모양 드롭]

 

사분면과 높은 성장률의 회사를 함께 표현하기 위해

Target Quadrant

Top Startups by Growth Dynamic Set

[두 개를 동시에 드래그] - [색상에 드롭] 한다

 

좀 더 가시성 좋게 만들기 위해

경영진이 찾는 Revenue, Expenses 기준을 충분히 만족하는 IN, IN은 빨간색

적절히 만족하는, 해당 사분면의 IN, OUT은 푸른색

 

📌 대시보드 확인

상위권 회사 수 조절 -> Scatter에 표현되는 모습 확인하기

 

📌 꾸미기 위한 작업

1. 제목 편집은 좌측 하단 텍스트 드래그 - 드롭

2. 색상 코드 복사 - 붙여 넣기로 일관성 있게

3. 색상 고급 설정으로 흰 바탕 제거

4. 파리미터 삽입으로 동적 title 만들기

5. 매개변수 글씨체, 크기 일관성 있게 만들기

6. 매개변수 숫자 표현 방식 수정

 

7. 참조선

[축 우클릭] - [참조선]

 

8. 축 연장선

[그래프 위의 값 우클릭] - [축 연장선] - [축 연장성 표시]

 

 

9. 툴팁

[필요한 필드 드래그] - [세부 정보 드롭] - [도구 설명에서 추가 및 서식 지정]

 

📌 요약

그룹

그룹 vs 집합

정적 집합

동적 집합

집합 결합

매개 변수 사용하여 집합 제어

-------

폴더 생성

필드에 대한 기본 속성 설정! - 중요

-> 예시) 필드에 대한 백분율 지정으로 이후에도 같은 형식으로 사용 가능

2차원 집합에 색상 맥이기 - 두 개의 다른 집합을 한 번에 드래그 드롭

참조선, 연장선, 툴팁

 

2. 테이블 고급 계산

2.1 해결해야 할 문제!

석탄 터미널의 석탄 회수기 기계는 유지보수가 필요하다!

이 기계는 말 그대로 1년 365일 24시간으로 작동, 1분의 가동 중지 시간은 수백만 달러의 수익 손실과 동일! 따라서 이러한 기계의 유지보수가 필요한 시점을 정확히 파악하는 것이 중요하다 (유지 보수를 너무 적게 혹은 자주 하는 것은 위험)

 

 이제 당신의 임무는 다섯 개의 기계 중 어느 것이 이 수준을 초과했는지 알아보고 경영진을 위해 권장 사항이 포함된 보고서를 작성하는 것입니다

 

 

 

 

 

2.2 데이터 임포트 및 전처리

받은 파일에는 각 기계들의 구동 시간과 처리량에 대한 정보

 

보면 모든 기계들에 대한 Datetime이 일정하지 않기 때문에 조인 시 이 부분을 고려해야 한다.

 

 

LEFT JOIN으로 모든 시간대를 고려하여 묶기 위해 더미 열을 생성해 준다.

 

Datetime과 형식을 그대로 복사 - 붙여넣기한 새로운 시트를 만들어 줌!

 

 

 

 

 

 

 

 

 

 

 

 

 

더미로 생성한 DateTime에 전부 LEFT JOIN으로 결합!

 

 

1. 후 R1의 경우 필드명에 (R1)을 붙여 헷갈리는 일이 없도록 만들기

2. 필요 없는 필드 제거

3. Datetime 기준으로 피봇 후 필드 명 변경

 

 

 

2.3 계산된 필드 및 테이블 계산

(1) 테이블 계산

일 별 모든 기계들에 의해 처리된 석탄량 차트이다.

여기에 테이블 계산을 적용해 보자

 

 

📌 누적합 - [해당 수치값 우클릭] - [퀵 테이블 계산]

누적합 - 이전 바 + 현재 바 누적 합

 

📌 차이

좌측 : 기준 - 이전 값

우측 : 기준 - 첫 번째 값

 

# 테이블 계산이 필요한 이유

> 계산된 필드는 데이터 집합 수준에서 수행! 반면에 테이블 계산은 집계가 수행된 후에 수행

 

계산된 필드 : 계산 필드를 생성할 때, 저장된 데이터를 직접 사용하여 집합을 만듦

테이블 계산 : 제일 앞단에 나와 있는 데이터, 즉 집합 및 집계 등이 전부 끝난 후 해당 데이터를 표현만 해주는 것

 

 

RL1의 규격 용량과 실제 생상하는 용량의 차이를 살펴보고 싶다면?

[시트 우클릭] - [크로스탭으로 복제] 선택하면 위와 같이 수치로 된 값을 빠르게 확인할 수 있다.

 

여기서 수용 용량과 실제 처리하는 용량의 차이는 [퀵 테이블 계산] - [차이]를 통해 확인할 수 있고

 

[다음을 사용하여 계산] - [아래로] 사용하면 위와 같이 위 값에서 아래 값을 빼서 시각화해 준다.

실제 처리하고 있는 용량 - 규격 용량

 

그럼 이 계산법을 모든 기계에 적용하려면?

위 사진과 같이 조건들을 잘 추가해서 [차이], [아래로] 선택해 주면 된다

# 여기서 문제가 하나 생겼는데 강사님 데이터들은 올바르게 규격-실제 값 순서대로 정렬되어 있었지만 내 데이터는 그렇지 않았다는 것.. 하나하나 정렬시킨 후 계산했다

 

 

📌 참조선 추가

[축 우클릭] - [참조선 추가] - [상수] - [% 변경]

 

📌 퀵 테이블 계산 -> 측정값 필드화

위와 같이 정의되어 있는 테이블 계산을 필드에 드래그 드롭하면 됨

 

📌 축 반전시키기

현재 만들어 놓은 [퀵 테이블 계산 우클릭] - [만들기] - [계산된 필드]

우측과 같이 -1 곱해준다

위와 같이 해당 축이 반전된 모습을 확인할 수 있음!

여기서 [축 우클릭] - [참조선 편집]으로 -10%를 10%로 바꿔주면 끝

 

(2) 계산 방향 지정 및 테이블 계산 기본값 변경

 

설정되어 있는 행-열을 열-행으로 바꿀 수 있다!

위와 같이 상단 도구 탭에 행과 열 바꾸기 버튼 누르면 됨

근데 이러면 아예 계산 결과가 바뀌는 건가? 할 수 있는데 그렇지 않다

테이블 계산 눌러보면 방향이 '옆으로' 되어 있는 것을 확인할 수 있는데, 태블로가 똑똑하게 우리가 원하는 바를 캐치하고 처리해 주었기 때문

 

이 부분을 항상 고정하고 싶을 때 방법이 있다.

지정해 놓은 퀵 테이블 계산 필드를 위와 같이 따라 들어가 항상 같은 차원을 사용하여 계산하게 할 수 있다.

 

(3) 자신만의 테이블 계산 만들기

태블로에서 지원하는 퀵 테이블 계산 이외의 디테일한 계산을 수행하고 싶다면 직접 만들어서 사용할 수 있다.

[수치 우클릭] - [계산된 필드 만들기]

우측 도움말? 탭에서 테이블 계산 시에 사용되는 함수와 예시를 볼 수 있다.

 

예를 들어

 WINDOW_AVG 함수를 사용하여 -7, 0 인자를 주게 되면

우측과 같이 현재 값 7번째 이전의 값들의 평균을 구해서 표현하게 됨

 

2.4 이동 평균선

현재 분석 차트를 보면 기계들이 시시각각 10% 이상 증가하는 모습을 보인다!

기계를 좀 더 효율적인 시간대에 수리하기 위해서는 이평선을 그려봐야 한다

 

📌 이평선 그리기

위에서 배웠던 WINDOW_AVG 사용하여 구해보자!

8시간이라는 기준은 -7,0 범위를 통해 설정하고

이 함수는 항상 Datetime 기준으로 실행되어야 하므로 테이블 계산의 디폴트 차원을 Datetime으로 정해준다.

 

8시간 이평선이 잘 적용된 모습!

 

 

2.5 이동 평균선 분석 및 수정

이동 평균선은 데이터의 품질에 따라 표현이 크게 달라진다.

문제가 되는 부분의 데이터 품질을 검사하고 예외 처리할 수 있는 방안을 알아보자!

 

이평선이 10% 위로 올라가는 시점이 존재하는 기계들 유지 보수가 필요하다.

근데 SR4A와 SR1는 다소 불규칙한 이평선을 보이는데 이건 데이터가 부족해서 그럴 수 있다!

 

때문에 더 조사가 필요함

 

SR1의 데이터를 보면 13~16일 데이터가 없는 것을 확인할 수 있음!

 

이 문제를 해결하기 위해서는 테이블 계산에 대한 검증이 필요하고

엑셀에서 직접 공백 값을 넣어 수행해봐야 함

 

-> 수행 결과 공백 때문에 수치가 확 튀었던 것

이걸 태블로에서 어떻게 해결할 수 있을까?

 

생성한 테이블 계산 공식에 새로운 공식을 추가하면 됨! 어떤 조건?

-> 데이터가 충분하지 않으면 WINDOW AVG를 계산하지 않는다는 조건

 

-7번째 전부터의 막대 수가 8개를 만족하면 WINDOW AVG 계산

아니라면 NULL

 

변경 전과 후의 모습! 잘 적용된 거 확인할 수 있다.

 

2.6 추세선을 통한 인사이트

(1) 전처리

빨간 박스 부분의 데이터들 보면 다른 데이터들과 다른 점이 존재한다.

왜 이런 식으로 표현되는 것일까?

 

SR6의 데이터를 보면 작동을 하지 않는 상태이고

RL2의 데이터를 보면 최대 용량으로 작동한다.

이 기계들은 한 라인에서 작동하고 있고 여기서 문제가 생길 수 있다 것이다!

 

세워볼 수 있는 가설은

중간에 충돌 등이 일어나 운영이 힘들어졌다는 것

효율적으로 운영하기 위해 한 기계에 맡기는 것

 

 

 

 

 

 

추가적인 데이터를 더 확인해보자!

단지 평균이기에 발생한 것이 아니라 실제 데이터 셋이 이렇다! 라고 말하고 있는 상황

해서 한 대의 기계가 다른 기계를 지원한 시점에 발생한 데이터라는 사실을 유추할 수 있다.

즉, 계획된 용량 희생인 것! -> 교차 상관 관계

 

(1) 추세선 표시

[그래프 우클릭] - [추세선] - [추세선 표시]

데이터의 전반적인 트렌드가 어디를 향하고 있는지 확인할 수 있다

이걸 통해 얻을 수 있는 건? 기계의 성능이 점점 증가, 감소 하는지 확인할수 있음

> 급격히 증감하는 경우 뭔가 이상이 있다는 사실을 확인할 수 있다

 

 

3. 스토리 라인

1. 서식 수정

2. 크기 조정

3. 필요 없는 시각적 표현 삭제

4. 이미지 불러오기 및 대시보드에서 강조 표현 넣기 (부동 탭)

 

특히 눈여겨 볼 수 있는 부분은

SR4A : 추세선의 지속적인 증가와 함께 임계치에 가까워 지고 있다!! 유지보수 하지 않으면 위험🚨

SR6 - RL2 : SR6이 과부화 된 것으로 보이지만 RL2의 데이터와 상관관계를 갖기 때문에 이상이 없다는 것을 알 수 있다.

 

 


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

 

📌 번역체로 같은 의미를 갖는 것 같지만 다른 애들이 많다!

헷갈리는 부분은 따로 개념 잡고 가기🐯

 

 

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