[데이터 분석 부트캠프] 데이터 분석을 위한기초 수학/통계(2)
2023. 6. 27. 18:24ㆍIT 라이프/패캠 데이터분석 부트캠프 9기
반응형
기초통계에서 사용하는 지표들은 수식이나 기준이 되는 값을 외울 게 아니라 어떤 방법/값으로 데이터의 특성을 파악할 수 있는지를 알아서 적재적소에 사용할 수 있어야 한다. 데이터를 탐색(EDA)할 때 지표들을 한 번 정도는 항상 확인해야 데이터의 특성을 파악할 수 있다. 데이터의 특성이라고 썼지만, 더 정확하게 말하자면 변수(column) 하나 하나에 대한 기초통계량도 봐야하고, 변수간 상관관계도 봐야하고, 변수 각각의 분포도 확인해야 한다. 이럴거면 데이터를 보기 전에 일괄로 거칠 수 밖에 없는 수치들은 미리 정의해두고 파이썬으로 뽑게 해도 되겠다 싶다.
1. 기술통계
⌘ 기초통계량(1)- 중심경향성
- 중심경향성 : 데이터 분포의 중심을 보여주는 값
- 최빈값(Mode) ← 이산형 자료 뿐 아니라 범주형 자료에서도 대표값으로 주로 사용됨
- 중앙값(Median) ← 자료를 크기 순으로 나열할 수 없는 데이터에서는 사용 못함, 이상치에 크게 영향 안받음
- (산술)평균값(Mean) ← 주로 연속형 자료에 사용
- 가중평균(Weighted Mean) : 자료의 중요도나 신뢰도에 따라 가중치를 부여한 평균
- 기하평균(Geometric Mean) ← 성장률 등 이전 시점에 대한 비율에 대한 평균을 구할 때 유용 (예) CAGR(연평균 성장율), 주가 상승률)
⌘ 기초통계량(2)- 퍼짐정도
- 분산(𝜎²) = 편차 제곱의 합을 자료의 수로 나눈 값(샘플이라면 자료의 수 - 1로 나눔)
- 표본분산, 모분산은 구할 때 분모값이 달라짐에 유의
- 편차(𝜎) = 분산의 제곱근
- 범위(range) = 최대값 - 최소값
- 단점: 분산 그래프의 모양을 알 수가 없음, 극단치가 미치는 영향이 매우 큼
- IQR = 제3사분위수 - 제1사분위수
- 한쪽으로 치우친 분포의 퍼짐 정도를 확인할 때 주로 사용
- IQR만 보지 않고 각 분위수를 모두 확인한다고 함
⌘ 기초통계량(3)- 왜도,첨도
- 왜도(skewness) : 분포가 정규분포에 비해 얼마나 비대칭적인지를 나타내는 지표
- positive skew (0보다 크다) : 좌편향성, 오른쪽 긴꼬리 분포
- 최빈값(Mode) < 중앙값(Median) < 산술평균(Mean)
- 왜도가 0이다 : 좌우대칭이다(실제로는 거의 불가능하지)
- 최빈값(Mode) = 중앙값(Median) = 산술평균(Mean)
- negative skew (0보다 작다) : 우편향성, 왼쪽 긴꼬리 분포
- 산술평균(Mean) < 중앙값(Median) < 최빈값(Mode)
- 해석 : -3 < 왜도 < 3이면 거의 대칭이고 정규분포와 비슷하다고 봄 (이 기준값을 외우고 있을 필요도 없음. 필요할 때 찾아 쓰면 됨). 이 구간을 벗어나 절대값이 클수록 비대칭 정도가 심하다는 의미.
- positive skew (0보다 크다) : 좌편향성, 오른쪽 긴꼬리 분포
- 첨도(kurtosis) : 평균을 중심으로 얼마나 가까이 몰려있는지 나타내는 지표 = 양쪽 꼬리의 두터움 정도를 나타내는 값, 편차가 큰 데이터가 많을 수록 값이 커짐, 이상치에 영향을 많이 받음(극단적인 편차 또는 이상치가 많을 수록 큰 값의 첨도가 나타남-그래서 이 수치만 믿으면 또 안됨)
- 도수 곡선(度數曲線)의 최빈치(最頻値)를 중심으로 하는 부분의 완만함·뾰족함의 정도를 나타내는 수치
- 첨도가 0보다 크면 중심으로 많이 몰려있고 뾰족함(정규분포에 비해서)
- -8 < 첨도 < 8이면 정규분포랑 비슷하다고 봄, 8이상이면 더 뾰족하고, -8미만이면 덜 뾰족함
2. 회귀분석, 공분산, 상관계수
⌘ 회귀분석
- 회귀분석 공부해야 하는 이유
- 결과를 설명하기 위해 다양한 변수(요인)가 사용되어야 함(현실…)
- 둘 이상의 변수 간 관계를 보여줌
- 종속변수(y)에 영향을 미치는 독립변수(x)의 영향력을 판단가능
- 회귀분석 : 변수 간 모형을 구한 뒤 적합도를 측정하는 분석방법 (예. 선형 회귀모형) 즉, 점들의 경향성을 표현하는데 가장 적합한 선을 찾아내는 과정이 회귀분석임
- 주의점: 인과관계를 설명해주지는 못함. 그래서 종속변수와 독립변수를 잘 설정해줘야 함
⌘ 공분산(covariance)
- 2개의 확률변수의 선형 관계를 나타내는 값
- 공분산의 부호에 따른 상관관계 여부 판단
- - : 음의 상관관계 (cov(X,Y) < 0)
- 0 : 상관관계 없음
- + : 양의 상관관계 (cov(X,Y) > 0)
- 표본공분산은 분모가 n-1이 됨(이전에 이미 봤던 내용)
- 주의점
- 두 변수간 관계가 없는 독립 변수일 때 공분산 = 0
- 공분산 = 0이라고 해도 두 변수가 독립이 아닐 수 있음 (공분산 = 0인 경우를 실제로 보긴 쉽지 않으니 간단히 넘어가자)
⌘ 상관계수
- 피어슨 상관계수(Pearson correlation coefficient)
- 두 변수간의 경향성과 상관성을 보기 위해 사용됨
- 표준화를 시킨 것임(따라서 스케일이 다른 것들도 비교가 가능해졌다)
- -1 ~ 1 범위의 값을 가짐
- 도메인과 상황에 따라 다르지만 |0.5| ~ |0.7| 이상이면 강한 상관관계를 가진다고 보고, -0.2 ~ 0.2는 상관관계가 약하거나 없다고 해석
⌘ 엑셀 실습
- 데이터의 각 변수(column)의 특징을 파악하기 위해 대표값을 뽑아보고, 피벗차트를 통해 분산 모양을 살펴볼 수 있음
- 엑셀함수로도 구할 수 있고, 데이터 분석(기술통계량)을 활용해서도 대표값을 뽑을 수 있음
- 단, 데이터 분석으로 뽑을 경우, IQR(제3사분위수 - 제1사분위수)값 관련값은 안나오므로 함수로 따로 뽑아주기
- 제1사분위수 =quartile(범위,1)
- 제3사분위수 =quartile(범위,3)
3. 데이터 분포 파악하기
- 피벗차트 그릴 때 팁
- 값을 일일이 보기에 지저분해서 묶어서 보고 싶을 때 사용할 수 있는 방법
- 짝수로 값을 묶기 위한 값 변환(버림 일괄 적용) : =floor.math((셀/2)*2)
- 5의 배수로 값을 묶기 위한 값 변환(버림 일괄 적용) : =floor.math((셀/5)*5)
- 값을 일일이 보기에 지저분해서 묶어서 보고 싶을 때 사용할 수 있는 방법
4. 이상치 탐지
- 이상치 탐지하는 방법으로 사분위수(IQR)과 정규분포(Z-score)가 있는데
- 데이터가 정규분포인지 아닌지 정규성 검정을 하여 정규분포가 아니면 사분위수(IQR)를, 정규분포면 정규분포(Z-score)를 사용함
⌘ 사분위수(IQR)을 활용한 이상치 탐지 = Box-Plot을 활용한 이상치 탐지
- 원래 데이터가 정규분포나 종모양 형태가 아닌 한쪽으로 치우친 경향이 있을 때 보통 사용하는 이상치 탐지 기법
- 실습내용 중 이상치 구하는 과정
- 엑셀 함수 quartile()로 Q1, Q3를 구함
→ IQR = Q3 - Q1, IQR을 구함
→ Q1과 Q3 기준으로 각각 이상치 경계값을 구함 (Q1 - 1.5*IQR, Q3 + 1.5*IQR)
- 엑셀 함수 quartile()로 Q1, Q3를 구함
- 이상치들만 모아놓고 어떤 특징이 있는지 살펴보거나 할 수도 있음
⌘ 정규분포(Z-score)를 활용한 이상치 탐지
- 정규분포를 알려면 평균(m), 표준편차(std)만 알면 됨
- 따라서 우선 이 과정을 위해서는 평균과 표준편차를 구해야 하고 각각 엑셀에서는 함수 average(), stdev.s()를 사용
- 이상치 탐지 방법이 두 가지 있는데 이 두 가지의 결과로 판단된 이상치는 동일함
- 방법1) 독립변수를 정규화(Z-score 구하기)해서 이상치 탐지
- Z-Score = (X-m)/std
- 해석: Z-Score값이 -3 ~ 3 범위를 벗어나면 이상치라고 보통 간주함
- 예시) =IF(OR(C2<-3,C2>3),1,0)
- 방법2) 알고 있는 평균, 표준편차를 이용하여 이상치를 뽑아내는 방법
- Z-Score값의 이상치 판단 경계값인 -3, 3을 Z-score에 대입하면 독립변수 X 중 어디가 이상치의 경계값인지를 알 수 있음 (X = m - 3 * std, X = m + 3 * std)
5. 상관관계를 찾는 실습
⌘ 산점도 활용 및 회귀선 찾기 (실습)
- 두 변수 간 상관관계가 있는지, 있다면 비례, 반비례 여부를 알기 위해 산점도로 시각화 한 후, 추세선(선형)을 추가하여 확인할 수 있음
⌘ 공분산, 상관계수 측정 및 회귀선 비교하기 (실습)
- 데이터분석 탭으로 공분산 분석과 상관분석의 결과값을 살펴봄
- 공분산 분석
- 0에서 먼 양/음의 값을 확인하였으나 여기서 큰 값은 단순히 변수 자체가 큰 값인 경우가 많아서 해석에 어려움이 있다고 함. 솔직히 잘 이해는 안감. 암튼 그래서 공분산 값만 믿지 말고 상관분석을 꼭 해야 함
- 상관분석
- 공분산을 정규화한 값이므로 스케일이 다른 변수들 간에도 비교가 가능함
- 공분산 분석의 결과값으로는 상관관계가 별로 없다고 봤던 두 변수가 상관계수 값은 0.8로 높은 편으로 높은 상관관계를 갖는 것으로 보였음(산점도 그려서 재확인)
- 결국 공분산보다는 상관분석을 해봐야겠단 생각이 듦(강사님도 그걸 추천하셨고)
- 실습에서는 품종 3가지의 분류없이 Sepal length/width, Petal length/width 4가지 변수간 상관관계를 확인했기에 결과를 보며, 품종을 분류하고 군집별로 각각의 4가지 변수간 상관관계를 봤으면 결과는 달라졌을 것 같다는 강사님 의견에 동의가 되었음
정리
- 아쉽게도, 현실에선 어쩔 수 없이 추론통계를 거의 쓰게 된다고 하셨는데 커리큘럼에는 신뢰도나 p-value 등 추론통계와 관련된 내용이 없다...이건 추후에 따로 찾아봐야지.
- 회귀분석이 무엇인지 설명하실 때 적합도를 측정하는 분석방법 중 하나라고 하셔서 다른 방법에는 뭐가 있고 어떤 경우에 따라 적합도 측정방식이 정해지는 건지도 궁금해졌다.
- 왜도가 엄청 헷갈렸다. 개념이 아니라 그래프에서 pos/neg에 대해 치우친 방향이 설명하는 그래프와 반대여야 할 거 같이 생겨서. 하지만 이상치 탐지방법은 배웠는데, 이상치라고 무조건 제외할게 아니라고 하시는 설명을 여러번 들었는데 그 뒷부분에 대해서는 전혀 안다뤄서 배우다 만 느낌이 든다.
- 두 변수간 상관관계를 알아보기 위해 공분산 분석과 상관분석의 결과값을 보고, 산점도와 추세선으로 시각화한 차트도 확인해 보았지만 아직도 의문이 남은 게 있다. 강사님이 그래프를 보시며 산점도와 추세선만으로 상관관계가 있다고 말할 수 없다고 하시며 상관계수나 데이터의 분포 등을 확인해봐야 한다고 하신 부분이 있었는데, 우선 해당 그래프의 상관계수는 -0.35라는 점. 물론 다른 변수들간 상관계수들 보다 상대적으로 작은 값이었지만 이 값 자체가 절대값 0.2보단 크니까…여기서 경우에 따라 항상 그 절대값을 기준으로 볼 수는 없다고 하면 또 할 말은 없다. 그럼 다음으로 볼 것은 데이터의 분포를 봐야 한다는 건데, 구체적으로 뭘 보라는 건지 설명이 없어서 모르겠지만 추세선과 관계없이 산점도 그래프 자체를 봤을 때는 추세선과는 큰 상관없이 퍼져있는 모양이긴 했다. 그걸 보란 말씀이신건지…
- 또 궁금했던게, 산점도를 그린 이후에 추세선을 그릴 때 종류가 선형, 지수, 선형예측, 평균이동이 나오는데 이들 중 어떤 걸 선택할지 판단의 기준이 되는 검정이 앞서 이루어져야 하는지가 궁금해졌다.
아...예상도 했지만 앞부분 통계 내용은 비교적 클리어했는데 뒤로 갈수록 뭔가 개념이 명확하게 들어오지 않는 것 같다. 계속 되짚어보며 생각하는건 1) 이건 어떤 경우에 쓰는지 2) 분석 대상이 변수 1개인지 아니면 2개인지 3) 무엇을 알아내기 위한 과정인지 또는 X값과 평균, 표준편차의 조합을 input으로 써서 해당 함수를 거쳐 나온 결과값들은 무엇을 의미하는지 정도인 것 같다. 특별히 무슨 의미인지 더 초보자의 눈높이에 맞춰주셨으면 하는 아쉬움도 있고, 반대로 언급은 하셨는데 이 과정에서는 알 필요가 없으니 스킵하겠으나 현업에서는 알아야 한다는 말씀을 들으면 동공지진이 난다. 스스로 파생해서 학습할 양이 급 방대해지는 느낌이다.
728x90
반응형
'IT 라이프 > 패캠 데이터분석 부트캠프 9기' 카테고리의 다른 글
[데이터 분석 부트캠프] 데이터 분석을 위한기초 수학/통계(4), 시각화 (0) | 2023.06.29 |
---|---|
[데이터 분석 부트캠프] 데이터 분석을 위한기초 수학/통계(3) (0) | 2023.06.28 |
[데이터 분석 부트캠프] 친근한 엑셀로 실무 엑셀 데이터 분석 시작하기(3) (0) | 2023.06.26 |
[데이터 분석 부트캠프] 데이터 분석을 위한기초 수학/통계(1) (0) | 2023.06.23 |
[데이터분석 부트캠프] 친근한 엑셀로 실무 엑셀 데이터 분석 시작하기(2) (0) | 2023.06.23 |