22.10.07
앞으로 공부하는데 필요할 각종 통계 지식을 배우는 시간이었다.
집중하지 못한 것 같아 아쉬움이 있지만, 그래도 배운 것들이 있다!
대상의 특성을 수치로 표현하기
양적이든 질적이든 가능, 객관적인 수치가 아니어도 됨. 수치가 대상을 파악하기에 좋은 성질을 가지고 있어야 함.
부분을 통해 전체를 추측하기
대부분의 경우 대상의 일부만을 관찰할 수 있으므로, 전체를 추측해야 함. 합리적으로!
비교하기
여러 개의 대상을 비교 (A/B 테스트 등) 대상들 사이에 어떤 차이가 있는지, 그게 정말로 존재하는 것인지, 대상들 자체의 특성에 기인한 것인지.
예측하기
어떤 특성은 다른 특성보다 쉽게 알 수 있다. 한 대상의 여러가지 특성들은 서로 관련을 맺고 있으므로, 쉽게 알 수 있는 다른 특성으로부터 알기 어려운 특성을 예측할 수 있다. 미래에 대한 예측만을 의미하는 것은 아님. 미래는 어렵다!
영향력을 미치는 변수 찾기
대상의 한가지 특성은 여러가지 특성으로부터 영향을 받고, 어떤 특성은 다른 특성보다 직접적으로 변화시키기 쉽다. 목적으로 하는 특성에 영향이 큰 변수를 분별하여 해당 변수를 조절해 목적으로 하는 특성을 조절할 수 있다.
지수(index)만들기
대상의 특성 중에는 직접적으로 관찰하기 어려운 것이 있음. 이러한 특성(만족도)은 관찰 가능한 다른 특성들(재구매, 추천 등)과 연관을 맺고 있음. 관찰가능한 특성들을 바탕으로 관찰하기 어려운 특성을 지표화할 수 있다! 이런 지표를 통해 관찰하기 어려운 대상을 통계적으로 다룰 수 있다.
대상 자체가 실재하지 않는다 해도(고객 만족도 등) 이 지표를 통해 의사결정이 쉬워진다.
비슷한 것끼리 모으기
비슷한 것을 모아서 하나의 집단으로 인식하면 편리한 경우가 있다. 대상의 다양한 특성들을 바탕으로 비슷한 것끼리 모을 수 있다. 뭐 RFM segmentation 같은 것도 이런 예시다.
데이터를 표로 정리하기
행 : 표에서 가로 방향 한 줄, 하나의 사례
열 : 표에서 세로 방향 한 줄, 하나의 변수
범주형 변수
종류, 이름 등에 해당
숫자로 표시하더라도 양적인 개념이 아님 -> 연산을 하면 오류만 나고, 아무런 의미가 없음
덧셈 등 대부분의 연산이 의미가 없음
순서가 있을 수도 있으나, 간격이 일정하지 않음
주거형태, 고향, 학력, 출석, 주민번호 등
수치형 변수
중 연속형 변수
연속적인 형태, 간격이 일성하고 덧셈 뺄셈 등의 연산이 의미가 잇음
무게 나이 시간 거리 자녀의 수, 시험 점수 등
범주형인지 연속형인지 애매하면, 평균을 내보았을 때 말이 되는지 판단하면 된다!!!! 주민번호 1과 3을 평균내면 2다? 이상하다! -> 범주형
평균(mean)
N개의 값이 있을 때, 그 합계를 N으로 나눈 것
극단값에 따라 영향을 크게 받음
중간값(median)
값들을 크기 순으로 정렬했을 때 중간에 위치한 값
중위수라는 표현도 많이 사용(중위소득 등)
최빈값(mode)
가장 많은 사례에서 관찰된 값
연속 변수보다는 범주형 변수에서 유용
연속 변수의 경우 구간을 나누어 최빈값을 구하는 경우가 많음
분위수(quantile)
크기순으로 정렬된 데이터를 q개로 나누는 위치의 값
- 사분위수(quartile)
데이터를 4등분하는 위치. 1분위수 : 25프로, 3분위수 : 75프로
- 백분위수(percentile)
데이터에서 순위를 퍼센트로 표현 0퍼센타일(최솟값) ~ 100 퍼센타일(최댓값)
python에서 실습!
df.min(), max(), quantile(.25) : 25퍼센트
범위 (range)
최대값 – 최소값
극단값이 있으면 커짐
-> 사분위간 범위(IQR) : 양쪽 끝을 잘라내겠다. (InterQuartile Range) -> 극단값의 영향 줄임
== 제 3분위수 – 제 1분위수
편차
값 – 평균
분산 (var)
편차 제곱의 평균(편차의 평균은 0이 되므로)
표준편차 (std)
분산의 제곱근
python에서 실습!
df.var(), std()
모집단과 표본
- 모집단(population) : 연구의 관심이 되는 집단 전체
- 표본(sample) : 특정 연구에서 선택된 모집단의 부분 집합(우리가 가지고 있는 데이터셋)
모수 (population parameter)
- 파라미터 : 어떤 시스템의 특성을 나타내는 값 (연비, 무게 등이 자동차의 parameter)
- 모수 : 모집단의 파라미터 -> 모집단의 특성을 나타내는 값 (예시 : 모평균, 모분산)
통계량 (sample statistic)
- 표본에서 얻어진 수로 계산한 값(통계치)
- 표본평균, 표본분산 등
모집단에서 구한 값은 모수, 표본에서 구한 값은 통계량이라고 부른다.
표집(sampling)
모집단에서 표본을 추출하는 절차, 표본 추출이라고도 함
추정(estimation)
통계량으로부터 모수를 추측하는 절차!
하나의 수치로 추정하는 점 추정(추정 결과가 수치 하나)과, 구간으로 추정하는 구간 추정이 있다.
구간 추정 방법에 대해 알아보자.
신뢰구간
신뢰수준
신뢰구간에 영향을 주는 요소
python 실습
pingouin을 설치하여 이용한다.
pip install pingouin
import pingouin as pg
pg.ttest(df.price, 0, confidence = 0.95)
>>>
T dof alternative p-val CI95% cohen-d BF10 power
T-test 42.483582 273 two-sided 2.486212e-122 [814.1, 893.22] 2.566527 2.773e+118 1.0
부스트스트래핑의 경우 scipy를 활용한다.
import numpy as np
import scipy
scipy.stats.bootstrap([df.price],np.median, confidence_level = 0.95)
>>>
BootstrapResult(confidence_interval=ConfidenceInterval(low=770.0, high=860.0), standard_error=22.479610623773738)
p값(p-value)
귀무가설을 바탕으로 데이터에서 관찰된 결과와 그 이상의 극단적 결과가 나올 확률을 계산한 것
유의 수준 = 100% - 신뢰수준이다.
가설 검정의 결과 중 오류
pg.ttest(df.price , 900, confidence=0.95)
Pvalue vs 상관계수
상관계수가 커지면 pvalue가 작아진다.
python에서?
pingouin의 corr 혹은 pandas의 corr를 사용한다.
pg.corr(df.price, df.mileage)
를 통해 price 변수와 mileage 변수 사이 상관관계를 파악할 수 있다.
지도학습 : 독립변수 x를 이용하여 종속변수 y를 예측하는 것
독립변수란, 예측의 바탕이 되는 원인 혹은 입력 값을 의미
종속변수란, 예측의 대상이 되는 결과 혹은 출력 값을 의미
지도학습에서 종속변수가 연속인 경우 회귀분석이고, 범주형인 경우 분류분석이다.
예측값 – 실제값으로 회귀분석의 정확성을 계산한다.
선형 모형 : 직선의 방정식 이용. y^ = wx + b
python에서의 회귀분석
statsmodels 모듈을 사용한다.
from statsmodels.formula.api import ols
m = ols("price ~ mileage", data = df).fit()
m.summary()
ols 함수 내에서, 종속변수 ~ 독립변수의 형태로 작성하면, 회귀분석의 모형이 되는 관계식을 의미한다.
다음과 같이 여러 변수를 설정할 수도 있다.
m = ols("price ~ model + mileage + year", data = df).fit()
m.summary()
이렇게 다중 변수에 대한 회귀분석도 시행할 수 있다.
범주형 변수에 대한 회귀분석도 사용할 수 있다.
m = ols("price ~ model", data = df).fit()
m.summary()
수치형 변수와 똑같이 사용한다. 이때, 회귀분석이 진행되는 방법이 좀 다르다.
dummy변수를 활용하여 회귀분석이 진행된다.
dummy변수란, 독립변수를 0이나 1의 값으로 표현한 변수를 의미한다.
범주가 두개(avante, k3)인 범주형변수 model에 대해 회귀분석을 진행할때, dummy변수 model[T.K3]가 생성되어 k3이면 1, avante이면 0이 되어 어떤 범주에 속하는지를 표현하게 된다.
범주형 변수에 범주가 k 개 있을 경우, k-1개의 더미 변수를 투입하여 어떤 범주에 속하는지를 표현할 수 있다.
수업에서 배운 내용은 여기까지! 데이터 분석을 위해 필요한 여러 기초적인 통계 지식을 배웠다.
그런데 자료가 너무 좋은데.. 내용도 많고... 못 배운 내용들이 많아서 아쉬웠다.
그래서 한 번 읽어나 봤다.
이해는 못하겠더라!
A/B test
고객들에게 서로 다른 웹 페이지나 광고를 보여주고 목표 지표(예 : 전환율)를 측정
작은 실험을 자주, 많이 해야 한다
당연하거나 터무니 없어보이는 아이디어도 실험할 필요
집단 비교 통계 처리 중
- t-test
두 집단의 평균이 같은지 다른지를 판단한다.
이걸 좀 자세히 배워보고 싶었는데 아쉽다 ㅠㅠ
- 분산 분석
집단 간 분산과 집단 내 분산의 비교를 통해 각 집단의 평균에 차이가 있는지를 검정
이거랑 t검정이랑,, 뭔지 전혀 모르겠다!
여러가지 상관계수
피어슨, 스피어만, 켄달 등 다양한 사람들이 상관계수를 정의하였다.
가장 대표적인 것은 피어슨의 상관계수로, 공분산을 두 변수의 표준편차의 곱으로 나눈 것이다.
공분산은 두 변수의 편차의 곱을 n-1로 나눈 것이다.
잔차와 최소제곱법(Least square)
잔차란, 실제값과 예측값의 차이를 의미한다.
잔차분산은 잔차를 제곱하여 평균낸 것이다. 잔차분산이 크다는 것은 예측이 잘 맞지 않다는 것이다.
따라서, 최소제곱법을 활용한다. 최소제곱법은 잔차 분산이 최소가 되게 하는 계수를 추정하는 방법이다.
가장 널리 사용되는 추정 방법이다.
예측
회귀분석을 통해 만든 모형을 이용하여 다른 입력값에 대해 결과값을 예측할 수 있다.
R squared
회귀분석에서 예측의 정확성을 판단하기 쉽게 만든 지표
1에 가까울 수록 y를 정확하게 예측할 수 있다.
표준화
다중 회귀분석에서 독립변수의 단위가 달라, 종속변수에 대한 영향력을 비교하기가 어렵다. 따라서 표준화를 통해 평균 = 0 표준편차 = 1이 되게 만들어주어 변수의 단위를 제거, 상대적인 영향력을 비교할 수 있다.
(x - 평균) / 표준편차
overfitting(과적합)
주어진 표본에 가장 잘 맞는 계수를 추정하였기 때문에, 지나치게 주어진 표본에만 맞는 변수를 추정할 경우 모집단의 계수와 다를 수 있다.
독립변수의 개수에 따라서 R값이나 잔차분산이 달라지므로, 수정된 R제곱 값을 사용하기도 함.
교차 검증
훈련 데이터셋으로 추정 후, 테스트 데이터셋으로 예측 성능을 검증하는 방법. LOOCV, k-fold 등 다양한 방법이 있다.
교차 검증의 결과 훈련오차와 테스트 오차를 비교하여 모델을 어떻게 수정해야할지 결정할 수 있다.
단계적 회귀분석
독립변수를 하나씩 추가 혹은 제거하며 종속변수를 잘 예측하는 변수들을 선택하는 기법
통계적으로 유의한 예측변수들만을 골라낼 수 있다.
독립변수를 하나씩 추가하는 전진 선택과, 하나씩 제거하는 후진 선택이 있다.
변수의 변형
변수에 로그함수를 취해주는 등의 방법으로 비선형 변환을 하여 선형 모형의 한계를 일부 극복할 수 있다.
2차항을 추가할 수도 있으며, 절편을 없앨 수도 있고, 절편을 이동시킬 수도 있다.
다중공선성(multicollinearity)?
독립변수들 사이에 서로 예측가능한 관계들이 있는 경우, 추정치가 불안정해질 수 있는 문제
이런 경우 데이터를 더 모으거나, 다중공선성 문제를 일으키는 변수를 제거하는 등의 행위를 해준다.
분산팽창계수(VIF)를 통해 다중공선성을 판단할 수 있다.
이는 하나의 독립변수를 다른 독립변수들로 회귀분석한 값을 이용한다.
- 조건수
입력의 변화에 따른 출력의 변화를 나타내는 수
- 센터링
평균을 빼 주는 것. 변수를 변환하기 전에 센터링을 하면 다중공선성을 완화할 수 있다.
로지스틱 회귀분석??
0과 1사이의 값을 가지는 로지스틱 함수를 이용해 회귀분석을 진행한다. 로지스틱 함수 𝜎(z) = 1 / (1 + e^-z)
로지스틱 회귀분석은 𝑦=𝜎(𝑤𝑥+𝑏)의 형태이다.
승산
p/(1-p)
logit : 로그 승산 log(p/(1-p))
한계 효과
x의 추가 변화에 따른 y의 추가 변화.
선형모형에서는 한계효과가 기울기인 w로 일정하지만, 로지스틱 회귀분석에서는 x에 따라 다르다. 반면 로짓의 한계 효과는 일정하다.
wx + b = 0 일때, 한계효과가 가장 크다.
로지스틱 회귀분석의 적합도 지수
다양한 값을 이용해 구할 수 있다. 로그우도, 이탈도, AIC, BIC 등이 있다.
우도
특정한 추정치에서 관찰된 데이터가 나올 확률
정칙화(regularization)
일반화 오차를 줄이기 위한 기계학습의 모형이나 알고리즘의 수정
노름(Norm)
길이 또는 크기를 일반화한 개념. p값에 따라 형태가 달라지는 Lp노름
L1 정칙화
손실함수에 파라미터의 L1노름을 추가한다. LASSO. 가중치를 0으로 만드는 경향이 강하다.
L2 정칙화
손실함수에 파라미터의 L2노름을 추가한다. RIDGE. 혹은 Weight Decay. 가중치를 전반적으로 작게 만드는 경향이 강하다.
상호작용
두 독립변수의 곱으로 이루어진 항. 기울기나 절편을 변화시킨다.
인과효과
횡단비교, 종단비교, 이중차분법(대조군이 없을 때 종단비교를 비슷한 집단 B의 종단비교와 횡단비교한다.)
횡단비교는 동일 시점에 다른 집단간 비교, 종단비교는 다른 시점에 동일 집단간 비교
강의 자료에 엄청 다양한 내용들이 있어서 한번 읽어만 봤다.
뒤로 갈수록 이해되는게 하나도 없었다. 이해하기를 포기한 것 같기도 하고!
나중에 이런 내용들을 알아야 해서 공부할 때, 그때 거기서 봤었던 것 같다 라는 느낌이라도 들면 좋겠다!