본문 바로가기

카테고리 없음

01/17 :: Statics

전세계적으로 Analytic Engineer를 뽑는 추세 

 

통계의 기본정도는 알고 있으면 좋다. 

 

1. 

2. 많은 내용을 다루지만 deep하지는 않다.

3. 시야를 넓히기 위함.

 

 

 

통계 관련 둘러보기

ANOVA

 

분산을 통해서 평균이 다른지를 분석?

 

대표적인 가정 Assumption

: 정규성, 독립성, 등분산성  cf. 방법마다 다다름

 

정규성

modeling을 돌리고 나서 끝난 에러? '잔차'의 분포가 normal distribution을 따른다.

제일 중요하다.

 

독립성

관측칭의 순서에는 패터이 없다. 

중요도 낮음

 

등분산성

각 집단의 분산 동일 → 

비교적 덜 중요 

 

 

 

 

"모델에 문제가 왜 발생했는지 분석할 수 있는 능력이 중요함 = 진단하고 고쳐라"

 

Remedy : Normality

QQplot으로 확인 하는 것이 가장 낫다고 생각 
(순서 활용하여 만든 차트)

 

Kolmogorov

- 비교적 대표본에 적용

- 수십만 경우에는 적용 여부 잘 모르고  simulation 해봐야

 

가장 치명적 문제 발생하기 쉬움

 

Remedy : Independency 

사례) 집값 예측이 어려운 이유 : 보통 집값이 오르면 같이 오름 > 공간적 자기 상관성 Auto-correlation

bias 문제 x, 비교적 문제가 치명적이지 않다.

 

동일한 가중치를 비교하면 안좋다라는 말을 해주고 싶음

 

잔차Residual에 대한 시계열 Time-series 모델링으로 해결할 수 있음

 

 

Remedy : Equal Variance

Homoscedasticity vs Heteroscedasticity

각 집단의 분산이 동일하다는 가정 

 

가정이 어긋날시 2종오류의 위험이 증가

 

일반적으로 바틀렛 검정을 통해 진다

Skew를 잡아줌으로써 교정하는 경우가 많음. : log-transformation  

(수학적 지식으로 증명할 수는 있지만 딱히)

 

 

Equal Variance  : Welch-t test 

t-검정에서는 굳이 이분산성을 해결하지 않고,  이분산에도 잘 작동하는 모델 사용하기도 

 

Log변환의 효과 

독립변수 x의 값에 따라 y값 변동 有, x값 변화에 따라 y값 분산 달라지는 것은 일반적

 

사후검정Post-hoc

뭔지 모르겟다? 일단 Anova

가정에 따라 다양한 방법이 있지만, Tucky 정도 가장 많이씀

 

 

실지럭 의의 Practical significance  vs  통계적 의의 Statistical Significance

데이터가 통계적의미가 있다는 것과, 실질적으로 적용하기 유효한지는 다르다.

 

Regression과 R2

 

단순 선형 회귀의 검증

beta0는 없으면 안되지만 비교적 중요하진 않음

 

중요한 것은 beta1, t분포를 따른다. 

 

모델 자체에 대한 검정은 F분포를 이용

 

양측검정이라는 가정하, t의 제곱=F 

 

단순 선형 회귀 평가

 

SSR 모델이 설명한 것

SSE 모델이 모르겠다고 한 에러 

SST y의 분산

 

 

 

F분포 : 통계적 유의성 확보 위해 분포를 보는 것

R2 : 직관적으로 현실적으로 쓸만한지 확인하는 것 (통계적 기반이 아님)

 

다르게 해석되어야한다

전체 모형에서 회귀선으로 설명 할 수 있는 정도, 설명변수로 반응 변수 설명

 

cf. p-value는 어렵다. 고전 통계학의 한계가 있음. > 신뢰구간을 많이 씀

 

통계는 근본적으로 확률을 찾는 거라, 오류의 가능성이 있고 그래서 설정한 신뢰구간을 참조하여 하는 것이 좋다.

 

underfitting vs balanced vs overfitting

 

 

Adjusted R2  수정계수 R2

변수를 넣을 때마다 R2는 무조건 올라서, 변수를 추가할 때마다 패널티 주는거라 생각하면 좋음

 

Negative R2 ? 

 

 

 

머신러닝의 통계적 학습

 

 

딥러닝은 머신러닝 하위 분야 맞음,

그러나 데이터 타입에 따라 쓰이는 게 다르다

 

 

정형 데이터를 회귀분석 등 > 머신러닝

vison, 음성, 자연어 등 비정형 데이터 > 딥러닝

 

모든 함수를 표현할 수 있다는 것과 실질적으로 그러한가는 다르다

 

지도학습  / 비지도 학습 (대략적으로 보자)

 

 

Prediction 예측만 잘맞추면 된다.

Inference 예측도 중요하지만, 어떠한 요인이 어떻게 영향을 미쳤는지 확인 (데이터간 인과관계 추론) 

 

cf. 인과추론은 팬은 많은데 쓰기 힘든.. 쉽고 명확한 기법 쓰는게 편했다.

cf2. 머신러닝에서 inference 는 추론, 즉 예측값을 만드는 것을 의미하기도  <> 통계에서의 inference와  구분 필요

 

 

Data Split 

머신러닝에서는 데이터를 쪼개서 쓴다. 쪼개야한다 비율

Train :  Validation : Test 

 

보통 : 70 : 15 : 15

데이터 엄청 많다 : validation 줄이기도

 

나누는 이유? overfitting

 

 

Cross Validation 

 

Sampling 

다양한 샘플링 방법

 

Stratified sample 층화추출

Systematic sample  원하는 방식으로 systematic. 유용함

 

Ensemble

머신러닝에서는 성능향상을 위해 무조건 하게 됨

Bagging, Boosting

 

성능을 많이 내야한다고 보면 필수

 

Stacking

 

ML vs Stats

Adjusted R2 vs Test R2 

 

통계학은 머신러닝 급으로 데이터가 많지 않음

 

변수선택

step wise 좋은 것부터 넣고 쓸모없어진 것 같다하면 빼는 것 > 반복하면서 최적의 변수를 찾기

 

Feature selection 

 

 

AIC , BIC

 

큰 기업일수록 예측에서 0.몇퍼센트 성능향상만 있어도 돈이 벌림

변수 수십만개 사용한 경우도 있음(물론 프로그램으로 프로젝트 별 변수를 자동을 생성해서 가능했음)

 

 

통계의 어려움 Collinearity 

다중공산성

기준이 명확하지 않은 건 맞음

 

해석학 : 정리를 세우고 만들어가는 과정.

 

선형대수학 관점에서 공부하는 것이 필요. 이해하지 못하면 한계가 있음

선형대수학, 미적은 필수

 

진짜 잘하고 싶다하면 해석학

 

 

추천시스템

 

보통 user들은 명확한 반응이 잘 없음 

 

cf. graph 인기많고 좋아하지만 관련 모델로 이득 본 경험이 적었음. 

 

 

Two Stage

 

stage 1. 수백만개의 item에서 몇십만개의 item으로 추리고 

stage 2. 이후 이를 기반으로 계산

 

 

 

1일차 : 실습코드

2일차 : 머신러닝 방법 중 통계가 있는 것을 볼려고 함

 

 

 

실습

지금까지는 마지막 열차가 아닐까?

Halucination이 너무 심함. 코드가 통계학적으로 틀린 경우가 너무 많음

 

ex) queory 쿼리

 

실무자로서 도움이 되는가?

gpt가 알아서 파라미터를 뽑지만 결과를 어디까지 신뢰할 수 있는가? data literacy 문제 발생 

 

요새는 코드테스트도 라이브 코딩 해버리니 gpt 다 쓸 수는 없음

 

 

tqtm 좋음 : 데이터 진행속도 보는데 도움됨

 

참고) numpy는 ddof=0, pandas는 ddof=1 깎아줌. 자유도 추후 설명

 

assert는 테스트 용으론 좋지만, 개발용으론 쓰지마라 

 

cf. 데이터 사이언티스트는 준개발자라고 보면 됨. 

ex) air flow에게 맡겨놓거나 하는 등 응용은 많이하긴 함. 다만 관리면에선 엔지니어 분들이 진퉁이다

 

 

qqplot 해석

 

normality 망하면 equal variance 망함

 

 

Remedy 

Q. Outlier의 제거?

주변 상황과 맥락을 봐야함. 또 직종과 포지션에 따라 다름 (ex 모바일 게임 실적에선 핵과금 유저를 집중관리)

 

얼마나 있는지 report를 시키기. 분별하는 코드를 사용.

z_score 활용

 

회사에서 의사결정 위해서 하는 것이다 > 조금 어긋낫다고 막 뭐하진 않을듯

 

데이터는 현상을 보여주는 것이지 왜 그런지는 추론하기 어려움

논리적 비약이 심함

 

 

입사를 할때마다 지표를 구함

여러번 다른 방법으로 구해서 오류가 있는지 검증함  > 정확성 검사 특히 분석가들에게는 중요함

 

 

2일차 맛보기

 

 

 

쓰고 계시는 책

https://wikidocs.net/book/7982

 

Introduction to Basic Statistics in Python

*5월 2일 현재 4챕터까지 업데이트 되었습니다. 5챕터는 제작 중이며 2023년 1분기 예정입니다. 데이터가 각광받는 시대가 오면서, 더 많은 곳에서 통계학이 사용되고 있…

wikidocs.net

 

 

결론 :

현업에서도 전부를 알고 진행하지는 않으나, 알고 쓰면 좋은 것 같다.