본문 바로가기
AI

(2024-01-17) 통계

by busybee-busylife 2024. 1. 24.
반응형
  • ANOVA(Analysis of Variance)
    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
  • 대표적인 가정Assumption
    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
  1. Remedy: Normality
    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
    • 그 외 Shapiro, Kolmogorov
  2. Remedy: Independency
    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
    • 시간적 자기상관성: e.g.
    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
    • 진단: DW검정
    • 해결: ARIMA등 시계열 모형을 사용
  3. Remedy: Equal Variance
    • Homoscedasticity vs Heteroscedasticity
    • 각 집단의 분산이 동일하다는 가정
    • 평균이 높아지면 분산이 커지는것이 자연스러움
    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
    • 방안: 로그변환 등
    • Welch-t test
  • 실질적 의의(Practical Significance)
    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
  • 단순 선형 회귀
    • 피쳐(독립변수) 1개만
    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
    • 양측 단측
    • 단순선형회귀에서는 t = F
    • 다중에서는 다르다
    • SSE: 에러 / SSR: 설명하는 부분
    • F분포(p-value): 통계적으로 유의한가
      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
      • p-value 대신 신뢰구간을 사용할 것을 추천
      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
      • 0.001: 1000번 중 1번은 괜찮다
    • R제곱: 실질적으로 유의한가
      • 분포에 대한 가정은 없다
      • X(변수)를 추가하면 R제곱은 무조건 증가
      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
      • Negative R2가 나올 수 있을까?
      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
  • 머신러닝의 목적
    • Prediction: 예측 잘 맞추면 장땡
    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
  • Sampling
    • Simple random sample
    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
      • random seed를 고정해도 안된다
      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
    • Stratified sample
    • Cluster sample
  • Ensemble
    • 모델 여러개를 조합
      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
      • Boosing: Sequential. 모델 사용을 연쇄적으로
    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
    • Explicit feedback: 따봉
    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
      • ‘싫어하는 것’도 구별해야
    • graph 모델: e.g. 트위터도 그래프 모델을 공개
      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
  • Test R2:
  • 변수선택
    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
      • 파이썬에는 없다(전수조사하면 되니까..)
  • Collinearity

콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.

  1. 콜라이니어리티 (Collinearity):
    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
  2. 자기상관 (Auto-correlation):
    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.

요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.

  • Data Literacy 관점에서 통계 필요
    • ChatGPT에게 오롯이 맡길 수 없다
  • 실습
  • Ridge / LASSO
    • 쓸데없는 베타값을 없앤다
    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
  • Splining Regression
    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
  • Quantile Regression
    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
  • Logistic Regression
    • 비선형함수인 logistic funcion을 활용한
    • sigmoid: S자. 대표적인것이 logistic
  • Link funcion
    • 선형회귀에서는 normal을 사용
  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
  • 푸아송 분포
    • 단위 시간(혹은 공간)당 횟수의 분포
      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
    • 제약이 많아 현실적으로는 많이 사용하지 않음
  • 평균을 구해보자
    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
  • 불확실성을 다루는 통계
    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
    • 특정값 뿐만 아니라 범위도 공유해야
      • e.g. 예상매출액의 최상/최하 금액
    • Decision Making을 위한 것
  • 추정과 기댓값
    • 추론 vs. 예측
  • 모수(Parameter)
    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
      • MLE(이거 하나만 알아도 면접에서 선방)
        • 추정량을 만드는 도구 중 하나
    e.g. 라쏘의 경우 바이어스가 생긴다(????)
    • bias-variance trade-off
    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
    • 수학공부
      • 벡터미분
  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
  • 1종 오류(유의수준)가 5%라는 의미
  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
  • 타입2: 효과가 있는데 없다고 잘못판단
  • 타입1: 효과가 없는데 있다고 사기친 것
  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
  • : ‘신’만이 알고 있는 고정된 상수

Likelihood function: 제일 중요!

동전 앞면이 나올 확률: 50%

앞면이 7번 나올 확률: 70%(가능도함수)

모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지

MLE: 제일 그럴싸한 ___를 찾는다

Data Literacy: 그냥 경험(아직 학문 분야가 X)

우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.

수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.

이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.

Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.

  • 통계적 가설 검정

항상 여러가지 예측하지 못했던 오류가 있을 수 있다

표본이 많아지면 정규분포를 따른다? 오우 노우!!

표본평균이 정규분포에 수렴하는 것!

원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다

30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)

둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다

K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제

모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작

아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다

  • Variance: 데이터가 어떻게 퍼져 있는지
  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
    • 모든 데이터를 포함하지 않는다
    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
  • 추천시스템의 방법론이 여기저기서 많이 활용된다
  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
    • Solution: 행렬 분해
  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
    • 직선 데이터에 한정
    • 그래서 딥러닝에서는 오토인코더를 이용
  • PCA vs. SVD
    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
    • 추천 알고리즘에서의 SVD
  • 추천시스템
    • 희소문제(Sparsity): 데이터를 효과적으로 압축
    • Big-O
    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

3일차

  • 고전적 시계열 모형의 한계
  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
    • 핵심: k를 어떻게 정할 것인가
    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
      • k가 클수록 모델이 복잡해진다
      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
      • 복잡도는 자유도(df)로 측정한다
  • 자유도: 여러곳에서 많이 사용되는 개념
    • 분석에 사용되는 데이터의 독립적인 정보의 수
    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
    • t분포의 모수
    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
      • 모델의 자유도가 높을수록 복잡도가 높은 것
  • 최소자승법
    • 오차항을 최소화하는것이 예측력을 높이는 것
    • 오차는 표준정규분포를 따른다고 가정
    • SST = SSE + SSR
  • 단순 선형 회귀
    • 베타0: 별로 중요하진 않다. 없으면 안된다
    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
    • 베타1: t분포를 따른다
    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
  • t검정
    • 모델에서는 F검정
    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
  • 이분산성
    • 구간에 따라 분산이 달라진다
    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
    • 해결: 단위변화(주로 로그변환)
  • Normality
    • 잔차가 정규분포를 따른다
    • 베타값의 신뢰도를 맞추기 위해(???)
    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
  • 다중선형회귀
  • 다중공선성
    • 회귀에서 가장 주의해야!
    • 베타에 대한 유의성이 감소(신뢰구간 관점)
    • 트리기반 모델도 다중공선성의 영향을 많이 받음
    • 불안정한 계수
    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
    • 다중공선성에 대한 기준은 교재마다 다르다
      • 주로 8
    • 차원축소를 선호
  • 교호작용
    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
    • 트리기반 모델은 효과적으로 활용 가능
  • 변수 선택
    • 변수가 많을수록 패널티를 준다
  • 시계열
  • ARIMA
    • 여러가지 변동을 합치는 것
    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
    • Moving Average: Smoothing을 하기 위한 것
  • SARIMA
    • ARIMA + Seasonality
    • 맞추기가 어렵다
  • Stochastic Process(확률과정론)
    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
    • e.g. 블랙숄즈모형
    • 요즘에는 맞추기가 너무 힘들다
  • Prophet
    • 시계열모형 by Facebook
    • component로 쪼개준다(트렌드로, seasonality로…)
      • 데이터가 변동하는것을 분리한다
    • 구간추정이 가능하다
    • 현실적으로 사용하기 좋다
  • 그렇다면 시계열 예측을 어떻게 해야?
    • 피처엔지니어링의 영역이 중요
    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
      • 이전까지의 가격 정보를 피쳐엔지니어링
      • 언제까지 데이터를 얼마나 활용할 것인가
    • 정적

Day3 실습 1

  • 벡터라이즈의 효과
    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
  • MA: 주로 시각화를 위해서만 사용
  • 시차에 따른 문제
    • UTC timestamp를 사용하는 것이 일반적
  • 피처엔지니어링
    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
    • 과거에 없는 상점이 생기는 등의 문제가 있음
      • 점진적 목표 개선(애자일하다? )
  • 예측
    • inference가 목적이라면: 로그를 꼭 씌워야
    • 예측이 목적이라면 X

실습2

  • 로그를 씌우니 R제곱이 떨어졌다
    • 해석에 주의
    • residual의 값이 작다…
    • 이유: 주기성(연초에 튄다)
    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
    • 모델은 Pred을 설명하지 못한다
    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

Day3.4

  • 랜덤포레스트
    • max_depth= 회귀분석의 모델의 자유도
  • 전체 자유도 = n-1 = 1954
  • 모델 자유도 = 사용한 변수의 개수 = 27
  • 잔차의 자유도 = 1954-27
  • Degrees of Freedom
    • how many independent pieces of information you need in order to make that calculation
    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
    • what we already know가 중요
    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
      1. 초록색이 아니야
      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
    • 따라서 보통 df = 카테고리의 수 -1
    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
    • the n-th doesn't contribute to the STD
      • ANOVA(Analysis of Variance)
        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
      • 대표적인 가정Assumption
        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
      1. Remedy: Normality
        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
        • 그 외 Shapiro, Kolmogorov
      2. Remedy: Independency
        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
        • 시간적 자기상관성: e.g.
        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
        • 진단: DW검정
        • 해결: ARIMA등 시계열 모형을 사용
      3. Remedy: Equal Variance
        • Homoscedasticity vs Heteroscedasticity
        • 각 집단의 분산이 동일하다는 가정
        • 평균이 높아지면 분산이 커지는것이 자연스러움
        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
        • 방안: 로그변환 등
        • Welch-t test
      • 실질적 의의(Practical Significance)
        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
      • 단순 선형 회귀
        • 피쳐(독립변수) 1개만
        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
        • 양측 단측
        • 단순선형회귀에서는 t = F
        • 다중에서는 다르다
        • SSE: 에러 / SSR: 설명하는 부분
        • F분포(p-value): 통계적으로 유의한가
          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
          • p-value 대신 신뢰구간을 사용할 것을 추천
          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
          • 0.001: 1000번 중 1번은 괜찮다
        • R제곱: 실질적으로 유의한가
          • 분포에 대한 가정은 없다
          • X(변수)를 추가하면 R제곱은 무조건 증가
          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
          • Negative R2가 나올 수 있을까?
          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
      • 머신러닝의 목적
        • Prediction: 예측 잘 맞추면 장땡
        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
      • Sampling
        • Simple random sample
        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
          • random seed를 고정해도 안된다
          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
        • Stratified sample
        • Cluster sample
      • Ensemble
        • 모델 여러개를 조합
          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
          • Boosing: Sequential. 모델 사용을 연쇄적으로
        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
        • Explicit feedback: 따봉
        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
          • ‘싫어하는 것’도 구별해야
        • graph 모델: e.g. 트위터도 그래프 모델을 공개
          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
      • Test R2:
      • 변수선택
        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
          • 파이썬에는 없다(전수조사하면 되니까..)
      • Collinearity
      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
      1. 콜라이니어리티 (Collinearity):
        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
      2. 자기상관 (Auto-correlation):
        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
      • Data Literacy 관점에서 통계 필요
        • ChatGPT에게 오롯이 맡길 수 없다
      • 실습
       
      • Ridge / LASSO
        • 쓸데없는 베타값을 없앤다
        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
      • Splining Regression
        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
      • Quantile Regression
        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
      • Logistic Regression
        • 비선형함수인 logistic funcion을 활용한
        • sigmoid: S자. 대표적인것이 logistic
      • Link funcion
        • 선형회귀에서는 normal을 사용
      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
      • 푸아송 분포
        • 단위 시간(혹은 공간)당 횟수의 분포
          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
        • 제약이 많아 현실적으로는 많이 사용하지 않음
      • 평균을 구해보자
        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
      • 불확실성을 다루는 통계
        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
        • 특정값 뿐만 아니라 범위도 공유해야
          • e.g. 예상매출액의 최상/최하 금액
        • Decision Making을 위한 것
      • 추정과 기댓값
        • 추론 vs. 예측
      • 모수(Parameter)
        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
          • MLE(이거 하나만 알아도 면접에서 선방)
            • 추정량을 만드는 도구 중 하나
        e.g. 라쏘의 경우 바이어스가 생긴다(????)
        • bias-variance trade-off
        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
        • 수학공부
          • 벡터미분
      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
      • 1종 오류(유의수준)가 5%라는 의미
      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
      • 타입2: 효과가 있는데 없다고 잘못판단
      • 타입1: 효과가 없는데 있다고 사기친 것
      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
      • : ‘신’만이 알고 있는 고정된 상수
      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
      • 통계적 가설 검정
      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
      • Variance: 데이터가 어떻게 퍼져 있는지
      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
        • 모든 데이터를 포함하지 않는다
        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
      • 추천시스템의 방법론이 여기저기서 많이 활용된다
      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
        • Solution: 행렬 분해
      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
        • 직선 데이터에 한정
        • 그래서 딥러닝에서는 오토인코더를 이용
      • PCA vs. SVD
        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
        • 추천 알고리즘에서의 SVD
      • 추천시스템
        • 희소문제(Sparsity): 데이터를 효과적으로 압축
        • Big-O
        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

      3일차
      • 고전적 시계열 모형의 한계
      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
        • 핵심: k를 어떻게 정할 것인가
        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
          • k가 클수록 모델이 복잡해진다
          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
          • 복잡도는 자유도(df)로 측정한다
      • 자유도: 여러곳에서 많이 사용되는 개념
        • 분석에 사용되는 데이터의 독립적인 정보의 수
        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
        • t분포의 모수
        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
          • 모델의 자유도가 높을수록 복잡도가 높은 것
      • 최소자승법
        • 오차항을 최소화하는것이 예측력을 높이는 것
        • 오차는 표준정규분포를 따른다고 가정
        • SST = SSE + SSR
      • 단순 선형 회귀
        • 베타0: 별로 중요하진 않다. 없으면 안된다
        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
        • 베타1: t분포를 따른다
        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
      • t검정
        • 모델에서는 F검정
        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
      • 이분산성
        • 구간에 따라 분산이 달라진다
        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
        • 해결: 단위변화(주로 로그변환)
      • Normality
        • 잔차가 정규분포를 따른다
        • 베타값의 신뢰도를 맞추기 위해(???)
        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
      • 다중선형회귀
      • 다중공선성
        • 회귀에서 가장 주의해야!
        • 베타에 대한 유의성이 감소(신뢰구간 관점)
        • 트리기반 모델도 다중공선성의 영향을 많이 받음
        • 불안정한 계수
        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
        • 다중공선성에 대한 기준은 교재마다 다르다
          • 주로 8
        • 차원축소를 선호
      • 교호작용
        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
        • 트리기반 모델은 효과적으로 활용 가능
      • 변수 선택
        • 변수가 많을수록 패널티를 준다
      • 시계열
      • ARIMA
        • 여러가지 변동을 합치는 것
        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
        • Moving Average: Smoothing을 하기 위한 것
      • SARIMA
        • ARIMA + Seasonality
        • 맞추기가 어렵다
      • Stochastic Process(확률과정론)
        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
        • e.g. 블랙숄즈모형
        • 요즘에는 맞추기가 너무 힘들다
      • Prophet
        • 시계열모형 by Facebook
        • component로 쪼개준다(트렌드로, seasonality로…)
          • 데이터가 변동하는것을 분리한다
        • 구간추정이 가능하다
        • 현실적으로 사용하기 좋다
      • 그렇다면 시계열 예측을 어떻게 해야?
        • 피처엔지니어링의 영역이 중요
        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
          • 이전까지의 가격 정보를 피쳐엔지니어링
          • 언제까지 데이터를 얼마나 활용할 것인가
        • 정적

      Day3 실습 1
      • 벡터라이즈의 효과
        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
      • MA: 주로 시각화를 위해서만 사용
      • 시차에 따른 문제
        • UTC timestamp를 사용하는 것이 일반적
      • 피처엔지니어링
        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
        • 과거에 없는 상점이 생기는 등의 문제가 있음
          • 점진적 목표 개선(애자일하다? )
      • 예측
        • inference가 목적이라면: 로그를 꼭 씌워야
        • 예측이 목적이라면 X
      실습2
      • 로그를 씌우니 R제곱이 떨어졌다
        • 해석에 주의
        • residual의 값이 작다…
        • 이유: 주기성(연초에 튄다)
        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
        • 모델은 Pred을 설명하지 못한다
        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

      Day3.4
      • 랜덤포레스트
        • max_depth= 회귀분석의 모델의 자유도
      • 전체 자유도 = n-1 = 1954
      • 모델 자유도 = 사용한 변수의 개수 = 27
      • 잔차의 자유도 = 1954-27
      • Degrees of Freedom
        • how many independent pieces of information you need in order to make that calculation
        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
        • what we already know가 중요
        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
          1. 초록색이 아니야
          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
        • 따라서 보통 df = 카테고리의 수 -1
        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
        • the n-th doesn't contribute to the STD
          • ANOVA(Analysis of Variance)
            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
          • 대표적인 가정Assumption
            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
          1. Remedy: Normality
            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
            • 그 외 Shapiro, Kolmogorov
          2. Remedy: Independency
            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
            • 시간적 자기상관성: e.g.
            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
            • 진단: DW검정
            • 해결: ARIMA등 시계열 모형을 사용
          3. Remedy: Equal Variance
            • Homoscedasticity vs Heteroscedasticity
            • 각 집단의 분산이 동일하다는 가정
            • 평균이 높아지면 분산이 커지는것이 자연스러움
            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
            • 방안: 로그변환 등
            • Welch-t test
          • 실질적 의의(Practical Significance)
            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
          • 단순 선형 회귀
            • 피쳐(독립변수) 1개만
            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
            • 양측 단측
            • 단순선형회귀에서는 t = F
            • 다중에서는 다르다
            • SSE: 에러 / SSR: 설명하는 부분
            • F분포(p-value): 통계적으로 유의한가
              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
              • p-value 대신 신뢰구간을 사용할 것을 추천
              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
              • 0.001: 1000번 중 1번은 괜찮다
            • R제곱: 실질적으로 유의한가
              • 분포에 대한 가정은 없다
              • X(변수)를 추가하면 R제곱은 무조건 증가
              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
              • Negative R2가 나올 수 있을까?
              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
          • 머신러닝의 목적
            • Prediction: 예측 잘 맞추면 장땡
            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
          • Sampling
            • Simple random sample
            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
              • random seed를 고정해도 안된다
              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
            • Stratified sample
            • Cluster sample
          • Ensemble
            • 모델 여러개를 조합
              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
              • Boosing: Sequential. 모델 사용을 연쇄적으로
            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
            • Explicit feedback: 따봉
            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
              • ‘싫어하는 것’도 구별해야
            • graph 모델: e.g. 트위터도 그래프 모델을 공개
              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
          • Test R2:
          • 변수선택
            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
              • 파이썬에는 없다(전수조사하면 되니까..)
          • Collinearity
          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
          1. 콜라이니어리티 (Collinearity):
            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
          2. 자기상관 (Auto-correlation):
            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
          • Data Literacy 관점에서 통계 필요
            • ChatGPT에게 오롯이 맡길 수 없다
          • 실습
           
          • Ridge / LASSO
            • 쓸데없는 베타값을 없앤다
            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
          • Splining Regression
            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
          • Quantile Regression
            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
          • Logistic Regression
            • 비선형함수인 logistic funcion을 활용한
            • sigmoid: S자. 대표적인것이 logistic
          • Link funcion
            • 선형회귀에서는 normal을 사용
          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
          • 푸아송 분포
            • 단위 시간(혹은 공간)당 횟수의 분포
              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
            • 제약이 많아 현실적으로는 많이 사용하지 않음
          • 평균을 구해보자
            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
          • 불확실성을 다루는 통계
            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
            • 특정값 뿐만 아니라 범위도 공유해야
              • e.g. 예상매출액의 최상/최하 금액
            • Decision Making을 위한 것
          • 추정과 기댓값
            • 추론 vs. 예측
          • 모수(Parameter)
            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
              • MLE(이거 하나만 알아도 면접에서 선방)
                • 추정량을 만드는 도구 중 하나
            e.g. 라쏘의 경우 바이어스가 생긴다(????)
            • bias-variance trade-off
            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
            • 수학공부
              • 벡터미분
          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
          • 1종 오류(유의수준)가 5%라는 의미
          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
          • 타입2: 효과가 있는데 없다고 잘못판단
          • 타입1: 효과가 없는데 있다고 사기친 것
          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
          • : ‘신’만이 알고 있는 고정된 상수
          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
          • 통계적 가설 검정
          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
          • Variance: 데이터가 어떻게 퍼져 있는지
          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
            • 모든 데이터를 포함하지 않는다
            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
          • 추천시스템의 방법론이 여기저기서 많이 활용된다
          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
            • Solution: 행렬 분해
          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
            • 직선 데이터에 한정
            • 그래서 딥러닝에서는 오토인코더를 이용
          • PCA vs. SVD
            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
            • 추천 알고리즘에서의 SVD
          • 추천시스템
            • 희소문제(Sparsity): 데이터를 효과적으로 압축
            • Big-O
            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

          3일차
          • 고전적 시계열 모형의 한계
          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
            • 핵심: k를 어떻게 정할 것인가
            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
              • k가 클수록 모델이 복잡해진다
              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
              • 복잡도는 자유도(df)로 측정한다
          • 자유도: 여러곳에서 많이 사용되는 개념
            • 분석에 사용되는 데이터의 독립적인 정보의 수
            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
            • t분포의 모수
            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
              • 모델의 자유도가 높을수록 복잡도가 높은 것
          • 최소자승법
            • 오차항을 최소화하는것이 예측력을 높이는 것
            • 오차는 표준정규분포를 따른다고 가정
            • SST = SSE + SSR
          • 단순 선형 회귀
            • 베타0: 별로 중요하진 않다. 없으면 안된다
            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
            • 베타1: t분포를 따른다
            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
          • t검정
            • 모델에서는 F검정
            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
          • 이분산성
            • 구간에 따라 분산이 달라진다
            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
            • 해결: 단위변화(주로 로그변환)
          • Normality
            • 잔차가 정규분포를 따른다
            • 베타값의 신뢰도를 맞추기 위해(???)
            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
          • 다중선형회귀
          • 다중공선성
            • 회귀에서 가장 주의해야!
            • 베타에 대한 유의성이 감소(신뢰구간 관점)
            • 트리기반 모델도 다중공선성의 영향을 많이 받음
            • 불안정한 계수
            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
            • 다중공선성에 대한 기준은 교재마다 다르다
              • 주로 8
            • 차원축소를 선호
          • 교호작용
            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
            • 트리기반 모델은 효과적으로 활용 가능
          • 변수 선택
            • 변수가 많을수록 패널티를 준다
          • 시계열
          • ARIMA
            • 여러가지 변동을 합치는 것
            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
            • Moving Average: Smoothing을 하기 위한 것
          • SARIMA
            • ARIMA + Seasonality
            • 맞추기가 어렵다
          • Stochastic Process(확률과정론)
            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
            • e.g. 블랙숄즈모형
            • 요즘에는 맞추기가 너무 힘들다
          • Prophet
            • 시계열모형 by Facebook
            • component로 쪼개준다(트렌드로, seasonality로…)
              • 데이터가 변동하는것을 분리한다
            • 구간추정이 가능하다
            • 현실적으로 사용하기 좋다
          • 그렇다면 시계열 예측을 어떻게 해야?
            • 피처엔지니어링의 영역이 중요
            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
              • 이전까지의 가격 정보를 피쳐엔지니어링
              • 언제까지 데이터를 얼마나 활용할 것인가
            • 정적

          Day3 실습 1
          • 벡터라이즈의 효과
            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
          • MA: 주로 시각화를 위해서만 사용
          • 시차에 따른 문제
            • UTC timestamp를 사용하는 것이 일반적
          • 피처엔지니어링
            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
            • 과거에 없는 상점이 생기는 등의 문제가 있음
              • 점진적 목표 개선(애자일하다? )
          • 예측
            • inference가 목적이라면: 로그를 꼭 씌워야
            • 예측이 목적이라면 X
          실습2
          • 로그를 씌우니 R제곱이 떨어졌다
            • 해석에 주의
            • residual의 값이 작다…
            • 이유: 주기성(연초에 튄다)
            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
            • 모델은 Pred을 설명하지 못한다
            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

          Day3.4
          • 랜덤포레스트
            • max_depth= 회귀분석의 모델의 자유도
          • 전체 자유도 = n-1 = 1954
          • 모델 자유도 = 사용한 변수의 개수 = 27
          • 잔차의 자유도 = 1954-27
          • Degrees of Freedom
            • how many independent pieces of information you need in order to make that calculation
            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
            • what we already know가 중요
            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
              1. 초록색이 아니야
              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
            • 따라서 보통 df = 카테고리의 수 -1
            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
            • the n-th doesn't contribute to the STD
              • ANOVA(Analysis of Variance)
                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
              • 대표적인 가정Assumption
                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
              1. Remedy: Normality
                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                • 그 외 Shapiro, Kolmogorov
              2. Remedy: Independency
                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                • 시간적 자기상관성: e.g.
                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                • 진단: DW검정
                • 해결: ARIMA등 시계열 모형을 사용
              3. Remedy: Equal Variance
                • Homoscedasticity vs Heteroscedasticity
                • 각 집단의 분산이 동일하다는 가정
                • 평균이 높아지면 분산이 커지는것이 자연스러움
                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                • 방안: 로그변환 등
                • Welch-t test
              • 실질적 의의(Practical Significance)
                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
              • 단순 선형 회귀
                • 피쳐(독립변수) 1개만
                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                • 양측 단측
                • 단순선형회귀에서는 t = F
                • 다중에서는 다르다
                • SSE: 에러 / SSR: 설명하는 부분
                • F분포(p-value): 통계적으로 유의한가
                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                  • p-value 대신 신뢰구간을 사용할 것을 추천
                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                  • 0.001: 1000번 중 1번은 괜찮다
                • R제곱: 실질적으로 유의한가
                  • 분포에 대한 가정은 없다
                  • X(변수)를 추가하면 R제곱은 무조건 증가
                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                  • Negative R2가 나올 수 있을까?
                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
              • 머신러닝의 목적
                • Prediction: 예측 잘 맞추면 장땡
                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
              • Sampling
                • Simple random sample
                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                  • random seed를 고정해도 안된다
                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                • Stratified sample
                • Cluster sample
              • Ensemble
                • 모델 여러개를 조합
                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                • Explicit feedback: 따봉
                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                  • ‘싫어하는 것’도 구별해야
                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
              • Test R2:
              • 변수선택
                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                  • 파이썬에는 없다(전수조사하면 되니까..)
              • Collinearity
              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
              1. 콜라이니어리티 (Collinearity):
                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
              2. 자기상관 (Auto-correlation):
                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
              • Data Literacy 관점에서 통계 필요
                • ChatGPT에게 오롯이 맡길 수 없다
              • 실습
               
              • Ridge / LASSO
                • 쓸데없는 베타값을 없앤다
                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
              • Splining Regression
                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
              • Quantile Regression
                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
              • Logistic Regression
                • 비선형함수인 logistic funcion을 활용한
                • sigmoid: S자. 대표적인것이 logistic
              • Link funcion
                • 선형회귀에서는 normal을 사용
              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
              • 푸아송 분포
                • 단위 시간(혹은 공간)당 횟수의 분포
                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                • 제약이 많아 현실적으로는 많이 사용하지 않음
              • 평균을 구해보자
                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
              • 불확실성을 다루는 통계
                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                • 특정값 뿐만 아니라 범위도 공유해야
                  • e.g. 예상매출액의 최상/최하 금액
                • Decision Making을 위한 것
              • 추정과 기댓값
                • 추론 vs. 예측
              • 모수(Parameter)
                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                  • MLE(이거 하나만 알아도 면접에서 선방)
                    • 추정량을 만드는 도구 중 하나
                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                • bias-variance trade-off
                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                • 수학공부
                  • 벡터미분
              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
              • 1종 오류(유의수준)가 5%라는 의미
              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
              • 타입2: 효과가 있는데 없다고 잘못판단
              • 타입1: 효과가 없는데 있다고 사기친 것
              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
              • : ‘신’만이 알고 있는 고정된 상수
              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
              • 통계적 가설 검정
              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
              • Variance: 데이터가 어떻게 퍼져 있는지
              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                • 모든 데이터를 포함하지 않는다
                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
              • 추천시스템의 방법론이 여기저기서 많이 활용된다
              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                • Solution: 행렬 분해
              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                • 직선 데이터에 한정
                • 그래서 딥러닝에서는 오토인코더를 이용
              • PCA vs. SVD
                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                • 추천 알고리즘에서의 SVD
              • 추천시스템
                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                • Big-O
                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

              3일차
              • 고전적 시계열 모형의 한계
              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                • 핵심: k를 어떻게 정할 것인가
                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                  • k가 클수록 모델이 복잡해진다
                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                  • 복잡도는 자유도(df)로 측정한다
              • 자유도: 여러곳에서 많이 사용되는 개념
                • 분석에 사용되는 데이터의 독립적인 정보의 수
                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                • t분포의 모수
                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                  • 모델의 자유도가 높을수록 복잡도가 높은 것
              • 최소자승법
                • 오차항을 최소화하는것이 예측력을 높이는 것
                • 오차는 표준정규분포를 따른다고 가정
                • SST = SSE + SSR
              • 단순 선형 회귀
                • 베타0: 별로 중요하진 않다. 없으면 안된다
                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                • 베타1: t분포를 따른다
                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
              • t검정
                • 모델에서는 F검정
                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
              • 이분산성
                • 구간에 따라 분산이 달라진다
                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                • 해결: 단위변화(주로 로그변환)
              • Normality
                • 잔차가 정규분포를 따른다
                • 베타값의 신뢰도를 맞추기 위해(???)
                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
              • 다중선형회귀
              • 다중공선성
                • 회귀에서 가장 주의해야!
                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                • 불안정한 계수
                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                • 다중공선성에 대한 기준은 교재마다 다르다
                  • 주로 8
                • 차원축소를 선호
              • 교호작용
                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                • 트리기반 모델은 효과적으로 활용 가능
              • 변수 선택
                • 변수가 많을수록 패널티를 준다
              • 시계열
              • ARIMA
                • 여러가지 변동을 합치는 것
                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                • Moving Average: Smoothing을 하기 위한 것
              • SARIMA
                • ARIMA + Seasonality
                • 맞추기가 어렵다
              • Stochastic Process(확률과정론)
                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                • e.g. 블랙숄즈모형
                • 요즘에는 맞추기가 너무 힘들다
              • Prophet
                • 시계열모형 by Facebook
                • component로 쪼개준다(트렌드로, seasonality로…)
                  • 데이터가 변동하는것을 분리한다
                • 구간추정이 가능하다
                • 현실적으로 사용하기 좋다
              • 그렇다면 시계열 예측을 어떻게 해야?
                • 피처엔지니어링의 영역이 중요
                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                  • 이전까지의 가격 정보를 피쳐엔지니어링
                  • 언제까지 데이터를 얼마나 활용할 것인가
                • 정적

              Day3 실습 1
              • 벡터라이즈의 효과
                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
              • MA: 주로 시각화를 위해서만 사용
              • 시차에 따른 문제
                • UTC timestamp를 사용하는 것이 일반적
              • 피처엔지니어링
                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                • 과거에 없는 상점이 생기는 등의 문제가 있음
                  • 점진적 목표 개선(애자일하다? )
              • 예측
                • inference가 목적이라면: 로그를 꼭 씌워야
                • 예측이 목적이라면 X
              실습2
              • 로그를 씌우니 R제곱이 떨어졌다
                • 해석에 주의
                • residual의 값이 작다…
                • 이유: 주기성(연초에 튄다)
                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                • 모델은 Pred을 설명하지 못한다
                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

              Day3.4
              • 랜덤포레스트
                • max_depth= 회귀분석의 모델의 자유도
              • 전체 자유도 = n-1 = 1954
              • 모델 자유도 = 사용한 변수의 개수 = 27
              • 잔차의 자유도 = 1954-27
              • Degrees of Freedom
                • how many independent pieces of information you need in order to make that calculation
                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                • what we already know가 중요
                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                  1. 초록색이 아니야
                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                • 따라서 보통 df = 카테고리의 수 -1
                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                • the n-th doesn't contribute to the STD
                  • ANOVA(Analysis of Variance)
                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                  • 대표적인 가정Assumption
                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                  1. Remedy: Normality
                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                    • 그 외 Shapiro, Kolmogorov
                  2. Remedy: Independency
                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                    • 시간적 자기상관성: e.g.
                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                    • 진단: DW검정
                    • 해결: ARIMA등 시계열 모형을 사용
                  3. Remedy: Equal Variance
                    • Homoscedasticity vs Heteroscedasticity
                    • 각 집단의 분산이 동일하다는 가정
                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                    • 방안: 로그변환 등
                    • Welch-t test
                  • 실질적 의의(Practical Significance)
                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                  • 단순 선형 회귀
                    • 피쳐(독립변수) 1개만
                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                    • 양측 단측
                    • 단순선형회귀에서는 t = F
                    • 다중에서는 다르다
                    • SSE: 에러 / SSR: 설명하는 부분
                    • F분포(p-value): 통계적으로 유의한가
                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                      • p-value 대신 신뢰구간을 사용할 것을 추천
                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                      • 0.001: 1000번 중 1번은 괜찮다
                    • R제곱: 실질적으로 유의한가
                      • 분포에 대한 가정은 없다
                      • X(변수)를 추가하면 R제곱은 무조건 증가
                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                      • Negative R2가 나올 수 있을까?
                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                  • 머신러닝의 목적
                    • Prediction: 예측 잘 맞추면 장땡
                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                  • Sampling
                    • Simple random sample
                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                      • random seed를 고정해도 안된다
                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                    • Stratified sample
                    • Cluster sample
                  • Ensemble
                    • 모델 여러개를 조합
                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                    • Explicit feedback: 따봉
                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                      • ‘싫어하는 것’도 구별해야
                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                  • Test R2:
                  • 변수선택
                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                      • 파이썬에는 없다(전수조사하면 되니까..)
                  • Collinearity
                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                  1. 콜라이니어리티 (Collinearity):
                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                  2. 자기상관 (Auto-correlation):
                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                  • Data Literacy 관점에서 통계 필요
                    • ChatGPT에게 오롯이 맡길 수 없다
                  • 실습
                   
                  • Ridge / LASSO
                    • 쓸데없는 베타값을 없앤다
                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                  • Splining Regression
                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                  • Quantile Regression
                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                  • Logistic Regression
                    • 비선형함수인 logistic funcion을 활용한
                    • sigmoid: S자. 대표적인것이 logistic
                  • Link funcion
                    • 선형회귀에서는 normal을 사용
                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                  • 푸아송 분포
                    • 단위 시간(혹은 공간)당 횟수의 분포
                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                  • 평균을 구해보자
                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                  • 불확실성을 다루는 통계
                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                    • 특정값 뿐만 아니라 범위도 공유해야
                      • e.g. 예상매출액의 최상/최하 금액
                    • Decision Making을 위한 것
                  • 추정과 기댓값
                    • 추론 vs. 예측
                  • 모수(Parameter)
                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                      • MLE(이거 하나만 알아도 면접에서 선방)
                        • 추정량을 만드는 도구 중 하나
                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                    • bias-variance trade-off
                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                    • 수학공부
                      • 벡터미분
                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                  • 1종 오류(유의수준)가 5%라는 의미
                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                  • 타입2: 효과가 있는데 없다고 잘못판단
                  • 타입1: 효과가 없는데 있다고 사기친 것
                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                  • : ‘신’만이 알고 있는 고정된 상수
                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                  • 통계적 가설 검정
                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                  • Variance: 데이터가 어떻게 퍼져 있는지
                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                    • 모든 데이터를 포함하지 않는다
                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                    • Solution: 행렬 분해
                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                    • 직선 데이터에 한정
                    • 그래서 딥러닝에서는 오토인코더를 이용
                  • PCA vs. SVD
                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                    • 추천 알고리즘에서의 SVD
                  • 추천시스템
                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                    • Big-O
                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                  3일차
                  • 고전적 시계열 모형의 한계
                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                    • 핵심: k를 어떻게 정할 것인가
                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                      • k가 클수록 모델이 복잡해진다
                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                      • 복잡도는 자유도(df)로 측정한다
                  • 자유도: 여러곳에서 많이 사용되는 개념
                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                    • t분포의 모수
                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                  • 최소자승법
                    • 오차항을 최소화하는것이 예측력을 높이는 것
                    • 오차는 표준정규분포를 따른다고 가정
                    • SST = SSE + SSR
                  • 단순 선형 회귀
                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                    • 베타1: t분포를 따른다
                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                  • t검정
                    • 모델에서는 F검정
                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                  • 이분산성
                    • 구간에 따라 분산이 달라진다
                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                    • 해결: 단위변화(주로 로그변환)
                  • Normality
                    • 잔차가 정규분포를 따른다
                    • 베타값의 신뢰도를 맞추기 위해(???)
                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                  • 다중선형회귀
                  • 다중공선성
                    • 회귀에서 가장 주의해야!
                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                    • 불안정한 계수
                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                    • 다중공선성에 대한 기준은 교재마다 다르다
                      • 주로 8
                    • 차원축소를 선호
                  • 교호작용
                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                    • 트리기반 모델은 효과적으로 활용 가능
                  • 변수 선택
                    • 변수가 많을수록 패널티를 준다
                  • 시계열
                  • ARIMA
                    • 여러가지 변동을 합치는 것
                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                    • Moving Average: Smoothing을 하기 위한 것
                  • SARIMA
                    • ARIMA + Seasonality
                    • 맞추기가 어렵다
                  • Stochastic Process(확률과정론)
                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                    • e.g. 블랙숄즈모형
                    • 요즘에는 맞추기가 너무 힘들다
                  • Prophet
                    • 시계열모형 by Facebook
                    • component로 쪼개준다(트렌드로, seasonality로…)
                      • 데이터가 변동하는것을 분리한다
                    • 구간추정이 가능하다
                    • 현실적으로 사용하기 좋다
                  • 그렇다면 시계열 예측을 어떻게 해야?
                    • 피처엔지니어링의 영역이 중요
                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                      • 이전까지의 가격 정보를 피쳐엔지니어링
                      • 언제까지 데이터를 얼마나 활용할 것인가
                    • 정적

                  Day3 실습 1
                  • 벡터라이즈의 효과
                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                  • MA: 주로 시각화를 위해서만 사용
                  • 시차에 따른 문제
                    • UTC timestamp를 사용하는 것이 일반적
                  • 피처엔지니어링
                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                      • 점진적 목표 개선(애자일하다? )
                  • 예측
                    • inference가 목적이라면: 로그를 꼭 씌워야
                    • 예측이 목적이라면 X
                  실습2
                  • 로그를 씌우니 R제곱이 떨어졌다
                    • 해석에 주의
                    • residual의 값이 작다…
                    • 이유: 주기성(연초에 튄다)
                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                    • 모델은 Pred을 설명하지 못한다
                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                  Day3.4
                  • 랜덤포레스트
                    • max_depth= 회귀분석의 모델의 자유도
                  • 전체 자유도 = n-1 = 1954
                  • 모델 자유도 = 사용한 변수의 개수 = 27
                  • 잔차의 자유도 = 1954-27
                  • Degrees of Freedom
                    • how many independent pieces of information you need in order to make that calculation
                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                    • what we already know가 중요
                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                      1. 초록색이 아니야
                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                    • 따라서 보통 df = 카테고리의 수 -1
                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                    • the n-th doesn't contribute to the STD
                      • ANOVA(Analysis of Variance)
                        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                      • 대표적인 가정Assumption
                        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                      1. Remedy: Normality
                        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                        • 그 외 Shapiro, Kolmogorov
                      2. Remedy: Independency
                        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                        • 시간적 자기상관성: e.g.
                        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                        • 진단: DW검정
                        • 해결: ARIMA등 시계열 모형을 사용
                      3. Remedy: Equal Variance
                        • Homoscedasticity vs Heteroscedasticity
                        • 각 집단의 분산이 동일하다는 가정
                        • 평균이 높아지면 분산이 커지는것이 자연스러움
                        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                        • 방안: 로그변환 등
                        • Welch-t test
                      • 실질적 의의(Practical Significance)
                        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                      • 단순 선형 회귀
                        • 피쳐(독립변수) 1개만
                        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                        • 양측 단측
                        • 단순선형회귀에서는 t = F
                        • 다중에서는 다르다
                        • SSE: 에러 / SSR: 설명하는 부분
                        • F분포(p-value): 통계적으로 유의한가
                          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                          • p-value 대신 신뢰구간을 사용할 것을 추천
                          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                          • 0.001: 1000번 중 1번은 괜찮다
                        • R제곱: 실질적으로 유의한가
                          • 분포에 대한 가정은 없다
                          • X(변수)를 추가하면 R제곱은 무조건 증가
                          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                          • Negative R2가 나올 수 있을까?
                          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                      • 머신러닝의 목적
                        • Prediction: 예측 잘 맞추면 장땡
                        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                      • Sampling
                        • Simple random sample
                        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                          • random seed를 고정해도 안된다
                          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                        • Stratified sample
                        • Cluster sample
                      • Ensemble
                        • 모델 여러개를 조합
                          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                          • Boosing: Sequential. 모델 사용을 연쇄적으로
                        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                        • Explicit feedback: 따봉
                        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                          • ‘싫어하는 것’도 구별해야
                        • graph 모델: e.g. 트위터도 그래프 모델을 공개
                          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                      • Test R2:
                      • 변수선택
                        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                          • 파이썬에는 없다(전수조사하면 되니까..)
                      • Collinearity
                      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                      1. 콜라이니어리티 (Collinearity):
                        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                      2. 자기상관 (Auto-correlation):
                        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                      • Data Literacy 관점에서 통계 필요
                        • ChatGPT에게 오롯이 맡길 수 없다
                      • 실습
                       
                      • Ridge / LASSO
                        • 쓸데없는 베타값을 없앤다
                        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                      • Splining Regression
                        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                      • Quantile Regression
                        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                      • Logistic Regression
                        • 비선형함수인 logistic funcion을 활용한
                        • sigmoid: S자. 대표적인것이 logistic
                      • Link funcion
                        • 선형회귀에서는 normal을 사용
                      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                      • 푸아송 분포
                        • 단위 시간(혹은 공간)당 횟수의 분포
                          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                        • 제약이 많아 현실적으로는 많이 사용하지 않음
                      • 평균을 구해보자
                        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                      • 불확실성을 다루는 통계
                        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                        • 특정값 뿐만 아니라 범위도 공유해야
                          • e.g. 예상매출액의 최상/최하 금액
                        • Decision Making을 위한 것
                      • 추정과 기댓값
                        • 추론 vs. 예측
                      • 모수(Parameter)
                        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                          • MLE(이거 하나만 알아도 면접에서 선방)
                            • 추정량을 만드는 도구 중 하나
                        e.g. 라쏘의 경우 바이어스가 생긴다(????)
                        • bias-variance trade-off
                        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                        • 수학공부
                          • 벡터미분
                      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                      • 1종 오류(유의수준)가 5%라는 의미
                      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                      • 타입2: 효과가 있는데 없다고 잘못판단
                      • 타입1: 효과가 없는데 있다고 사기친 것
                      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                      • : ‘신’만이 알고 있는 고정된 상수
                      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                      • 통계적 가설 검정
                      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                      • Variance: 데이터가 어떻게 퍼져 있는지
                      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                        • 모든 데이터를 포함하지 않는다
                        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                      • 추천시스템의 방법론이 여기저기서 많이 활용된다
                      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                        • Solution: 행렬 분해
                      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                        • 직선 데이터에 한정
                        • 그래서 딥러닝에서는 오토인코더를 이용
                      • PCA vs. SVD
                        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                        • 추천 알고리즘에서의 SVD
                      • 추천시스템
                        • 희소문제(Sparsity): 데이터를 효과적으로 압축
                        • Big-O
                        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                      3일차
                      • 고전적 시계열 모형의 한계
                      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                        • 핵심: k를 어떻게 정할 것인가
                        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                          • k가 클수록 모델이 복잡해진다
                          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                          • 복잡도는 자유도(df)로 측정한다
                      • 자유도: 여러곳에서 많이 사용되는 개념
                        • 분석에 사용되는 데이터의 독립적인 정보의 수
                        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                        • t분포의 모수
                        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                          • 모델의 자유도가 높을수록 복잡도가 높은 것
                      • 최소자승법
                        • 오차항을 최소화하는것이 예측력을 높이는 것
                        • 오차는 표준정규분포를 따른다고 가정
                        • SST = SSE + SSR
                      • 단순 선형 회귀
                        • 베타0: 별로 중요하진 않다. 없으면 안된다
                        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                        • 베타1: t분포를 따른다
                        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                      • t검정
                        • 모델에서는 F검정
                        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                      • 이분산성
                        • 구간에 따라 분산이 달라진다
                        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                        • 해결: 단위변화(주로 로그변환)
                      • Normality
                        • 잔차가 정규분포를 따른다
                        • 베타값의 신뢰도를 맞추기 위해(???)
                        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                      • 다중선형회귀
                      • 다중공선성
                        • 회귀에서 가장 주의해야!
                        • 베타에 대한 유의성이 감소(신뢰구간 관점)
                        • 트리기반 모델도 다중공선성의 영향을 많이 받음
                        • 불안정한 계수
                        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                        • 다중공선성에 대한 기준은 교재마다 다르다
                          • 주로 8
                        • 차원축소를 선호
                      • 교호작용
                        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                        • 트리기반 모델은 효과적으로 활용 가능
                      • 변수 선택
                        • 변수가 많을수록 패널티를 준다
                      • 시계열
                      • ARIMA
                        • 여러가지 변동을 합치는 것
                        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                        • Moving Average: Smoothing을 하기 위한 것
                      • SARIMA
                        • ARIMA + Seasonality
                        • 맞추기가 어렵다
                      • Stochastic Process(확률과정론)
                        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                        • e.g. 블랙숄즈모형
                        • 요즘에는 맞추기가 너무 힘들다
                      • Prophet
                        • 시계열모형 by Facebook
                        • component로 쪼개준다(트렌드로, seasonality로…)
                          • 데이터가 변동하는것을 분리한다
                        • 구간추정이 가능하다
                        • 현실적으로 사용하기 좋다
                      • 그렇다면 시계열 예측을 어떻게 해야?
                        • 피처엔지니어링의 영역이 중요
                        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                          • 이전까지의 가격 정보를 피쳐엔지니어링
                          • 언제까지 데이터를 얼마나 활용할 것인가
                        • 정적

                      Day3 실습 1
                      • 벡터라이즈의 효과
                        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                      • MA: 주로 시각화를 위해서만 사용
                      • 시차에 따른 문제
                        • UTC timestamp를 사용하는 것이 일반적
                      • 피처엔지니어링
                        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                        • 과거에 없는 상점이 생기는 등의 문제가 있음
                          • 점진적 목표 개선(애자일하다? )
                      • 예측
                        • inference가 목적이라면: 로그를 꼭 씌워야
                        • 예측이 목적이라면 X
                      실습2
                      • 로그를 씌우니 R제곱이 떨어졌다
                        • 해석에 주의
                        • residual의 값이 작다…
                        • 이유: 주기성(연초에 튄다)
                        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                        • 모델은 Pred을 설명하지 못한다
                        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                      Day3.4
                      • 랜덤포레스트
                        • max_depth= 회귀분석의 모델의 자유도
                      • 전체 자유도 = n-1 = 1954
                      • 모델 자유도 = 사용한 변수의 개수 = 27
                      • 잔차의 자유도 = 1954-27
                      • Degrees of Freedom
                        • how many independent pieces of information you need in order to make that calculation
                        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                        • what we already know가 중요
                        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                          1. 초록색이 아니야
                          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                        • 따라서 보통 df = 카테고리의 수 -1
                        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                        • the n-th doesn't contribute to the STD
                          • ANOVA(Analysis of Variance)
                            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                          • 대표적인 가정Assumption
                            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                          1. Remedy: Normality
                            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                            • 그 외 Shapiro, Kolmogorov
                          2. Remedy: Independency
                            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                            • 시간적 자기상관성: e.g.
                            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                            • 진단: DW검정
                            • 해결: ARIMA등 시계열 모형을 사용
                          3. Remedy: Equal Variance
                            • Homoscedasticity vs Heteroscedasticity
                            • 각 집단의 분산이 동일하다는 가정
                            • 평균이 높아지면 분산이 커지는것이 자연스러움
                            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                            • 방안: 로그변환 등
                            • Welch-t test
                          • 실질적 의의(Practical Significance)
                            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                          • 단순 선형 회귀
                            • 피쳐(독립변수) 1개만
                            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                            • 양측 단측
                            • 단순선형회귀에서는 t = F
                            • 다중에서는 다르다
                            • SSE: 에러 / SSR: 설명하는 부분
                            • F분포(p-value): 통계적으로 유의한가
                              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                              • p-value 대신 신뢰구간을 사용할 것을 추천
                              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                              • 0.001: 1000번 중 1번은 괜찮다
                            • R제곱: 실질적으로 유의한가
                              • 분포에 대한 가정은 없다
                              • X(변수)를 추가하면 R제곱은 무조건 증가
                              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                              • Negative R2가 나올 수 있을까?
                              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                          • 머신러닝의 목적
                            • Prediction: 예측 잘 맞추면 장땡
                            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                          • Sampling
                            • Simple random sample
                            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                              • random seed를 고정해도 안된다
                              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                            • Stratified sample
                            • Cluster sample
                          • Ensemble
                            • 모델 여러개를 조합
                              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                              • Boosing: Sequential. 모델 사용을 연쇄적으로
                            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                            • Explicit feedback: 따봉
                            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                              • ‘싫어하는 것’도 구별해야
                            • graph 모델: e.g. 트위터도 그래프 모델을 공개
                              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                          • Test R2:
                          • 변수선택
                            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                              • 파이썬에는 없다(전수조사하면 되니까..)
                          • Collinearity
                          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                          1. 콜라이니어리티 (Collinearity):
                            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                          2. 자기상관 (Auto-correlation):
                            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                          • Data Literacy 관점에서 통계 필요
                            • ChatGPT에게 오롯이 맡길 수 없다
                          • 실습
                           
                          • Ridge / LASSO
                            • 쓸데없는 베타값을 없앤다
                            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                          • Splining Regression
                            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                          • Quantile Regression
                            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                          • Logistic Regression
                            • 비선형함수인 logistic funcion을 활용한
                            • sigmoid: S자. 대표적인것이 logistic
                          • Link funcion
                            • 선형회귀에서는 normal을 사용
                          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                          • 푸아송 분포
                            • 단위 시간(혹은 공간)당 횟수의 분포
                              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                            • 제약이 많아 현실적으로는 많이 사용하지 않음
                          • 평균을 구해보자
                            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                          • 불확실성을 다루는 통계
                            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                            • 특정값 뿐만 아니라 범위도 공유해야
                              • e.g. 예상매출액의 최상/최하 금액
                            • Decision Making을 위한 것
                          • 추정과 기댓값
                            • 추론 vs. 예측
                          • 모수(Parameter)
                            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                              • MLE(이거 하나만 알아도 면접에서 선방)
                                • 추정량을 만드는 도구 중 하나
                            e.g. 라쏘의 경우 바이어스가 생긴다(????)
                            • bias-variance trade-off
                            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                            • 수학공부
                              • 벡터미분
                          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                          • 1종 오류(유의수준)가 5%라는 의미
                          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                          • 타입2: 효과가 있는데 없다고 잘못판단
                          • 타입1: 효과가 없는데 있다고 사기친 것
                          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                          • : ‘신’만이 알고 있는 고정된 상수
                          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                          • 통계적 가설 검정
                          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                          • Variance: 데이터가 어떻게 퍼져 있는지
                          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                            • 모든 데이터를 포함하지 않는다
                            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                          • 추천시스템의 방법론이 여기저기서 많이 활용된다
                          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                            • Solution: 행렬 분해
                          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                            • 직선 데이터에 한정
                            • 그래서 딥러닝에서는 오토인코더를 이용
                          • PCA vs. SVD
                            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                            • 추천 알고리즘에서의 SVD
                          • 추천시스템
                            • 희소문제(Sparsity): 데이터를 효과적으로 압축
                            • Big-O
                            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                          3일차
                          • 고전적 시계열 모형의 한계
                          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                            • 핵심: k를 어떻게 정할 것인가
                            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                              • k가 클수록 모델이 복잡해진다
                              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                              • 복잡도는 자유도(df)로 측정한다
                          • 자유도: 여러곳에서 많이 사용되는 개념
                            • 분석에 사용되는 데이터의 독립적인 정보의 수
                            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                            • t분포의 모수
                            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                              • 모델의 자유도가 높을수록 복잡도가 높은 것
                          • 최소자승법
                            • 오차항을 최소화하는것이 예측력을 높이는 것
                            • 오차는 표준정규분포를 따른다고 가정
                            • SST = SSE + SSR
                          • 단순 선형 회귀
                            • 베타0: 별로 중요하진 않다. 없으면 안된다
                            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                            • 베타1: t분포를 따른다
                            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                          • t검정
                            • 모델에서는 F검정
                            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                          • 이분산성
                            • 구간에 따라 분산이 달라진다
                            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                            • 해결: 단위변화(주로 로그변환)
                          • Normality
                            • 잔차가 정규분포를 따른다
                            • 베타값의 신뢰도를 맞추기 위해(???)
                            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                          • 다중선형회귀
                          • 다중공선성
                            • 회귀에서 가장 주의해야!
                            • 베타에 대한 유의성이 감소(신뢰구간 관점)
                            • 트리기반 모델도 다중공선성의 영향을 많이 받음
                            • 불안정한 계수
                            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                            • 다중공선성에 대한 기준은 교재마다 다르다
                              • 주로 8
                            • 차원축소를 선호
                          • 교호작용
                            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                            • 트리기반 모델은 효과적으로 활용 가능
                          • 변수 선택
                            • 변수가 많을수록 패널티를 준다
                          • 시계열
                          • ARIMA
                            • 여러가지 변동을 합치는 것
                            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                            • Moving Average: Smoothing을 하기 위한 것
                          • SARIMA
                            • ARIMA + Seasonality
                            • 맞추기가 어렵다
                          • Stochastic Process(확률과정론)
                            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                            • e.g. 블랙숄즈모형
                            • 요즘에는 맞추기가 너무 힘들다
                          • Prophet
                            • 시계열모형 by Facebook
                            • component로 쪼개준다(트렌드로, seasonality로…)
                              • 데이터가 변동하는것을 분리한다
                            • 구간추정이 가능하다
                            • 현실적으로 사용하기 좋다
                          • 그렇다면 시계열 예측을 어떻게 해야?
                            • 피처엔지니어링의 영역이 중요
                            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                              • 이전까지의 가격 정보를 피쳐엔지니어링
                              • 언제까지 데이터를 얼마나 활용할 것인가
                            • 정적

                          Day3 실습 1
                          • 벡터라이즈의 효과
                            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                          • MA: 주로 시각화를 위해서만 사용
                          • 시차에 따른 문제
                            • UTC timestamp를 사용하는 것이 일반적
                          • 피처엔지니어링
                            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                            • 과거에 없는 상점이 생기는 등의 문제가 있음
                              • 점진적 목표 개선(애자일하다? )
                          • 예측
                            • inference가 목적이라면: 로그를 꼭 씌워야
                            • 예측이 목적이라면 X
                          실습2
                          • 로그를 씌우니 R제곱이 떨어졌다
                            • 해석에 주의
                            • residual의 값이 작다…
                            • 이유: 주기성(연초에 튄다)
                            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                            • 모델은 Pred을 설명하지 못한다
                            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                          Day3.4
                          • 랜덤포레스트
                            • max_depth= 회귀분석의 모델의 자유도
                          • 전체 자유도 = n-1 = 1954
                          • 모델 자유도 = 사용한 변수의 개수 = 27
                          • 잔차의 자유도 = 1954-27
                          • Degrees of Freedom
                            • how many independent pieces of information you need in order to make that calculation
                            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                            • what we already know가 중요
                            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                              1. 초록색이 아니야
                              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                            • 따라서 보통 df = 카테고리의 수 -1
                            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                            • the n-th doesn't contribute to the STD
                              • ANOVA(Analysis of Variance)
                                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                              • 대표적인 가정Assumption
                                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                              1. Remedy: Normality
                                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                • 그 외 Shapiro, Kolmogorov
                              2. Remedy: Independency
                                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                • 시간적 자기상관성: e.g.
                                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                • 진단: DW검정
                                • 해결: ARIMA등 시계열 모형을 사용
                              3. Remedy: Equal Variance
                                • Homoscedasticity vs Heteroscedasticity
                                • 각 집단의 분산이 동일하다는 가정
                                • 평균이 높아지면 분산이 커지는것이 자연스러움
                                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                • 방안: 로그변환 등
                                • Welch-t test
                              • 실질적 의의(Practical Significance)
                                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                              • 단순 선형 회귀
                                • 피쳐(독립변수) 1개만
                                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                • 양측 단측
                                • 단순선형회귀에서는 t = F
                                • 다중에서는 다르다
                                • SSE: 에러 / SSR: 설명하는 부분
                                • F분포(p-value): 통계적으로 유의한가
                                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                  • p-value 대신 신뢰구간을 사용할 것을 추천
                                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                  • 0.001: 1000번 중 1번은 괜찮다
                                • R제곱: 실질적으로 유의한가
                                  • 분포에 대한 가정은 없다
                                  • X(변수)를 추가하면 R제곱은 무조건 증가
                                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                  • Negative R2가 나올 수 있을까?
                                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                              • 머신러닝의 목적
                                • Prediction: 예측 잘 맞추면 장땡
                                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                              • Sampling
                                • Simple random sample
                                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                  • random seed를 고정해도 안된다
                                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                • Stratified sample
                                • Cluster sample
                              • Ensemble
                                • 모델 여러개를 조합
                                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                • Explicit feedback: 따봉
                                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                  • ‘싫어하는 것’도 구별해야
                                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                              • Test R2:
                              • 변수선택
                                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                  • 파이썬에는 없다(전수조사하면 되니까..)
                              • Collinearity
                              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                              1. 콜라이니어리티 (Collinearity):
                                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                              2. 자기상관 (Auto-correlation):
                                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                              • Data Literacy 관점에서 통계 필요
                                • ChatGPT에게 오롯이 맡길 수 없다
                              • 실습
                               
                              • Ridge / LASSO
                                • 쓸데없는 베타값을 없앤다
                                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                              • Splining Regression
                                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                              • Quantile Regression
                                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                              • Logistic Regression
                                • 비선형함수인 logistic funcion을 활용한
                                • sigmoid: S자. 대표적인것이 logistic
                              • Link funcion
                                • 선형회귀에서는 normal을 사용
                              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                              • 푸아송 분포
                                • 단위 시간(혹은 공간)당 횟수의 분포
                                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                • 제약이 많아 현실적으로는 많이 사용하지 않음
                              • 평균을 구해보자
                                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                              • 불확실성을 다루는 통계
                                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                • 특정값 뿐만 아니라 범위도 공유해야
                                  • e.g. 예상매출액의 최상/최하 금액
                                • Decision Making을 위한 것
                              • 추정과 기댓값
                                • 추론 vs. 예측
                              • 모수(Parameter)
                                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                  • MLE(이거 하나만 알아도 면접에서 선방)
                                    • 추정량을 만드는 도구 중 하나
                                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                • bias-variance trade-off
                                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                • 수학공부
                                  • 벡터미분
                              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                              • 1종 오류(유의수준)가 5%라는 의미
                              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                              • 타입2: 효과가 있는데 없다고 잘못판단
                              • 타입1: 효과가 없는데 있다고 사기친 것
                              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                              • : ‘신’만이 알고 있는 고정된 상수
                              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                              • 통계적 가설 검정
                              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                              • Variance: 데이터가 어떻게 퍼져 있는지
                              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                • 모든 데이터를 포함하지 않는다
                                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                              • 추천시스템의 방법론이 여기저기서 많이 활용된다
                              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                • Solution: 행렬 분해
                              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                • 직선 데이터에 한정
                                • 그래서 딥러닝에서는 오토인코더를 이용
                              • PCA vs. SVD
                                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                • 추천 알고리즘에서의 SVD
                              • 추천시스템
                                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                • Big-O
                                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                              3일차
                              • 고전적 시계열 모형의 한계
                              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                • 핵심: k를 어떻게 정할 것인가
                                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                  • k가 클수록 모델이 복잡해진다
                                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                  • 복잡도는 자유도(df)로 측정한다
                              • 자유도: 여러곳에서 많이 사용되는 개념
                                • 분석에 사용되는 데이터의 독립적인 정보의 수
                                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                • t분포의 모수
                                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                  • 모델의 자유도가 높을수록 복잡도가 높은 것
                              • 최소자승법
                                • 오차항을 최소화하는것이 예측력을 높이는 것
                                • 오차는 표준정규분포를 따른다고 가정
                                • SST = SSE + SSR
                              • 단순 선형 회귀
                                • 베타0: 별로 중요하진 않다. 없으면 안된다
                                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                • 베타1: t분포를 따른다
                                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                              • t검정
                                • 모델에서는 F검정
                                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                              • 이분산성
                                • 구간에 따라 분산이 달라진다
                                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                • 해결: 단위변화(주로 로그변환)
                              • Normality
                                • 잔차가 정규분포를 따른다
                                • 베타값의 신뢰도를 맞추기 위해(???)
                                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                              • 다중선형회귀
                              • 다중공선성
                                • 회귀에서 가장 주의해야!
                                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                • 불안정한 계수
                                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                • 다중공선성에 대한 기준은 교재마다 다르다
                                  • 주로 8
                                • 차원축소를 선호
                              • 교호작용
                                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                • 트리기반 모델은 효과적으로 활용 가능
                              • 변수 선택
                                • 변수가 많을수록 패널티를 준다
                              • 시계열
                              • ARIMA
                                • 여러가지 변동을 합치는 것
                                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                • Moving Average: Smoothing을 하기 위한 것
                              • SARIMA
                                • ARIMA + Seasonality
                                • 맞추기가 어렵다
                              • Stochastic Process(확률과정론)
                                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                • e.g. 블랙숄즈모형
                                • 요즘에는 맞추기가 너무 힘들다
                              • Prophet
                                • 시계열모형 by Facebook
                                • component로 쪼개준다(트렌드로, seasonality로…)
                                  • 데이터가 변동하는것을 분리한다
                                • 구간추정이 가능하다
                                • 현실적으로 사용하기 좋다
                              • 그렇다면 시계열 예측을 어떻게 해야?
                                • 피처엔지니어링의 영역이 중요
                                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                  • 이전까지의 가격 정보를 피쳐엔지니어링
                                  • 언제까지 데이터를 얼마나 활용할 것인가
                                • 정적

                              Day3 실습 1
                              • 벡터라이즈의 효과
                                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                              • MA: 주로 시각화를 위해서만 사용
                              • 시차에 따른 문제
                                • UTC timestamp를 사용하는 것이 일반적
                              • 피처엔지니어링
                                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                • 과거에 없는 상점이 생기는 등의 문제가 있음
                                  • 점진적 목표 개선(애자일하다? )
                              • 예측
                                • inference가 목적이라면: 로그를 꼭 씌워야
                                • 예측이 목적이라면 X
                              실습2
                              • 로그를 씌우니 R제곱이 떨어졌다
                                • 해석에 주의
                                • residual의 값이 작다…
                                • 이유: 주기성(연초에 튄다)
                                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                • 모델은 Pred을 설명하지 못한다
                                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                              Day3.4
                              • 랜덤포레스트
                                • max_depth= 회귀분석의 모델의 자유도
                              • 전체 자유도 = n-1 = 1954
                              • 모델 자유도 = 사용한 변수의 개수 = 27
                              • 잔차의 자유도 = 1954-27
                              • Degrees of Freedom
                                • how many independent pieces of information you need in order to make that calculation
                                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                • what we already know가 중요
                                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                  1. 초록색이 아니야
                                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                • 따라서 보통 df = 카테고리의 수 -1
                                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                • the n-th doesn't contribute to the STD
                                  • ANOVA(Analysis of Variance)
                                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                  • 대표적인 가정Assumption
                                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                  1. Remedy: Normality
                                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                    • 그 외 Shapiro, Kolmogorov
                                  2. Remedy: Independency
                                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                    • 시간적 자기상관성: e.g.
                                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                    • 진단: DW검정
                                    • 해결: ARIMA등 시계열 모형을 사용
                                  3. Remedy: Equal Variance
                                    • Homoscedasticity vs Heteroscedasticity
                                    • 각 집단의 분산이 동일하다는 가정
                                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                    • 방안: 로그변환 등
                                    • Welch-t test
                                  • 실질적 의의(Practical Significance)
                                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                  • 단순 선형 회귀
                                    • 피쳐(독립변수) 1개만
                                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                    • 양측 단측
                                    • 단순선형회귀에서는 t = F
                                    • 다중에서는 다르다
                                    • SSE: 에러 / SSR: 설명하는 부분
                                    • F분포(p-value): 통계적으로 유의한가
                                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                      • p-value 대신 신뢰구간을 사용할 것을 추천
                                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                      • 0.001: 1000번 중 1번은 괜찮다
                                    • R제곱: 실질적으로 유의한가
                                      • 분포에 대한 가정은 없다
                                      • X(변수)를 추가하면 R제곱은 무조건 증가
                                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                      • Negative R2가 나올 수 있을까?
                                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                  • 머신러닝의 목적
                                    • Prediction: 예측 잘 맞추면 장땡
                                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                  • Sampling
                                    • Simple random sample
                                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                      • random seed를 고정해도 안된다
                                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                    • Stratified sample
                                    • Cluster sample
                                  • Ensemble
                                    • 모델 여러개를 조합
                                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                    • Explicit feedback: 따봉
                                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                      • ‘싫어하는 것’도 구별해야
                                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                  • Test R2:
                                  • 변수선택
                                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                      • 파이썬에는 없다(전수조사하면 되니까..)
                                  • Collinearity
                                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                  1. 콜라이니어리티 (Collinearity):
                                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                  2. 자기상관 (Auto-correlation):
                                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                  • Data Literacy 관점에서 통계 필요
                                    • ChatGPT에게 오롯이 맡길 수 없다
                                  • 실습
                                   
                                  • Ridge / LASSO
                                    • 쓸데없는 베타값을 없앤다
                                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                  • Splining Regression
                                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                  • Quantile Regression
                                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                  • Logistic Regression
                                    • 비선형함수인 logistic funcion을 활용한
                                    • sigmoid: S자. 대표적인것이 logistic
                                  • Link funcion
                                    • 선형회귀에서는 normal을 사용
                                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                  • 푸아송 분포
                                    • 단위 시간(혹은 공간)당 횟수의 분포
                                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                                  • 평균을 구해보자
                                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                  • 불확실성을 다루는 통계
                                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                    • 특정값 뿐만 아니라 범위도 공유해야
                                      • e.g. 예상매출액의 최상/최하 금액
                                    • Decision Making을 위한 것
                                  • 추정과 기댓값
                                    • 추론 vs. 예측
                                  • 모수(Parameter)
                                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                      • MLE(이거 하나만 알아도 면접에서 선방)
                                        • 추정량을 만드는 도구 중 하나
                                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                    • bias-variance trade-off
                                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                    • 수학공부
                                      • 벡터미분
                                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                  • 1종 오류(유의수준)가 5%라는 의미
                                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                  • 타입2: 효과가 있는데 없다고 잘못판단
                                  • 타입1: 효과가 없는데 있다고 사기친 것
                                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                  • : ‘신’만이 알고 있는 고정된 상수
                                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                  • 통계적 가설 검정
                                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                  • Variance: 데이터가 어떻게 퍼져 있는지
                                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                    • 모든 데이터를 포함하지 않는다
                                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                    • Solution: 행렬 분해
                                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                    • 직선 데이터에 한정
                                    • 그래서 딥러닝에서는 오토인코더를 이용
                                  • PCA vs. SVD
                                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                    • 추천 알고리즘에서의 SVD
                                  • 추천시스템
                                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                    • Big-O
                                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                  3일차
                                  • 고전적 시계열 모형의 한계
                                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                    • 핵심: k를 어떻게 정할 것인가
                                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                      • k가 클수록 모델이 복잡해진다
                                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                      • 복잡도는 자유도(df)로 측정한다
                                  • 자유도: 여러곳에서 많이 사용되는 개념
                                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                    • t분포의 모수
                                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                                  • 최소자승법
                                    • 오차항을 최소화하는것이 예측력을 높이는 것
                                    • 오차는 표준정규분포를 따른다고 가정
                                    • SST = SSE + SSR
                                  • 단순 선형 회귀
                                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                    • 베타1: t분포를 따른다
                                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                  • t검정
                                    • 모델에서는 F검정
                                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                  • 이분산성
                                    • 구간에 따라 분산이 달라진다
                                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                    • 해결: 단위변화(주로 로그변환)
                                  • Normality
                                    • 잔차가 정규분포를 따른다
                                    • 베타값의 신뢰도를 맞추기 위해(???)
                                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                  • 다중선형회귀
                                  • 다중공선성
                                    • 회귀에서 가장 주의해야!
                                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                    • 불안정한 계수
                                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                    • 다중공선성에 대한 기준은 교재마다 다르다
                                      • 주로 8
                                    • 차원축소를 선호
                                  • 교호작용
                                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                    • 트리기반 모델은 효과적으로 활용 가능
                                  • 변수 선택
                                    • 변수가 많을수록 패널티를 준다
                                  • 시계열
                                  • ARIMA
                                    • 여러가지 변동을 합치는 것
                                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                    • Moving Average: Smoothing을 하기 위한 것
                                  • SARIMA
                                    • ARIMA + Seasonality
                                    • 맞추기가 어렵다
                                  • Stochastic Process(확률과정론)
                                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                    • e.g. 블랙숄즈모형
                                    • 요즘에는 맞추기가 너무 힘들다
                                  • Prophet
                                    • 시계열모형 by Facebook
                                    • component로 쪼개준다(트렌드로, seasonality로…)
                                      • 데이터가 변동하는것을 분리한다
                                    • 구간추정이 가능하다
                                    • 현실적으로 사용하기 좋다
                                  • 그렇다면 시계열 예측을 어떻게 해야?
                                    • 피처엔지니어링의 영역이 중요
                                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                      • 이전까지의 가격 정보를 피쳐엔지니어링
                                      • 언제까지 데이터를 얼마나 활용할 것인가
                                    • 정적

                                  Day3 실습 1
                                  • 벡터라이즈의 효과
                                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                  • MA: 주로 시각화를 위해서만 사용
                                  • 시차에 따른 문제
                                    • UTC timestamp를 사용하는 것이 일반적
                                  • 피처엔지니어링
                                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                                      • 점진적 목표 개선(애자일하다? )
                                  • 예측
                                    • inference가 목적이라면: 로그를 꼭 씌워야
                                    • 예측이 목적이라면 X
                                  실습2
                                  • 로그를 씌우니 R제곱이 떨어졌다
                                    • 해석에 주의
                                    • residual의 값이 작다…
                                    • 이유: 주기성(연초에 튄다)
                                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                    • 모델은 Pred을 설명하지 못한다
                                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                  Day3.4
                                  • 랜덤포레스트
                                    • max_depth= 회귀분석의 모델의 자유도
                                  • 전체 자유도 = n-1 = 1954
                                  • 모델 자유도 = 사용한 변수의 개수 = 27
                                  • 잔차의 자유도 = 1954-27
                                  • Degrees of Freedom
                                    • how many independent pieces of information you need in order to make that calculation
                                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                    • what we already know가 중요
                                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                      1. 초록색이 아니야
                                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                    • 따라서 보통 df = 카테고리의 수 -1
                                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                    • the n-th doesn't contribute to the STD
                                      • ANOVA(Analysis of Variance)
                                        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                      • 대표적인 가정Assumption
                                        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                      1. Remedy: Normality
                                        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                        • 그 외 Shapiro, Kolmogorov
                                      2. Remedy: Independency
                                        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                        • 시간적 자기상관성: e.g.
                                        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                        • 진단: DW검정
                                        • 해결: ARIMA등 시계열 모형을 사용
                                      3. Remedy: Equal Variance
                                        • Homoscedasticity vs Heteroscedasticity
                                        • 각 집단의 분산이 동일하다는 가정
                                        • 평균이 높아지면 분산이 커지는것이 자연스러움
                                        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                        • 방안: 로그변환 등
                                        • Welch-t test
                                      • 실질적 의의(Practical Significance)
                                        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                      • 단순 선형 회귀
                                        • 피쳐(독립변수) 1개만
                                        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                        • 양측 단측
                                        • 단순선형회귀에서는 t = F
                                        • 다중에서는 다르다
                                        • SSE: 에러 / SSR: 설명하는 부분
                                        • F분포(p-value): 통계적으로 유의한가
                                          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                          • p-value 대신 신뢰구간을 사용할 것을 추천
                                          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                          • 0.001: 1000번 중 1번은 괜찮다
                                        • R제곱: 실질적으로 유의한가
                                          • 분포에 대한 가정은 없다
                                          • X(변수)를 추가하면 R제곱은 무조건 증가
                                          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                          • Negative R2가 나올 수 있을까?
                                          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                      • 머신러닝의 목적
                                        • Prediction: 예측 잘 맞추면 장땡
                                        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                      • Sampling
                                        • Simple random sample
                                        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                          • random seed를 고정해도 안된다
                                          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                        • Stratified sample
                                        • Cluster sample
                                      • Ensemble
                                        • 모델 여러개를 조합
                                          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                          • Boosing: Sequential. 모델 사용을 연쇄적으로
                                        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                        • Explicit feedback: 따봉
                                        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                          • ‘싫어하는 것’도 구별해야
                                        • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                      • Test R2:
                                      • 변수선택
                                        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                          • 파이썬에는 없다(전수조사하면 되니까..)
                                      • Collinearity
                                      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                      1. 콜라이니어리티 (Collinearity):
                                        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                      2. 자기상관 (Auto-correlation):
                                        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                      • Data Literacy 관점에서 통계 필요
                                        • ChatGPT에게 오롯이 맡길 수 없다
                                      • 실습
                                       
                                      • Ridge / LASSO
                                        • 쓸데없는 베타값을 없앤다
                                        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                      • Splining Regression
                                        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                      • Quantile Regression
                                        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                      • Logistic Regression
                                        • 비선형함수인 logistic funcion을 활용한
                                        • sigmoid: S자. 대표적인것이 logistic
                                      • Link funcion
                                        • 선형회귀에서는 normal을 사용
                                      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                      • 푸아송 분포
                                        • 단위 시간(혹은 공간)당 횟수의 분포
                                          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                        • 제약이 많아 현실적으로는 많이 사용하지 않음
                                      • 평균을 구해보자
                                        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                      • 불확실성을 다루는 통계
                                        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                        • 특정값 뿐만 아니라 범위도 공유해야
                                          • e.g. 예상매출액의 최상/최하 금액
                                        • Decision Making을 위한 것
                                      • 추정과 기댓값
                                        • 추론 vs. 예측
                                      • 모수(Parameter)
                                        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                          • MLE(이거 하나만 알아도 면접에서 선방)
                                            • 추정량을 만드는 도구 중 하나
                                        e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                        • bias-variance trade-off
                                        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                        • 수학공부
                                          • 벡터미분
                                      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                      • 1종 오류(유의수준)가 5%라는 의미
                                      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                      • 타입2: 효과가 있는데 없다고 잘못판단
                                      • 타입1: 효과가 없는데 있다고 사기친 것
                                      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                      • : ‘신’만이 알고 있는 고정된 상수
                                      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                      • 통계적 가설 검정
                                      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                      • Variance: 데이터가 어떻게 퍼져 있는지
                                      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                        • 모든 데이터를 포함하지 않는다
                                        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                      • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                        • Solution: 행렬 분해
                                      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                        • 직선 데이터에 한정
                                        • 그래서 딥러닝에서는 오토인코더를 이용
                                      • PCA vs. SVD
                                        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                        • 추천 알고리즘에서의 SVD
                                      • 추천시스템
                                        • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                        • Big-O
                                        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                      3일차
                                      • 고전적 시계열 모형의 한계
                                      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                        • 핵심: k를 어떻게 정할 것인가
                                        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                          • k가 클수록 모델이 복잡해진다
                                          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                          • 복잡도는 자유도(df)로 측정한다
                                      • 자유도: 여러곳에서 많이 사용되는 개념
                                        • 분석에 사용되는 데이터의 독립적인 정보의 수
                                        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                        • t분포의 모수
                                        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                          • 모델의 자유도가 높을수록 복잡도가 높은 것
                                      • 최소자승법
                                        • 오차항을 최소화하는것이 예측력을 높이는 것
                                        • 오차는 표준정규분포를 따른다고 가정
                                        • SST = SSE + SSR
                                      • 단순 선형 회귀
                                        • 베타0: 별로 중요하진 않다. 없으면 안된다
                                        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                        • 베타1: t분포를 따른다
                                        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                      • t검정
                                        • 모델에서는 F검정
                                        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                      • 이분산성
                                        • 구간에 따라 분산이 달라진다
                                        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                        • 해결: 단위변화(주로 로그변환)
                                      • Normality
                                        • 잔차가 정규분포를 따른다
                                        • 베타값의 신뢰도를 맞추기 위해(???)
                                        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                      • 다중선형회귀
                                      • 다중공선성
                                        • 회귀에서 가장 주의해야!
                                        • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                        • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                        • 불안정한 계수
                                        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                        • 다중공선성에 대한 기준은 교재마다 다르다
                                          • 주로 8
                                        • 차원축소를 선호
                                      • 교호작용
                                        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                        • 트리기반 모델은 효과적으로 활용 가능
                                      • 변수 선택
                                        • 변수가 많을수록 패널티를 준다
                                      • 시계열
                                      • ARIMA
                                        • 여러가지 변동을 합치는 것
                                        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                        • Moving Average: Smoothing을 하기 위한 것
                                      • SARIMA
                                        • ARIMA + Seasonality
                                        • 맞추기가 어렵다
                                      • Stochastic Process(확률과정론)
                                        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                        • e.g. 블랙숄즈모형
                                        • 요즘에는 맞추기가 너무 힘들다
                                      • Prophet
                                        • 시계열모형 by Facebook
                                        • component로 쪼개준다(트렌드로, seasonality로…)
                                          • 데이터가 변동하는것을 분리한다
                                        • 구간추정이 가능하다
                                        • 현실적으로 사용하기 좋다
                                      • 그렇다면 시계열 예측을 어떻게 해야?
                                        • 피처엔지니어링의 영역이 중요
                                        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                          • 이전까지의 가격 정보를 피쳐엔지니어링
                                          • 언제까지 데이터를 얼마나 활용할 것인가
                                        • 정적

                                      Day3 실습 1
                                      • 벡터라이즈의 효과
                                        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                      • MA: 주로 시각화를 위해서만 사용
                                      • 시차에 따른 문제
                                        • UTC timestamp를 사용하는 것이 일반적
                                      • 피처엔지니어링
                                        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                        • 과거에 없는 상점이 생기는 등의 문제가 있음
                                          • 점진적 목표 개선(애자일하다? )
                                      • 예측
                                        • inference가 목적이라면: 로그를 꼭 씌워야
                                        • 예측이 목적이라면 X
                                      실습2
                                      • 로그를 씌우니 R제곱이 떨어졌다
                                        • 해석에 주의
                                        • residual의 값이 작다…
                                        • 이유: 주기성(연초에 튄다)
                                        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                        • 모델은 Pred을 설명하지 못한다
                                        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                      Day3.4
                                      • 랜덤포레스트
                                        • max_depth= 회귀분석의 모델의 자유도
                                      • 전체 자유도 = n-1 = 1954
                                      • 모델 자유도 = 사용한 변수의 개수 = 27
                                      • 잔차의 자유도 = 1954-27
                                      • Degrees of Freedom
                                        • how many independent pieces of information you need in order to make that calculation
                                        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                        • what we already know가 중요
                                        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                          1. 초록색이 아니야
                                          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                        • 따라서 보통 df = 카테고리의 수 -1
                                        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                        • the n-th doesn't contribute to the STD
                                          • ANOVA(Analysis of Variance)
                                            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                          • 대표적인 가정Assumption
                                            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                          1. Remedy: Normality
                                            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                            • 그 외 Shapiro, Kolmogorov
                                          2. Remedy: Independency
                                            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                            • 시간적 자기상관성: e.g.
                                            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                            • 진단: DW검정
                                            • 해결: ARIMA등 시계열 모형을 사용
                                          3. Remedy: Equal Variance
                                            • Homoscedasticity vs Heteroscedasticity
                                            • 각 집단의 분산이 동일하다는 가정
                                            • 평균이 높아지면 분산이 커지는것이 자연스러움
                                            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                            • 방안: 로그변환 등
                                            • Welch-t test
                                          • 실질적 의의(Practical Significance)
                                            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                          • 단순 선형 회귀
                                            • 피쳐(독립변수) 1개만
                                            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                            • 양측 단측
                                            • 단순선형회귀에서는 t = F
                                            • 다중에서는 다르다
                                            • SSE: 에러 / SSR: 설명하는 부분
                                            • F분포(p-value): 통계적으로 유의한가
                                              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                              • p-value 대신 신뢰구간을 사용할 것을 추천
                                              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                              • 0.001: 1000번 중 1번은 괜찮다
                                            • R제곱: 실질적으로 유의한가
                                              • 분포에 대한 가정은 없다
                                              • X(변수)를 추가하면 R제곱은 무조건 증가
                                              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                              • Negative R2가 나올 수 있을까?
                                              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                          • 머신러닝의 목적
                                            • Prediction: 예측 잘 맞추면 장땡
                                            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                          • Sampling
                                            • Simple random sample
                                            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                              • random seed를 고정해도 안된다
                                              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                            • Stratified sample
                                            • Cluster sample
                                          • Ensemble
                                            • 모델 여러개를 조합
                                              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                              • Boosing: Sequential. 모델 사용을 연쇄적으로
                                            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                            • Explicit feedback: 따봉
                                            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                              • ‘싫어하는 것’도 구별해야
                                            • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                          • Test R2:
                                          • 변수선택
                                            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                              • 파이썬에는 없다(전수조사하면 되니까..)
                                          • Collinearity
                                          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                          1. 콜라이니어리티 (Collinearity):
                                            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                          2. 자기상관 (Auto-correlation):
                                            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                          • Data Literacy 관점에서 통계 필요
                                            • ChatGPT에게 오롯이 맡길 수 없다
                                          • 실습
                                           
                                          • Ridge / LASSO
                                            • 쓸데없는 베타값을 없앤다
                                            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                          • Splining Regression
                                            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                          • Quantile Regression
                                            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                          • Logistic Regression
                                            • 비선형함수인 logistic funcion을 활용한
                                            • sigmoid: S자. 대표적인것이 logistic
                                          • Link funcion
                                            • 선형회귀에서는 normal을 사용
                                          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                          • 푸아송 분포
                                            • 단위 시간(혹은 공간)당 횟수의 분포
                                              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                            • 제약이 많아 현실적으로는 많이 사용하지 않음
                                          • 평균을 구해보자
                                            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                          • 불확실성을 다루는 통계
                                            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                            • 특정값 뿐만 아니라 범위도 공유해야
                                              • e.g. 예상매출액의 최상/최하 금액
                                            • Decision Making을 위한 것
                                          • 추정과 기댓값
                                            • 추론 vs. 예측
                                          • 모수(Parameter)
                                            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                              • MLE(이거 하나만 알아도 면접에서 선방)
                                                • 추정량을 만드는 도구 중 하나
                                            e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                            • bias-variance trade-off
                                            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                            • 수학공부
                                              • 벡터미분
                                          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                          • 1종 오류(유의수준)가 5%라는 의미
                                          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                          • 타입2: 효과가 있는데 없다고 잘못판단
                                          • 타입1: 효과가 없는데 있다고 사기친 것
                                          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                          • : ‘신’만이 알고 있는 고정된 상수
                                          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                          • 통계적 가설 검정
                                          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                          • Variance: 데이터가 어떻게 퍼져 있는지
                                          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                            • 모든 데이터를 포함하지 않는다
                                            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                          • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                            • Solution: 행렬 분해
                                          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                            • 직선 데이터에 한정
                                            • 그래서 딥러닝에서는 오토인코더를 이용
                                          • PCA vs. SVD
                                            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                            • 추천 알고리즘에서의 SVD
                                          • 추천시스템
                                            • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                            • Big-O
                                            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                          3일차
                                          • 고전적 시계열 모형의 한계
                                          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                            • 핵심: k를 어떻게 정할 것인가
                                            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                              • k가 클수록 모델이 복잡해진다
                                              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                              • 복잡도는 자유도(df)로 측정한다
                                          • 자유도: 여러곳에서 많이 사용되는 개념
                                            • 분석에 사용되는 데이터의 독립적인 정보의 수
                                            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                            • t분포의 모수
                                            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                              • 모델의 자유도가 높을수록 복잡도가 높은 것
                                          • 최소자승법
                                            • 오차항을 최소화하는것이 예측력을 높이는 것
                                            • 오차는 표준정규분포를 따른다고 가정
                                            • SST = SSE + SSR
                                          • 단순 선형 회귀
                                            • 베타0: 별로 중요하진 않다. 없으면 안된다
                                            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                            • 베타1: t분포를 따른다
                                            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                          • t검정
                                            • 모델에서는 F검정
                                            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                          • 이분산성
                                            • 구간에 따라 분산이 달라진다
                                            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                            • 해결: 단위변화(주로 로그변환)
                                          • Normality
                                            • 잔차가 정규분포를 따른다
                                            • 베타값의 신뢰도를 맞추기 위해(???)
                                            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                          • 다중선형회귀
                                          • 다중공선성
                                            • 회귀에서 가장 주의해야!
                                            • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                            • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                            • 불안정한 계수
                                            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                            • 다중공선성에 대한 기준은 교재마다 다르다
                                              • 주로 8
                                            • 차원축소를 선호
                                          • 교호작용
                                            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                            • 트리기반 모델은 효과적으로 활용 가능
                                          • 변수 선택
                                            • 변수가 많을수록 패널티를 준다
                                          • 시계열
                                          • ARIMA
                                            • 여러가지 변동을 합치는 것
                                            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                            • Moving Average: Smoothing을 하기 위한 것
                                          • SARIMA
                                            • ARIMA + Seasonality
                                            • 맞추기가 어렵다
                                          • Stochastic Process(확률과정론)
                                            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                            • e.g. 블랙숄즈모형
                                            • 요즘에는 맞추기가 너무 힘들다
                                          • Prophet
                                            • 시계열모형 by Facebook
                                            • component로 쪼개준다(트렌드로, seasonality로…)
                                              • 데이터가 변동하는것을 분리한다
                                            • 구간추정이 가능하다
                                            • 현실적으로 사용하기 좋다
                                          • 그렇다면 시계열 예측을 어떻게 해야?
                                            • 피처엔지니어링의 영역이 중요
                                            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                              • 이전까지의 가격 정보를 피쳐엔지니어링
                                              • 언제까지 데이터를 얼마나 활용할 것인가
                                            • 정적

                                          Day3 실습 1
                                          • 벡터라이즈의 효과
                                            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                          • MA: 주로 시각화를 위해서만 사용
                                          • 시차에 따른 문제
                                            • UTC timestamp를 사용하는 것이 일반적
                                          • 피처엔지니어링
                                            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                            • 과거에 없는 상점이 생기는 등의 문제가 있음
                                              • 점진적 목표 개선(애자일하다? )
                                          • 예측
                                            • inference가 목적이라면: 로그를 꼭 씌워야
                                            • 예측이 목적이라면 X
                                          실습2
                                          • 로그를 씌우니 R제곱이 떨어졌다
                                            • 해석에 주의
                                            • residual의 값이 작다…
                                            • 이유: 주기성(연초에 튄다)
                                            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                            • 모델은 Pred을 설명하지 못한다
                                            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                          Day3.4
                                          • 랜덤포레스트
                                            • max_depth= 회귀분석의 모델의 자유도
                                          • 전체 자유도 = n-1 = 1954
                                          • 모델 자유도 = 사용한 변수의 개수 = 27
                                          • 잔차의 자유도 = 1954-27
                                          • Degrees of Freedom
                                            • how many independent pieces of information you need in order to make that calculation
                                            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                            • what we already know가 중요
                                            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                              1. 초록색이 아니야
                                              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                            • 따라서 보통 df = 카테고리의 수 -1
                                            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                            • the n-th doesn't contribute to the STD
                                              • ANOVA(Analysis of Variance)
                                                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                              • 대표적인 가정Assumption
                                                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                              1. Remedy: Normality
                                                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                • 그 외 Shapiro, Kolmogorov
                                              2. Remedy: Independency
                                                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                • 시간적 자기상관성: e.g.
                                                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                • 진단: DW검정
                                                • 해결: ARIMA등 시계열 모형을 사용
                                              3. Remedy: Equal Variance
                                                • Homoscedasticity vs Heteroscedasticity
                                                • 각 집단의 분산이 동일하다는 가정
                                                • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                • 방안: 로그변환 등
                                                • Welch-t test
                                              • 실질적 의의(Practical Significance)
                                                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                              • 단순 선형 회귀
                                                • 피쳐(독립변수) 1개만
                                                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                • 양측 단측
                                                • 단순선형회귀에서는 t = F
                                                • 다중에서는 다르다
                                                • SSE: 에러 / SSR: 설명하는 부분
                                                • F분포(p-value): 통계적으로 유의한가
                                                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                  • p-value 대신 신뢰구간을 사용할 것을 추천
                                                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                  • 0.001: 1000번 중 1번은 괜찮다
                                                • R제곱: 실질적으로 유의한가
                                                  • 분포에 대한 가정은 없다
                                                  • X(변수)를 추가하면 R제곱은 무조건 증가
                                                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                  • Negative R2가 나올 수 있을까?
                                                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                              • 머신러닝의 목적
                                                • Prediction: 예측 잘 맞추면 장땡
                                                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                              • Sampling
                                                • Simple random sample
                                                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                  • random seed를 고정해도 안된다
                                                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                • Stratified sample
                                                • Cluster sample
                                              • Ensemble
                                                • 모델 여러개를 조합
                                                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                • Explicit feedback: 따봉
                                                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                  • ‘싫어하는 것’도 구별해야
                                                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                              • Test R2:
                                              • 변수선택
                                                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                  • 파이썬에는 없다(전수조사하면 되니까..)
                                              • Collinearity
                                              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                              1. 콜라이니어리티 (Collinearity):
                                                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                              2. 자기상관 (Auto-correlation):
                                                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                              • Data Literacy 관점에서 통계 필요
                                                • ChatGPT에게 오롯이 맡길 수 없다
                                              • 실습
                                               
                                              • Ridge / LASSO
                                                • 쓸데없는 베타값을 없앤다
                                                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                              • Splining Regression
                                                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                              • Quantile Regression
                                                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                              • Logistic Regression
                                                • 비선형함수인 logistic funcion을 활용한
                                                • sigmoid: S자. 대표적인것이 logistic
                                              • Link funcion
                                                • 선형회귀에서는 normal을 사용
                                              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                              • 푸아송 분포
                                                • 단위 시간(혹은 공간)당 횟수의 분포
                                                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                • 제약이 많아 현실적으로는 많이 사용하지 않음
                                              • 평균을 구해보자
                                                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                              • 불확실성을 다루는 통계
                                                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                • 특정값 뿐만 아니라 범위도 공유해야
                                                  • e.g. 예상매출액의 최상/최하 금액
                                                • Decision Making을 위한 것
                                              • 추정과 기댓값
                                                • 추론 vs. 예측
                                              • 모수(Parameter)
                                                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                  • MLE(이거 하나만 알아도 면접에서 선방)
                                                    • 추정량을 만드는 도구 중 하나
                                                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                • bias-variance trade-off
                                                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                • 수학공부
                                                  • 벡터미분
                                              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                              • 1종 오류(유의수준)가 5%라는 의미
                                              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                              • 타입2: 효과가 있는데 없다고 잘못판단
                                              • 타입1: 효과가 없는데 있다고 사기친 것
                                              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                              • : ‘신’만이 알고 있는 고정된 상수
                                              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                              • 통계적 가설 검정
                                              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                              • Variance: 데이터가 어떻게 퍼져 있는지
                                              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                • 모든 데이터를 포함하지 않는다
                                                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                              • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                • Solution: 행렬 분해
                                              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                • 직선 데이터에 한정
                                                • 그래서 딥러닝에서는 오토인코더를 이용
                                              • PCA vs. SVD
                                                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                • 추천 알고리즘에서의 SVD
                                              • 추천시스템
                                                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                • Big-O
                                                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                              3일차
                                              • 고전적 시계열 모형의 한계
                                              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                • 핵심: k를 어떻게 정할 것인가
                                                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                  • k가 클수록 모델이 복잡해진다
                                                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                  • 복잡도는 자유도(df)로 측정한다
                                              • 자유도: 여러곳에서 많이 사용되는 개념
                                                • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                • t분포의 모수
                                                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                  • 모델의 자유도가 높을수록 복잡도가 높은 것
                                              • 최소자승법
                                                • 오차항을 최소화하는것이 예측력을 높이는 것
                                                • 오차는 표준정규분포를 따른다고 가정
                                                • SST = SSE + SSR
                                              • 단순 선형 회귀
                                                • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                • 베타1: t분포를 따른다
                                                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                              • t검정
                                                • 모델에서는 F검정
                                                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                              • 이분산성
                                                • 구간에 따라 분산이 달라진다
                                                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                • 해결: 단위변화(주로 로그변환)
                                              • Normality
                                                • 잔차가 정규분포를 따른다
                                                • 베타값의 신뢰도를 맞추기 위해(???)
                                                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                              • 다중선형회귀
                                              • 다중공선성
                                                • 회귀에서 가장 주의해야!
                                                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                • 불안정한 계수
                                                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                • 다중공선성에 대한 기준은 교재마다 다르다
                                                  • 주로 8
                                                • 차원축소를 선호
                                              • 교호작용
                                                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                • 트리기반 모델은 효과적으로 활용 가능
                                              • 변수 선택
                                                • 변수가 많을수록 패널티를 준다
                                              • 시계열
                                              • ARIMA
                                                • 여러가지 변동을 합치는 것
                                                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                • Moving Average: Smoothing을 하기 위한 것
                                              • SARIMA
                                                • ARIMA + Seasonality
                                                • 맞추기가 어렵다
                                              • Stochastic Process(확률과정론)
                                                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                • e.g. 블랙숄즈모형
                                                • 요즘에는 맞추기가 너무 힘들다
                                              • Prophet
                                                • 시계열모형 by Facebook
                                                • component로 쪼개준다(트렌드로, seasonality로…)
                                                  • 데이터가 변동하는것을 분리한다
                                                • 구간추정이 가능하다
                                                • 현실적으로 사용하기 좋다
                                              • 그렇다면 시계열 예측을 어떻게 해야?
                                                • 피처엔지니어링의 영역이 중요
                                                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                  • 이전까지의 가격 정보를 피쳐엔지니어링
                                                  • 언제까지 데이터를 얼마나 활용할 것인가
                                                • 정적

                                              Day3 실습 1
                                              • 벡터라이즈의 효과
                                                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                              • MA: 주로 시각화를 위해서만 사용
                                              • 시차에 따른 문제
                                                • UTC timestamp를 사용하는 것이 일반적
                                              • 피처엔지니어링
                                                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                  • 점진적 목표 개선(애자일하다? )
                                              • 예측
                                                • inference가 목적이라면: 로그를 꼭 씌워야
                                                • 예측이 목적이라면 X
                                              실습2
                                              • 로그를 씌우니 R제곱이 떨어졌다
                                                • 해석에 주의
                                                • residual의 값이 작다…
                                                • 이유: 주기성(연초에 튄다)
                                                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                • 모델은 Pred을 설명하지 못한다
                                                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                              Day3.4
                                              • 랜덤포레스트
                                                • max_depth= 회귀분석의 모델의 자유도
                                              • 전체 자유도 = n-1 = 1954
                                              • 모델 자유도 = 사용한 변수의 개수 = 27
                                              • 잔차의 자유도 = 1954-27
                                              • Degrees of Freedom
                                                • how many independent pieces of information you need in order to make that calculation
                                                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                • what we already know가 중요
                                                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                  1. 초록색이 아니야
                                                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                • 따라서 보통 df = 카테고리의 수 -1
                                                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                • the n-th doesn't contribute to the STD
                                                  • ANOVA(Analysis of Variance)
                                                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                  • 대표적인 가정Assumption
                                                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                  1. Remedy: Normality
                                                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                    • 그 외 Shapiro, Kolmogorov
                                                  2. Remedy: Independency
                                                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                    • 시간적 자기상관성: e.g.
                                                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                    • 진단: DW검정
                                                    • 해결: ARIMA등 시계열 모형을 사용
                                                  3. Remedy: Equal Variance
                                                    • Homoscedasticity vs Heteroscedasticity
                                                    • 각 집단의 분산이 동일하다는 가정
                                                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                    • 방안: 로그변환 등
                                                    • Welch-t test
                                                  • 실질적 의의(Practical Significance)
                                                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                  • 단순 선형 회귀
                                                    • 피쳐(독립변수) 1개만
                                                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                    • 양측 단측
                                                    • 단순선형회귀에서는 t = F
                                                    • 다중에서는 다르다
                                                    • SSE: 에러 / SSR: 설명하는 부분
                                                    • F분포(p-value): 통계적으로 유의한가
                                                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                      • p-value 대신 신뢰구간을 사용할 것을 추천
                                                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                      • 0.001: 1000번 중 1번은 괜찮다
                                                    • R제곱: 실질적으로 유의한가
                                                      • 분포에 대한 가정은 없다
                                                      • X(변수)를 추가하면 R제곱은 무조건 증가
                                                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                      • Negative R2가 나올 수 있을까?
                                                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                  • 머신러닝의 목적
                                                    • Prediction: 예측 잘 맞추면 장땡
                                                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                  • Sampling
                                                    • Simple random sample
                                                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                      • random seed를 고정해도 안된다
                                                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                    • Stratified sample
                                                    • Cluster sample
                                                  • Ensemble
                                                    • 모델 여러개를 조합
                                                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                    • Explicit feedback: 따봉
                                                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                      • ‘싫어하는 것’도 구별해야
                                                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                  • Test R2:
                                                  • 변수선택
                                                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                      • 파이썬에는 없다(전수조사하면 되니까..)
                                                  • Collinearity
                                                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                  1. 콜라이니어리티 (Collinearity):
                                                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                  2. 자기상관 (Auto-correlation):
                                                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                  • Data Literacy 관점에서 통계 필요
                                                    • ChatGPT에게 오롯이 맡길 수 없다
                                                  • 실습
                                                   
                                                  • Ridge / LASSO
                                                    • 쓸데없는 베타값을 없앤다
                                                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                  • Splining Regression
                                                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                  • Quantile Regression
                                                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                  • Logistic Regression
                                                    • 비선형함수인 logistic funcion을 활용한
                                                    • sigmoid: S자. 대표적인것이 logistic
                                                  • Link funcion
                                                    • 선형회귀에서는 normal을 사용
                                                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                  • 푸아송 분포
                                                    • 단위 시간(혹은 공간)당 횟수의 분포
                                                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                  • 평균을 구해보자
                                                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                  • 불확실성을 다루는 통계
                                                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                    • 특정값 뿐만 아니라 범위도 공유해야
                                                      • e.g. 예상매출액의 최상/최하 금액
                                                    • Decision Making을 위한 것
                                                  • 추정과 기댓값
                                                    • 추론 vs. 예측
                                                  • 모수(Parameter)
                                                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                      • MLE(이거 하나만 알아도 면접에서 선방)
                                                        • 추정량을 만드는 도구 중 하나
                                                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                    • bias-variance trade-off
                                                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                    • 수학공부
                                                      • 벡터미분
                                                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                  • 1종 오류(유의수준)가 5%라는 의미
                                                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                  • 타입2: 효과가 있는데 없다고 잘못판단
                                                  • 타입1: 효과가 없는데 있다고 사기친 것
                                                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                  • : ‘신’만이 알고 있는 고정된 상수
                                                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                  • 통계적 가설 검정
                                                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                  • Variance: 데이터가 어떻게 퍼져 있는지
                                                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                    • 모든 데이터를 포함하지 않는다
                                                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                    • Solution: 행렬 분해
                                                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                    • 직선 데이터에 한정
                                                    • 그래서 딥러닝에서는 오토인코더를 이용
                                                  • PCA vs. SVD
                                                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                    • 추천 알고리즘에서의 SVD
                                                  • 추천시스템
                                                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                    • Big-O
                                                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                  3일차
                                                  • 고전적 시계열 모형의 한계
                                                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                    • 핵심: k를 어떻게 정할 것인가
                                                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                      • k가 클수록 모델이 복잡해진다
                                                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                      • 복잡도는 자유도(df)로 측정한다
                                                  • 자유도: 여러곳에서 많이 사용되는 개념
                                                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                    • t분포의 모수
                                                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                  • 최소자승법
                                                    • 오차항을 최소화하는것이 예측력을 높이는 것
                                                    • 오차는 표준정규분포를 따른다고 가정
                                                    • SST = SSE + SSR
                                                  • 단순 선형 회귀
                                                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                    • 베타1: t분포를 따른다
                                                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                  • t검정
                                                    • 모델에서는 F검정
                                                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                  • 이분산성
                                                    • 구간에 따라 분산이 달라진다
                                                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                    • 해결: 단위변화(주로 로그변환)
                                                  • Normality
                                                    • 잔차가 정규분포를 따른다
                                                    • 베타값의 신뢰도를 맞추기 위해(???)
                                                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                  • 다중선형회귀
                                                  • 다중공선성
                                                    • 회귀에서 가장 주의해야!
                                                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                    • 불안정한 계수
                                                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                    • 다중공선성에 대한 기준은 교재마다 다르다
                                                      • 주로 8
                                                    • 차원축소를 선호
                                                  • 교호작용
                                                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                    • 트리기반 모델은 효과적으로 활용 가능
                                                  • 변수 선택
                                                    • 변수가 많을수록 패널티를 준다
                                                  • 시계열
                                                  • ARIMA
                                                    • 여러가지 변동을 합치는 것
                                                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                    • Moving Average: Smoothing을 하기 위한 것
                                                  • SARIMA
                                                    • ARIMA + Seasonality
                                                    • 맞추기가 어렵다
                                                  • Stochastic Process(확률과정론)
                                                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                    • e.g. 블랙숄즈모형
                                                    • 요즘에는 맞추기가 너무 힘들다
                                                  • Prophet
                                                    • 시계열모형 by Facebook
                                                    • component로 쪼개준다(트렌드로, seasonality로…)
                                                      • 데이터가 변동하는것을 분리한다
                                                    • 구간추정이 가능하다
                                                    • 현실적으로 사용하기 좋다
                                                  • 그렇다면 시계열 예측을 어떻게 해야?
                                                    • 피처엔지니어링의 영역이 중요
                                                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                      • 이전까지의 가격 정보를 피쳐엔지니어링
                                                      • 언제까지 데이터를 얼마나 활용할 것인가
                                                    • 정적

                                                  Day3 실습 1
                                                  • 벡터라이즈의 효과
                                                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                  • MA: 주로 시각화를 위해서만 사용
                                                  • 시차에 따른 문제
                                                    • UTC timestamp를 사용하는 것이 일반적
                                                  • 피처엔지니어링
                                                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                      • 점진적 목표 개선(애자일하다? )
                                                  • 예측
                                                    • inference가 목적이라면: 로그를 꼭 씌워야
                                                    • 예측이 목적이라면 X
                                                  실습2
                                                  • 로그를 씌우니 R제곱이 떨어졌다
                                                    • 해석에 주의
                                                    • residual의 값이 작다…
                                                    • 이유: 주기성(연초에 튄다)
                                                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                    • 모델은 Pred을 설명하지 못한다
                                                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                  Day3.4
                                                  • 랜덤포레스트
                                                    • max_depth= 회귀분석의 모델의 자유도
                                                  • 전체 자유도 = n-1 = 1954
                                                  • 모델 자유도 = 사용한 변수의 개수 = 27
                                                  • 잔차의 자유도 = 1954-27
                                                  • Degrees of Freedom
                                                    • how many independent pieces of information you need in order to make that calculation
                                                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                    • what we already know가 중요
                                                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                      1. 초록색이 아니야
                                                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                    • 따라서 보통 df = 카테고리의 수 -1
                                                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                    • the n-th doesn't contribute to the STD
                                                      • ANOVA(Analysis of Variance)
                                                        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                      • 대표적인 가정Assumption
                                                        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                      1. Remedy: Normality
                                                        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                        • 그 외 Shapiro, Kolmogorov
                                                      2. Remedy: Independency
                                                        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                        • 시간적 자기상관성: e.g.
                                                        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                        • 진단: DW검정
                                                        • 해결: ARIMA등 시계열 모형을 사용
                                                      3. Remedy: Equal Variance
                                                        • Homoscedasticity vs Heteroscedasticity
                                                        • 각 집단의 분산이 동일하다는 가정
                                                        • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                        • 방안: 로그변환 등
                                                        • Welch-t test
                                                      • 실질적 의의(Practical Significance)
                                                        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                      • 단순 선형 회귀
                                                        • 피쳐(독립변수) 1개만
                                                        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                        • 양측 단측
                                                        • 단순선형회귀에서는 t = F
                                                        • 다중에서는 다르다
                                                        • SSE: 에러 / SSR: 설명하는 부분
                                                        • F분포(p-value): 통계적으로 유의한가
                                                          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                          • p-value 대신 신뢰구간을 사용할 것을 추천
                                                          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                          • 0.001: 1000번 중 1번은 괜찮다
                                                        • R제곱: 실질적으로 유의한가
                                                          • 분포에 대한 가정은 없다
                                                          • X(변수)를 추가하면 R제곱은 무조건 증가
                                                          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                          • Negative R2가 나올 수 있을까?
                                                          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                      • 머신러닝의 목적
                                                        • Prediction: 예측 잘 맞추면 장땡
                                                        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                      • Sampling
                                                        • Simple random sample
                                                        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                          • random seed를 고정해도 안된다
                                                          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                        • Stratified sample
                                                        • Cluster sample
                                                      • Ensemble
                                                        • 모델 여러개를 조합
                                                          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                          • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                        • Explicit feedback: 따봉
                                                        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                          • ‘싫어하는 것’도 구별해야
                                                        • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                      • Test R2:
                                                      • 변수선택
                                                        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                          • 파이썬에는 없다(전수조사하면 되니까..)
                                                      • Collinearity
                                                      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                      1. 콜라이니어리티 (Collinearity):
                                                        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                      2. 자기상관 (Auto-correlation):
                                                        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                      • Data Literacy 관점에서 통계 필요
                                                        • ChatGPT에게 오롯이 맡길 수 없다
                                                      • 실습
                                                       
                                                      • Ridge / LASSO
                                                        • 쓸데없는 베타값을 없앤다
                                                        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                      • Splining Regression
                                                        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                      • Quantile Regression
                                                        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                      • Logistic Regression
                                                        • 비선형함수인 logistic funcion을 활용한
                                                        • sigmoid: S자. 대표적인것이 logistic
                                                      • Link funcion
                                                        • 선형회귀에서는 normal을 사용
                                                      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                      • 푸아송 분포
                                                        • 단위 시간(혹은 공간)당 횟수의 분포
                                                          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                        • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                      • 평균을 구해보자
                                                        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                      • 불확실성을 다루는 통계
                                                        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                        • 특정값 뿐만 아니라 범위도 공유해야
                                                          • e.g. 예상매출액의 최상/최하 금액
                                                        • Decision Making을 위한 것
                                                      • 추정과 기댓값
                                                        • 추론 vs. 예측
                                                      • 모수(Parameter)
                                                        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                          • MLE(이거 하나만 알아도 면접에서 선방)
                                                            • 추정량을 만드는 도구 중 하나
                                                        e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                        • bias-variance trade-off
                                                        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                        • 수학공부
                                                          • 벡터미분
                                                      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                      • 1종 오류(유의수준)가 5%라는 의미
                                                      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                      • 타입2: 효과가 있는데 없다고 잘못판단
                                                      • 타입1: 효과가 없는데 있다고 사기친 것
                                                      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                      • : ‘신’만이 알고 있는 고정된 상수
                                                      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                      • 통계적 가설 검정
                                                      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                      • Variance: 데이터가 어떻게 퍼져 있는지
                                                      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                        • 모든 데이터를 포함하지 않는다
                                                        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                      • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                        • Solution: 행렬 분해
                                                      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                        • 직선 데이터에 한정
                                                        • 그래서 딥러닝에서는 오토인코더를 이용
                                                      • PCA vs. SVD
                                                        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                        • 추천 알고리즘에서의 SVD
                                                      • 추천시스템
                                                        • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                        • Big-O
                                                        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                      3일차
                                                      • 고전적 시계열 모형의 한계
                                                      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                        • 핵심: k를 어떻게 정할 것인가
                                                        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                          • k가 클수록 모델이 복잡해진다
                                                          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                          • 복잡도는 자유도(df)로 측정한다
                                                      • 자유도: 여러곳에서 많이 사용되는 개념
                                                        • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                        • t분포의 모수
                                                        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                          • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                      • 최소자승법
                                                        • 오차항을 최소화하는것이 예측력을 높이는 것
                                                        • 오차는 표준정규분포를 따른다고 가정
                                                        • SST = SSE + SSR
                                                      • 단순 선형 회귀
                                                        • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                        • 베타1: t분포를 따른다
                                                        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                      • t검정
                                                        • 모델에서는 F검정
                                                        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                      • 이분산성
                                                        • 구간에 따라 분산이 달라진다
                                                        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                        • 해결: 단위변화(주로 로그변환)
                                                      • Normality
                                                        • 잔차가 정규분포를 따른다
                                                        • 베타값의 신뢰도를 맞추기 위해(???)
                                                        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                      • 다중선형회귀
                                                      • 다중공선성
                                                        • 회귀에서 가장 주의해야!
                                                        • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                        • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                        • 불안정한 계수
                                                        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                        • 다중공선성에 대한 기준은 교재마다 다르다
                                                          • 주로 8
                                                        • 차원축소를 선호
                                                      • 교호작용
                                                        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                        • 트리기반 모델은 효과적으로 활용 가능
                                                      • 변수 선택
                                                        • 변수가 많을수록 패널티를 준다
                                                      • 시계열
                                                      • ARIMA
                                                        • 여러가지 변동을 합치는 것
                                                        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                        • Moving Average: Smoothing을 하기 위한 것
                                                      • SARIMA
                                                        • ARIMA + Seasonality
                                                        • 맞추기가 어렵다
                                                      • Stochastic Process(확률과정론)
                                                        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                        • e.g. 블랙숄즈모형
                                                        • 요즘에는 맞추기가 너무 힘들다
                                                      • Prophet
                                                        • 시계열모형 by Facebook
                                                        • component로 쪼개준다(트렌드로, seasonality로…)
                                                          • 데이터가 변동하는것을 분리한다
                                                        • 구간추정이 가능하다
                                                        • 현실적으로 사용하기 좋다
                                                      • 그렇다면 시계열 예측을 어떻게 해야?
                                                        • 피처엔지니어링의 영역이 중요
                                                        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                          • 이전까지의 가격 정보를 피쳐엔지니어링
                                                          • 언제까지 데이터를 얼마나 활용할 것인가
                                                        • 정적

                                                      Day3 실습 1
                                                      • 벡터라이즈의 효과
                                                        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                      • MA: 주로 시각화를 위해서만 사용
                                                      • 시차에 따른 문제
                                                        • UTC timestamp를 사용하는 것이 일반적
                                                      • 피처엔지니어링
                                                        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                        • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                          • 점진적 목표 개선(애자일하다? )
                                                      • 예측
                                                        • inference가 목적이라면: 로그를 꼭 씌워야
                                                        • 예측이 목적이라면 X
                                                      실습2
                                                      • 로그를 씌우니 R제곱이 떨어졌다
                                                        • 해석에 주의
                                                        • residual의 값이 작다…
                                                        • 이유: 주기성(연초에 튄다)
                                                        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                        • 모델은 Pred을 설명하지 못한다
                                                        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                      Day3.4
                                                      • 랜덤포레스트
                                                        • max_depth= 회귀분석의 모델의 자유도
                                                      • 전체 자유도 = n-1 = 1954
                                                      • 모델 자유도 = 사용한 변수의 개수 = 27
                                                      • 잔차의 자유도 = 1954-27
                                                      • Degrees of Freedom
                                                        • how many independent pieces of information you need in order to make that calculation
                                                        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                        • what we already know가 중요
                                                        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                          1. 초록색이 아니야
                                                          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                        • 따라서 보통 df = 카테고리의 수 -1
                                                        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                        • the n-th doesn't contribute to the STD
                                                          • ANOVA(Analysis of Variance)
                                                            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                          • 대표적인 가정Assumption
                                                            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                          1. Remedy: Normality
                                                            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                            • 그 외 Shapiro, Kolmogorov
                                                          2. Remedy: Independency
                                                            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                            • 시간적 자기상관성: e.g.
                                                            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                            • 진단: DW검정
                                                            • 해결: ARIMA등 시계열 모형을 사용
                                                          3. Remedy: Equal Variance
                                                            • Homoscedasticity vs Heteroscedasticity
                                                            • 각 집단의 분산이 동일하다는 가정
                                                            • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                            • 방안: 로그변환 등
                                                            • Welch-t test
                                                          • 실질적 의의(Practical Significance)
                                                            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                          • 단순 선형 회귀
                                                            • 피쳐(독립변수) 1개만
                                                            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                            • 양측 단측
                                                            • 단순선형회귀에서는 t = F
                                                            • 다중에서는 다르다
                                                            • SSE: 에러 / SSR: 설명하는 부분
                                                            • F분포(p-value): 통계적으로 유의한가
                                                              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                              • p-value 대신 신뢰구간을 사용할 것을 추천
                                                              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                              • 0.001: 1000번 중 1번은 괜찮다
                                                            • R제곱: 실질적으로 유의한가
                                                              • 분포에 대한 가정은 없다
                                                              • X(변수)를 추가하면 R제곱은 무조건 증가
                                                              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                              • Negative R2가 나올 수 있을까?
                                                              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                          • 머신러닝의 목적
                                                            • Prediction: 예측 잘 맞추면 장땡
                                                            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                          • Sampling
                                                            • Simple random sample
                                                            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                              • random seed를 고정해도 안된다
                                                              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                            • Stratified sample
                                                            • Cluster sample
                                                          • Ensemble
                                                            • 모델 여러개를 조합
                                                              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                              • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                            • Explicit feedback: 따봉
                                                            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                              • ‘싫어하는 것’도 구별해야
                                                            • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                          • Test R2:
                                                          • 변수선택
                                                            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                              • 파이썬에는 없다(전수조사하면 되니까..)
                                                          • Collinearity
                                                          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                          1. 콜라이니어리티 (Collinearity):
                                                            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                          2. 자기상관 (Auto-correlation):
                                                            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                          • Data Literacy 관점에서 통계 필요
                                                            • ChatGPT에게 오롯이 맡길 수 없다
                                                          • 실습
                                                           
                                                          • Ridge / LASSO
                                                            • 쓸데없는 베타값을 없앤다
                                                            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                          • Splining Regression
                                                            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                          • Quantile Regression
                                                            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                          • Logistic Regression
                                                            • 비선형함수인 logistic funcion을 활용한
                                                            • sigmoid: S자. 대표적인것이 logistic
                                                          • Link funcion
                                                            • 선형회귀에서는 normal을 사용
                                                          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                          • 푸아송 분포
                                                            • 단위 시간(혹은 공간)당 횟수의 분포
                                                              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                            • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                          • 평균을 구해보자
                                                            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                          • 불확실성을 다루는 통계
                                                            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                            • 특정값 뿐만 아니라 범위도 공유해야
                                                              • e.g. 예상매출액의 최상/최하 금액
                                                            • Decision Making을 위한 것
                                                          • 추정과 기댓값
                                                            • 추론 vs. 예측
                                                          • 모수(Parameter)
                                                            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                              • MLE(이거 하나만 알아도 면접에서 선방)
                                                                • 추정량을 만드는 도구 중 하나
                                                            e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                            • bias-variance trade-off
                                                            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                            • 수학공부
                                                              • 벡터미분
                                                          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                          • 1종 오류(유의수준)가 5%라는 의미
                                                          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                          • 타입2: 효과가 있는데 없다고 잘못판단
                                                          • 타입1: 효과가 없는데 있다고 사기친 것
                                                          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                          • : ‘신’만이 알고 있는 고정된 상수
                                                          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                          • 통계적 가설 검정
                                                          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                          • Variance: 데이터가 어떻게 퍼져 있는지
                                                          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                            • 모든 데이터를 포함하지 않는다
                                                            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                          • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                            • Solution: 행렬 분해
                                                          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                            • 직선 데이터에 한정
                                                            • 그래서 딥러닝에서는 오토인코더를 이용
                                                          • PCA vs. SVD
                                                            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                            • 추천 알고리즘에서의 SVD
                                                          • 추천시스템
                                                            • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                            • Big-O
                                                            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                          3일차
                                                          • 고전적 시계열 모형의 한계
                                                          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                            • 핵심: k를 어떻게 정할 것인가
                                                            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                              • k가 클수록 모델이 복잡해진다
                                                              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                              • 복잡도는 자유도(df)로 측정한다
                                                          • 자유도: 여러곳에서 많이 사용되는 개념
                                                            • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                            • t분포의 모수
                                                            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                              • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                          • 최소자승법
                                                            • 오차항을 최소화하는것이 예측력을 높이는 것
                                                            • 오차는 표준정규분포를 따른다고 가정
                                                            • SST = SSE + SSR
                                                          • 단순 선형 회귀
                                                            • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                            • 베타1: t분포를 따른다
                                                            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                          • t검정
                                                            • 모델에서는 F검정
                                                            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                          • 이분산성
                                                            • 구간에 따라 분산이 달라진다
                                                            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                            • 해결: 단위변화(주로 로그변환)
                                                          • Normality
                                                            • 잔차가 정규분포를 따른다
                                                            • 베타값의 신뢰도를 맞추기 위해(???)
                                                            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                          • 다중선형회귀
                                                          • 다중공선성
                                                            • 회귀에서 가장 주의해야!
                                                            • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                            • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                            • 불안정한 계수
                                                            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                            • 다중공선성에 대한 기준은 교재마다 다르다
                                                              • 주로 8
                                                            • 차원축소를 선호
                                                          • 교호작용
                                                            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                            • 트리기반 모델은 효과적으로 활용 가능
                                                          • 변수 선택
                                                            • 변수가 많을수록 패널티를 준다
                                                          • 시계열
                                                          • ARIMA
                                                            • 여러가지 변동을 합치는 것
                                                            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                            • Moving Average: Smoothing을 하기 위한 것
                                                          • SARIMA
                                                            • ARIMA + Seasonality
                                                            • 맞추기가 어렵다
                                                          • Stochastic Process(확률과정론)
                                                            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                            • e.g. 블랙숄즈모형
                                                            • 요즘에는 맞추기가 너무 힘들다
                                                          • Prophet
                                                            • 시계열모형 by Facebook
                                                            • component로 쪼개준다(트렌드로, seasonality로…)
                                                              • 데이터가 변동하는것을 분리한다
                                                            • 구간추정이 가능하다
                                                            • 현실적으로 사용하기 좋다
                                                          • 그렇다면 시계열 예측을 어떻게 해야?
                                                            • 피처엔지니어링의 영역이 중요
                                                            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                              • 이전까지의 가격 정보를 피쳐엔지니어링
                                                              • 언제까지 데이터를 얼마나 활용할 것인가
                                                            • 정적

                                                          Day3 실습 1
                                                          • 벡터라이즈의 효과
                                                            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                          • MA: 주로 시각화를 위해서만 사용
                                                          • 시차에 따른 문제
                                                            • UTC timestamp를 사용하는 것이 일반적
                                                          • 피처엔지니어링
                                                            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                            • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                              • 점진적 목표 개선(애자일하다? )
                                                          • 예측
                                                            • inference가 목적이라면: 로그를 꼭 씌워야
                                                            • 예측이 목적이라면 X
                                                          실습2
                                                          • 로그를 씌우니 R제곱이 떨어졌다
                                                            • 해석에 주의
                                                            • residual의 값이 작다…
                                                            • 이유: 주기성(연초에 튄다)
                                                            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                            • 모델은 Pred을 설명하지 못한다
                                                            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                          Day3.4
                                                          • 랜덤포레스트
                                                            • max_depth= 회귀분석의 모델의 자유도
                                                          • 전체 자유도 = n-1 = 1954
                                                          • 모델 자유도 = 사용한 변수의 개수 = 27
                                                          • 잔차의 자유도 = 1954-27
                                                          • Degrees of Freedom
                                                            • how many independent pieces of information you need in order to make that calculation
                                                            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                            • what we already know가 중요
                                                            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                              1. 초록색이 아니야
                                                              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                            • 따라서 보통 df = 카테고리의 수 -1
                                                            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                            • the n-th doesn't contribute to the STD
                                                              • ANOVA(Analysis of Variance)
                                                                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                              • 대표적인 가정Assumption
                                                                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                              1. Remedy: Normality
                                                                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                • 그 외 Shapiro, Kolmogorov
                                                              2. Remedy: Independency
                                                                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                • 시간적 자기상관성: e.g.
                                                                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                • 진단: DW검정
                                                                • 해결: ARIMA등 시계열 모형을 사용
                                                              3. Remedy: Equal Variance
                                                                • Homoscedasticity vs Heteroscedasticity
                                                                • 각 집단의 분산이 동일하다는 가정
                                                                • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                • 방안: 로그변환 등
                                                                • Welch-t test
                                                              • 실질적 의의(Practical Significance)
                                                                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                              • 단순 선형 회귀
                                                                • 피쳐(독립변수) 1개만
                                                                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                • 양측 단측
                                                                • 단순선형회귀에서는 t = F
                                                                • 다중에서는 다르다
                                                                • SSE: 에러 / SSR: 설명하는 부분
                                                                • F분포(p-value): 통계적으로 유의한가
                                                                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                  • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                  • 0.001: 1000번 중 1번은 괜찮다
                                                                • R제곱: 실질적으로 유의한가
                                                                  • 분포에 대한 가정은 없다
                                                                  • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                  • Negative R2가 나올 수 있을까?
                                                                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                              • 머신러닝의 목적
                                                                • Prediction: 예측 잘 맞추면 장땡
                                                                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                              • Sampling
                                                                • Simple random sample
                                                                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                  • random seed를 고정해도 안된다
                                                                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                • Stratified sample
                                                                • Cluster sample
                                                              • Ensemble
                                                                • 모델 여러개를 조합
                                                                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                • Explicit feedback: 따봉
                                                                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                  • ‘싫어하는 것’도 구별해야
                                                                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                              • Test R2:
                                                              • 변수선택
                                                                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                  • 파이썬에는 없다(전수조사하면 되니까..)
                                                              • Collinearity
                                                              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                              1. 콜라이니어리티 (Collinearity):
                                                                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                              2. 자기상관 (Auto-correlation):
                                                                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                              • Data Literacy 관점에서 통계 필요
                                                                • ChatGPT에게 오롯이 맡길 수 없다
                                                              • 실습
                                                               
                                                              • Ridge / LASSO
                                                                • 쓸데없는 베타값을 없앤다
                                                                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                              • Splining Regression
                                                                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                              • Quantile Regression
                                                                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                              • Logistic Regression
                                                                • 비선형함수인 logistic funcion을 활용한
                                                                • sigmoid: S자. 대표적인것이 logistic
                                                              • Link funcion
                                                                • 선형회귀에서는 normal을 사용
                                                              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                              • 푸아송 분포
                                                                • 단위 시간(혹은 공간)당 횟수의 분포
                                                                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                              • 평균을 구해보자
                                                                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                              • 불확실성을 다루는 통계
                                                                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                • 특정값 뿐만 아니라 범위도 공유해야
                                                                  • e.g. 예상매출액의 최상/최하 금액
                                                                • Decision Making을 위한 것
                                                              • 추정과 기댓값
                                                                • 추론 vs. 예측
                                                              • 모수(Parameter)
                                                                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                  • MLE(이거 하나만 알아도 면접에서 선방)
                                                                    • 추정량을 만드는 도구 중 하나
                                                                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                • bias-variance trade-off
                                                                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                • 수학공부
                                                                  • 벡터미분
                                                              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                              • 1종 오류(유의수준)가 5%라는 의미
                                                              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                              • 타입2: 효과가 있는데 없다고 잘못판단
                                                              • 타입1: 효과가 없는데 있다고 사기친 것
                                                              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                              • : ‘신’만이 알고 있는 고정된 상수
                                                              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                              • 통계적 가설 검정
                                                              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                              • Variance: 데이터가 어떻게 퍼져 있는지
                                                              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                • 모든 데이터를 포함하지 않는다
                                                                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                              • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                • Solution: 행렬 분해
                                                              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                • 직선 데이터에 한정
                                                                • 그래서 딥러닝에서는 오토인코더를 이용
                                                              • PCA vs. SVD
                                                                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                • 추천 알고리즘에서의 SVD
                                                              • 추천시스템
                                                                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                • Big-O
                                                                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                              3일차
                                                              • 고전적 시계열 모형의 한계
                                                              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                • 핵심: k를 어떻게 정할 것인가
                                                                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                  • k가 클수록 모델이 복잡해진다
                                                                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                  • 복잡도는 자유도(df)로 측정한다
                                                              • 자유도: 여러곳에서 많이 사용되는 개념
                                                                • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                • t분포의 모수
                                                                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                  • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                              • 최소자승법
                                                                • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                • 오차는 표준정규분포를 따른다고 가정
                                                                • SST = SSE + SSR
                                                              • 단순 선형 회귀
                                                                • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                • 베타1: t분포를 따른다
                                                                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                              • t검정
                                                                • 모델에서는 F검정
                                                                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                              • 이분산성
                                                                • 구간에 따라 분산이 달라진다
                                                                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                • 해결: 단위변화(주로 로그변환)
                                                              • Normality
                                                                • 잔차가 정규분포를 따른다
                                                                • 베타값의 신뢰도를 맞추기 위해(???)
                                                                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                              • 다중선형회귀
                                                              • 다중공선성
                                                                • 회귀에서 가장 주의해야!
                                                                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                • 불안정한 계수
                                                                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                • 다중공선성에 대한 기준은 교재마다 다르다
                                                                  • 주로 8
                                                                • 차원축소를 선호
                                                              • 교호작용
                                                                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                • 트리기반 모델은 효과적으로 활용 가능
                                                              • 변수 선택
                                                                • 변수가 많을수록 패널티를 준다
                                                              • 시계열
                                                              • ARIMA
                                                                • 여러가지 변동을 합치는 것
                                                                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                • Moving Average: Smoothing을 하기 위한 것
                                                              • SARIMA
                                                                • ARIMA + Seasonality
                                                                • 맞추기가 어렵다
                                                              • Stochastic Process(확률과정론)
                                                                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                • e.g. 블랙숄즈모형
                                                                • 요즘에는 맞추기가 너무 힘들다
                                                              • Prophet
                                                                • 시계열모형 by Facebook
                                                                • component로 쪼개준다(트렌드로, seasonality로…)
                                                                  • 데이터가 변동하는것을 분리한다
                                                                • 구간추정이 가능하다
                                                                • 현실적으로 사용하기 좋다
                                                              • 그렇다면 시계열 예측을 어떻게 해야?
                                                                • 피처엔지니어링의 영역이 중요
                                                                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                  • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                  • 언제까지 데이터를 얼마나 활용할 것인가
                                                                • 정적

                                                              Day3 실습 1
                                                              • 벡터라이즈의 효과
                                                                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                              • MA: 주로 시각화를 위해서만 사용
                                                              • 시차에 따른 문제
                                                                • UTC timestamp를 사용하는 것이 일반적
                                                              • 피처엔지니어링
                                                                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                  • 점진적 목표 개선(애자일하다? )
                                                              • 예측
                                                                • inference가 목적이라면: 로그를 꼭 씌워야
                                                                • 예측이 목적이라면 X
                                                              실습2
                                                              • 로그를 씌우니 R제곱이 떨어졌다
                                                                • 해석에 주의
                                                                • residual의 값이 작다…
                                                                • 이유: 주기성(연초에 튄다)
                                                                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                • 모델은 Pred을 설명하지 못한다
                                                                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                              Day3.4
                                                              • 랜덤포레스트
                                                                • max_depth= 회귀분석의 모델의 자유도
                                                              • 전체 자유도 = n-1 = 1954
                                                              • 모델 자유도 = 사용한 변수의 개수 = 27
                                                              • 잔차의 자유도 = 1954-27
                                                              • Degrees of Freedom
                                                                • how many independent pieces of information you need in order to make that calculation
                                                                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                • what we already know가 중요
                                                                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                  1. 초록색이 아니야
                                                                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                • 따라서 보통 df = 카테고리의 수 -1
                                                                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                • the n-th doesn't contribute to the STD
                                                                  • ANOVA(Analysis of Variance)
                                                                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                  • 대표적인 가정Assumption
                                                                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                  1. Remedy: Normality
                                                                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                    • 그 외 Shapiro, Kolmogorov
                                                                  2. Remedy: Independency
                                                                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                    • 시간적 자기상관성: e.g.
                                                                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                    • 진단: DW검정
                                                                    • 해결: ARIMA등 시계열 모형을 사용
                                                                  3. Remedy: Equal Variance
                                                                    • Homoscedasticity vs Heteroscedasticity
                                                                    • 각 집단의 분산이 동일하다는 가정
                                                                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                    • 방안: 로그변환 등
                                                                    • Welch-t test
                                                                  • 실질적 의의(Practical Significance)
                                                                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                  • 단순 선형 회귀
                                                                    • 피쳐(독립변수) 1개만
                                                                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                    • 양측 단측
                                                                    • 단순선형회귀에서는 t = F
                                                                    • 다중에서는 다르다
                                                                    • SSE: 에러 / SSR: 설명하는 부분
                                                                    • F분포(p-value): 통계적으로 유의한가
                                                                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                      • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                      • 0.001: 1000번 중 1번은 괜찮다
                                                                    • R제곱: 실질적으로 유의한가
                                                                      • 분포에 대한 가정은 없다
                                                                      • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                      • Negative R2가 나올 수 있을까?
                                                                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                  • 머신러닝의 목적
                                                                    • Prediction: 예측 잘 맞추면 장땡
                                                                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                  • Sampling
                                                                    • Simple random sample
                                                                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                      • random seed를 고정해도 안된다
                                                                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                    • Stratified sample
                                                                    • Cluster sample
                                                                  • Ensemble
                                                                    • 모델 여러개를 조합
                                                                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                    • Explicit feedback: 따봉
                                                                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                      • ‘싫어하는 것’도 구별해야
                                                                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                  • Test R2:
                                                                  • 변수선택
                                                                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                      • 파이썬에는 없다(전수조사하면 되니까..)
                                                                  • Collinearity
                                                                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                  1. 콜라이니어리티 (Collinearity):
                                                                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                  2. 자기상관 (Auto-correlation):
                                                                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                  • Data Literacy 관점에서 통계 필요
                                                                    • ChatGPT에게 오롯이 맡길 수 없다
                                                                  • 실습
                                                                   
                                                                  • Ridge / LASSO
                                                                    • 쓸데없는 베타값을 없앤다
                                                                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                  • Splining Regression
                                                                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                  • Quantile Regression
                                                                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                  • Logistic Regression
                                                                    • 비선형함수인 logistic funcion을 활용한
                                                                    • sigmoid: S자. 대표적인것이 logistic
                                                                  • Link funcion
                                                                    • 선형회귀에서는 normal을 사용
                                                                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                  • 푸아송 분포
                                                                    • 단위 시간(혹은 공간)당 횟수의 분포
                                                                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                  • 평균을 구해보자
                                                                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                  • 불확실성을 다루는 통계
                                                                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                    • 특정값 뿐만 아니라 범위도 공유해야
                                                                      • e.g. 예상매출액의 최상/최하 금액
                                                                    • Decision Making을 위한 것
                                                                  • 추정과 기댓값
                                                                    • 추론 vs. 예측
                                                                  • 모수(Parameter)
                                                                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                      • MLE(이거 하나만 알아도 면접에서 선방)
                                                                        • 추정량을 만드는 도구 중 하나
                                                                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                    • bias-variance trade-off
                                                                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                    • 수학공부
                                                                      • 벡터미분
                                                                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                  • 1종 오류(유의수준)가 5%라는 의미
                                                                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                  • 타입2: 효과가 있는데 없다고 잘못판단
                                                                  • 타입1: 효과가 없는데 있다고 사기친 것
                                                                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                  • : ‘신’만이 알고 있는 고정된 상수
                                                                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                  • 통계적 가설 검정
                                                                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                  • Variance: 데이터가 어떻게 퍼져 있는지
                                                                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                    • 모든 데이터를 포함하지 않는다
                                                                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                    • Solution: 행렬 분해
                                                                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                    • 직선 데이터에 한정
                                                                    • 그래서 딥러닝에서는 오토인코더를 이용
                                                                  • PCA vs. SVD
                                                                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                    • 추천 알고리즘에서의 SVD
                                                                  • 추천시스템
                                                                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                    • Big-O
                                                                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                  3일차
                                                                  • 고전적 시계열 모형의 한계
                                                                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                    • 핵심: k를 어떻게 정할 것인가
                                                                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                      • k가 클수록 모델이 복잡해진다
                                                                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                      • 복잡도는 자유도(df)로 측정한다
                                                                  • 자유도: 여러곳에서 많이 사용되는 개념
                                                                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                    • t분포의 모수
                                                                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                  • 최소자승법
                                                                    • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                    • 오차는 표준정규분포를 따른다고 가정
                                                                    • SST = SSE + SSR
                                                                  • 단순 선형 회귀
                                                                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                    • 베타1: t분포를 따른다
                                                                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                  • t검정
                                                                    • 모델에서는 F검정
                                                                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                  • 이분산성
                                                                    • 구간에 따라 분산이 달라진다
                                                                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                    • 해결: 단위변화(주로 로그변환)
                                                                  • Normality
                                                                    • 잔차가 정규분포를 따른다
                                                                    • 베타값의 신뢰도를 맞추기 위해(???)
                                                                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                  • 다중선형회귀
                                                                  • 다중공선성
                                                                    • 회귀에서 가장 주의해야!
                                                                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                    • 불안정한 계수
                                                                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                    • 다중공선성에 대한 기준은 교재마다 다르다
                                                                      • 주로 8
                                                                    • 차원축소를 선호
                                                                  • 교호작용
                                                                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                    • 트리기반 모델은 효과적으로 활용 가능
                                                                  • 변수 선택
                                                                    • 변수가 많을수록 패널티를 준다
                                                                  • 시계열
                                                                  • ARIMA
                                                                    • 여러가지 변동을 합치는 것
                                                                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                    • Moving Average: Smoothing을 하기 위한 것
                                                                  • SARIMA
                                                                    • ARIMA + Seasonality
                                                                    • 맞추기가 어렵다
                                                                  • Stochastic Process(확률과정론)
                                                                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                    • e.g. 블랙숄즈모형
                                                                    • 요즘에는 맞추기가 너무 힘들다
                                                                  • Prophet
                                                                    • 시계열모형 by Facebook
                                                                    • component로 쪼개준다(트렌드로, seasonality로…)
                                                                      • 데이터가 변동하는것을 분리한다
                                                                    • 구간추정이 가능하다
                                                                    • 현실적으로 사용하기 좋다
                                                                  • 그렇다면 시계열 예측을 어떻게 해야?
                                                                    • 피처엔지니어링의 영역이 중요
                                                                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                      • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                      • 언제까지 데이터를 얼마나 활용할 것인가
                                                                    • 정적

                                                                  Day3 실습 1
                                                                  • 벡터라이즈의 효과
                                                                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                  • MA: 주로 시각화를 위해서만 사용
                                                                  • 시차에 따른 문제
                                                                    • UTC timestamp를 사용하는 것이 일반적
                                                                  • 피처엔지니어링
                                                                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                      • 점진적 목표 개선(애자일하다? )
                                                                  • 예측
                                                                    • inference가 목적이라면: 로그를 꼭 씌워야
                                                                    • 예측이 목적이라면 X
                                                                  실습2
                                                                  • 로그를 씌우니 R제곱이 떨어졌다
                                                                    • 해석에 주의
                                                                    • residual의 값이 작다…
                                                                    • 이유: 주기성(연초에 튄다)
                                                                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                    • 모델은 Pred을 설명하지 못한다
                                                                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                  Day3.4
                                                                  • 랜덤포레스트
                                                                    • max_depth= 회귀분석의 모델의 자유도
                                                                  • 전체 자유도 = n-1 = 1954
                                                                  • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                  • 잔차의 자유도 = 1954-27
                                                                  • Degrees of Freedom
                                                                    • how many independent pieces of information you need in order to make that calculation
                                                                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                    • what we already know가 중요
                                                                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                      1. 초록색이 아니야
                                                                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                    • 따라서 보통 df = 카테고리의 수 -1
                                                                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                    • the n-th doesn't contribute to the STD
                                                                      • ANOVA(Analysis of Variance)
                                                                        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                      • 대표적인 가정Assumption
                                                                        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                      1. Remedy: Normality
                                                                        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                        • 그 외 Shapiro, Kolmogorov
                                                                      2. Remedy: Independency
                                                                        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                        • 시간적 자기상관성: e.g.
                                                                        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                        • 진단: DW검정
                                                                        • 해결: ARIMA등 시계열 모형을 사용
                                                                      3. Remedy: Equal Variance
                                                                        • Homoscedasticity vs Heteroscedasticity
                                                                        • 각 집단의 분산이 동일하다는 가정
                                                                        • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                        • 방안: 로그변환 등
                                                                        • Welch-t test
                                                                      • 실질적 의의(Practical Significance)
                                                                        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                      • 단순 선형 회귀
                                                                        • 피쳐(독립변수) 1개만
                                                                        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                        • 양측 단측
                                                                        • 단순선형회귀에서는 t = F
                                                                        • 다중에서는 다르다
                                                                        • SSE: 에러 / SSR: 설명하는 부분
                                                                        • F분포(p-value): 통계적으로 유의한가
                                                                          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                          • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                          • 0.001: 1000번 중 1번은 괜찮다
                                                                        • R제곱: 실질적으로 유의한가
                                                                          • 분포에 대한 가정은 없다
                                                                          • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                          • Negative R2가 나올 수 있을까?
                                                                          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                      • 머신러닝의 목적
                                                                        • Prediction: 예측 잘 맞추면 장땡
                                                                        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                      • Sampling
                                                                        • Simple random sample
                                                                        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                          • random seed를 고정해도 안된다
                                                                          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                        • Stratified sample
                                                                        • Cluster sample
                                                                      • Ensemble
                                                                        • 모델 여러개를 조합
                                                                          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                          • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                        • Explicit feedback: 따봉
                                                                        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                          • ‘싫어하는 것’도 구별해야
                                                                        • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                      • Test R2:
                                                                      • 변수선택
                                                                        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                          • 파이썬에는 없다(전수조사하면 되니까..)
                                                                      • Collinearity
                                                                      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                      1. 콜라이니어리티 (Collinearity):
                                                                        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                      2. 자기상관 (Auto-correlation):
                                                                        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                      • Data Literacy 관점에서 통계 필요
                                                                        • ChatGPT에게 오롯이 맡길 수 없다
                                                                      • 실습
                                                                       
                                                                      • Ridge / LASSO
                                                                        • 쓸데없는 베타값을 없앤다
                                                                        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                      • Splining Regression
                                                                        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                      • Quantile Regression
                                                                        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                      • Logistic Regression
                                                                        • 비선형함수인 logistic funcion을 활용한
                                                                        • sigmoid: S자. 대표적인것이 logistic
                                                                      • Link funcion
                                                                        • 선형회귀에서는 normal을 사용
                                                                      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                      • 푸아송 분포
                                                                        • 단위 시간(혹은 공간)당 횟수의 분포
                                                                          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                        • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                      • 평균을 구해보자
                                                                        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                      • 불확실성을 다루는 통계
                                                                        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                        • 특정값 뿐만 아니라 범위도 공유해야
                                                                          • e.g. 예상매출액의 최상/최하 금액
                                                                        • Decision Making을 위한 것
                                                                      • 추정과 기댓값
                                                                        • 추론 vs. 예측
                                                                      • 모수(Parameter)
                                                                        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                          • MLE(이거 하나만 알아도 면접에서 선방)
                                                                            • 추정량을 만드는 도구 중 하나
                                                                        e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                        • bias-variance trade-off
                                                                        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                        • 수학공부
                                                                          • 벡터미분
                                                                      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                      • 1종 오류(유의수준)가 5%라는 의미
                                                                      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                      • 타입2: 효과가 있는데 없다고 잘못판단
                                                                      • 타입1: 효과가 없는데 있다고 사기친 것
                                                                      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                      • : ‘신’만이 알고 있는 고정된 상수
                                                                      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                      • 통계적 가설 검정
                                                                      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                      • Variance: 데이터가 어떻게 퍼져 있는지
                                                                      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                        • 모든 데이터를 포함하지 않는다
                                                                        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                      • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                        • Solution: 행렬 분해
                                                                      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                        • 직선 데이터에 한정
                                                                        • 그래서 딥러닝에서는 오토인코더를 이용
                                                                      • PCA vs. SVD
                                                                        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                        • 추천 알고리즘에서의 SVD
                                                                      • 추천시스템
                                                                        • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                        • Big-O
                                                                        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                      3일차
                                                                      • 고전적 시계열 모형의 한계
                                                                      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                        • 핵심: k를 어떻게 정할 것인가
                                                                        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                          • k가 클수록 모델이 복잡해진다
                                                                          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                          • 복잡도는 자유도(df)로 측정한다
                                                                      • 자유도: 여러곳에서 많이 사용되는 개념
                                                                        • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                        • t분포의 모수
                                                                        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                          • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                      • 최소자승법
                                                                        • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                        • 오차는 표준정규분포를 따른다고 가정
                                                                        • SST = SSE + SSR
                                                                      • 단순 선형 회귀
                                                                        • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                        • 베타1: t분포를 따른다
                                                                        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                      • t검정
                                                                        • 모델에서는 F검정
                                                                        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                      • 이분산성
                                                                        • 구간에 따라 분산이 달라진다
                                                                        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                        • 해결: 단위변화(주로 로그변환)
                                                                      • Normality
                                                                        • 잔차가 정규분포를 따른다
                                                                        • 베타값의 신뢰도를 맞추기 위해(???)
                                                                        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                      • 다중선형회귀
                                                                      • 다중공선성
                                                                        • 회귀에서 가장 주의해야!
                                                                        • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                        • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                        • 불안정한 계수
                                                                        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                        • 다중공선성에 대한 기준은 교재마다 다르다
                                                                          • 주로 8
                                                                        • 차원축소를 선호
                                                                      • 교호작용
                                                                        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                        • 트리기반 모델은 효과적으로 활용 가능
                                                                      • 변수 선택
                                                                        • 변수가 많을수록 패널티를 준다
                                                                      • 시계열
                                                                      • ARIMA
                                                                        • 여러가지 변동을 합치는 것
                                                                        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                        • Moving Average: Smoothing을 하기 위한 것
                                                                      • SARIMA
                                                                        • ARIMA + Seasonality
                                                                        • 맞추기가 어렵다
                                                                      • Stochastic Process(확률과정론)
                                                                        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                        • e.g. 블랙숄즈모형
                                                                        • 요즘에는 맞추기가 너무 힘들다
                                                                      • Prophet
                                                                        • 시계열모형 by Facebook
                                                                        • component로 쪼개준다(트렌드로, seasonality로…)
                                                                          • 데이터가 변동하는것을 분리한다
                                                                        • 구간추정이 가능하다
                                                                        • 현실적으로 사용하기 좋다
                                                                      • 그렇다면 시계열 예측을 어떻게 해야?
                                                                        • 피처엔지니어링의 영역이 중요
                                                                        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                          • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                          • 언제까지 데이터를 얼마나 활용할 것인가
                                                                        • 정적

                                                                      Day3 실습 1
                                                                      • 벡터라이즈의 효과
                                                                        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                      • MA: 주로 시각화를 위해서만 사용
                                                                      • 시차에 따른 문제
                                                                        • UTC timestamp를 사용하는 것이 일반적
                                                                      • 피처엔지니어링
                                                                        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                        • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                          • 점진적 목표 개선(애자일하다? )
                                                                      • 예측
                                                                        • inference가 목적이라면: 로그를 꼭 씌워야
                                                                        • 예측이 목적이라면 X
                                                                      실습2
                                                                      • 로그를 씌우니 R제곱이 떨어졌다
                                                                        • 해석에 주의
                                                                        • residual의 값이 작다…
                                                                        • 이유: 주기성(연초에 튄다)
                                                                        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                        • 모델은 Pred을 설명하지 못한다
                                                                        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                      Day3.4
                                                                      • 랜덤포레스트
                                                                        • max_depth= 회귀분석의 모델의 자유도
                                                                      • 전체 자유도 = n-1 = 1954
                                                                      • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                      • 잔차의 자유도 = 1954-27
                                                                      • Degrees of Freedom
                                                                        • how many independent pieces of information you need in order to make that calculation
                                                                        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                        • what we already know가 중요
                                                                        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                          1. 초록색이 아니야
                                                                          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                        • 따라서 보통 df = 카테고리의 수 -1
                                                                        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                        • the n-th doesn't contribute to the STD
                                                                          • ANOVA(Analysis of Variance)
                                                                            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                          • 대표적인 가정Assumption
                                                                            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                          1. Remedy: Normality
                                                                            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                            • 그 외 Shapiro, Kolmogorov
                                                                          2. Remedy: Independency
                                                                            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                            • 시간적 자기상관성: e.g.
                                                                            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                            • 진단: DW검정
                                                                            • 해결: ARIMA등 시계열 모형을 사용
                                                                          3. Remedy: Equal Variance
                                                                            • Homoscedasticity vs Heteroscedasticity
                                                                            • 각 집단의 분산이 동일하다는 가정
                                                                            • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                            • 방안: 로그변환 등
                                                                            • Welch-t test
                                                                          • 실질적 의의(Practical Significance)
                                                                            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                          • 단순 선형 회귀
                                                                            • 피쳐(독립변수) 1개만
                                                                            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                            • 양측 단측
                                                                            • 단순선형회귀에서는 t = F
                                                                            • 다중에서는 다르다
                                                                            • SSE: 에러 / SSR: 설명하는 부분
                                                                            • F분포(p-value): 통계적으로 유의한가
                                                                              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                              • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                              • 0.001: 1000번 중 1번은 괜찮다
                                                                            • R제곱: 실질적으로 유의한가
                                                                              • 분포에 대한 가정은 없다
                                                                              • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                              • Negative R2가 나올 수 있을까?
                                                                              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                          • 머신러닝의 목적
                                                                            • Prediction: 예측 잘 맞추면 장땡
                                                                            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                          • Sampling
                                                                            • Simple random sample
                                                                            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                              • random seed를 고정해도 안된다
                                                                              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                            • Stratified sample
                                                                            • Cluster sample
                                                                          • Ensemble
                                                                            • 모델 여러개를 조합
                                                                              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                              • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                            • Explicit feedback: 따봉
                                                                            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                              • ‘싫어하는 것’도 구별해야
                                                                            • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                          • Test R2:
                                                                          • 변수선택
                                                                            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                              • 파이썬에는 없다(전수조사하면 되니까..)
                                                                          • Collinearity
                                                                          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                          1. 콜라이니어리티 (Collinearity):
                                                                            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                          2. 자기상관 (Auto-correlation):
                                                                            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                          • Data Literacy 관점에서 통계 필요
                                                                            • ChatGPT에게 오롯이 맡길 수 없다
                                                                          • 실습
                                                                           
                                                                          • Ridge / LASSO
                                                                            • 쓸데없는 베타값을 없앤다
                                                                            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                          • Splining Regression
                                                                            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                          • Quantile Regression
                                                                            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                          • Logistic Regression
                                                                            • 비선형함수인 logistic funcion을 활용한
                                                                            • sigmoid: S자. 대표적인것이 logistic
                                                                          • Link funcion
                                                                            • 선형회귀에서는 normal을 사용
                                                                          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                          • 푸아송 분포
                                                                            • 단위 시간(혹은 공간)당 횟수의 분포
                                                                              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                            • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                          • 평균을 구해보자
                                                                            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                          • 불확실성을 다루는 통계
                                                                            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                            • 특정값 뿐만 아니라 범위도 공유해야
                                                                              • e.g. 예상매출액의 최상/최하 금액
                                                                            • Decision Making을 위한 것
                                                                          • 추정과 기댓값
                                                                            • 추론 vs. 예측
                                                                          • 모수(Parameter)
                                                                            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                              • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                • 추정량을 만드는 도구 중 하나
                                                                            e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                            • bias-variance trade-off
                                                                            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                            • 수학공부
                                                                              • 벡터미분
                                                                          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                          • 1종 오류(유의수준)가 5%라는 의미
                                                                          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                          • 타입2: 효과가 있는데 없다고 잘못판단
                                                                          • 타입1: 효과가 없는데 있다고 사기친 것
                                                                          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                          • : ‘신’만이 알고 있는 고정된 상수
                                                                          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                          • 통계적 가설 검정
                                                                          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                          • Variance: 데이터가 어떻게 퍼져 있는지
                                                                          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                            • 모든 데이터를 포함하지 않는다
                                                                            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                          • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                            • Solution: 행렬 분해
                                                                          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                            • 직선 데이터에 한정
                                                                            • 그래서 딥러닝에서는 오토인코더를 이용
                                                                          • PCA vs. SVD
                                                                            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                            • 추천 알고리즘에서의 SVD
                                                                          • 추천시스템
                                                                            • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                            • Big-O
                                                                            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                          3일차
                                                                          • 고전적 시계열 모형의 한계
                                                                          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                            • 핵심: k를 어떻게 정할 것인가
                                                                            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                              • k가 클수록 모델이 복잡해진다
                                                                              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                              • 복잡도는 자유도(df)로 측정한다
                                                                          • 자유도: 여러곳에서 많이 사용되는 개념
                                                                            • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                            • t분포의 모수
                                                                            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                              • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                          • 최소자승법
                                                                            • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                            • 오차는 표준정규분포를 따른다고 가정
                                                                            • SST = SSE + SSR
                                                                          • 단순 선형 회귀
                                                                            • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                            • 베타1: t분포를 따른다
                                                                            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                          • t검정
                                                                            • 모델에서는 F검정
                                                                            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                          • 이분산성
                                                                            • 구간에 따라 분산이 달라진다
                                                                            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                            • 해결: 단위변화(주로 로그변환)
                                                                          • Normality
                                                                            • 잔차가 정규분포를 따른다
                                                                            • 베타값의 신뢰도를 맞추기 위해(???)
                                                                            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                          • 다중선형회귀
                                                                          • 다중공선성
                                                                            • 회귀에서 가장 주의해야!
                                                                            • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                            • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                            • 불안정한 계수
                                                                            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                            • 다중공선성에 대한 기준은 교재마다 다르다
                                                                              • 주로 8
                                                                            • 차원축소를 선호
                                                                          • 교호작용
                                                                            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                            • 트리기반 모델은 효과적으로 활용 가능
                                                                          • 변수 선택
                                                                            • 변수가 많을수록 패널티를 준다
                                                                          • 시계열
                                                                          • ARIMA
                                                                            • 여러가지 변동을 합치는 것
                                                                            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                            • Moving Average: Smoothing을 하기 위한 것
                                                                          • SARIMA
                                                                            • ARIMA + Seasonality
                                                                            • 맞추기가 어렵다
                                                                          • Stochastic Process(확률과정론)
                                                                            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                            • e.g. 블랙숄즈모형
                                                                            • 요즘에는 맞추기가 너무 힘들다
                                                                          • Prophet
                                                                            • 시계열모형 by Facebook
                                                                            • component로 쪼개준다(트렌드로, seasonality로…)
                                                                              • 데이터가 변동하는것을 분리한다
                                                                            • 구간추정이 가능하다
                                                                            • 현실적으로 사용하기 좋다
                                                                          • 그렇다면 시계열 예측을 어떻게 해야?
                                                                            • 피처엔지니어링의 영역이 중요
                                                                            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                              • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                              • 언제까지 데이터를 얼마나 활용할 것인가
                                                                            • 정적

                                                                          Day3 실습 1
                                                                          • 벡터라이즈의 효과
                                                                            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                          • MA: 주로 시각화를 위해서만 사용
                                                                          • 시차에 따른 문제
                                                                            • UTC timestamp를 사용하는 것이 일반적
                                                                          • 피처엔지니어링
                                                                            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                            • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                              • 점진적 목표 개선(애자일하다? )
                                                                          • 예측
                                                                            • inference가 목적이라면: 로그를 꼭 씌워야
                                                                            • 예측이 목적이라면 X
                                                                          실습2
                                                                          • 로그를 씌우니 R제곱이 떨어졌다
                                                                            • 해석에 주의
                                                                            • residual의 값이 작다…
                                                                            • 이유: 주기성(연초에 튄다)
                                                                            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                            • 모델은 Pred을 설명하지 못한다
                                                                            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                          Day3.4
                                                                          • 랜덤포레스트
                                                                            • max_depth= 회귀분석의 모델의 자유도
                                                                          • 전체 자유도 = n-1 = 1954
                                                                          • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                          • 잔차의 자유도 = 1954-27
                                                                          • Degrees of Freedom
                                                                            • how many independent pieces of information you need in order to make that calculation
                                                                            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                            • what we already know가 중요
                                                                            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                              1. 초록색이 아니야
                                                                              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                            • 따라서 보통 df = 카테고리의 수 -1
                                                                            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                            • the n-th doesn't contribute to the STD
                                                                              • ANOVA(Analysis of Variance)
                                                                                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                              • 대표적인 가정Assumption
                                                                                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                              1. Remedy: Normality
                                                                                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                • 그 외 Shapiro, Kolmogorov
                                                                              2. Remedy: Independency
                                                                                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                • 시간적 자기상관성: e.g.
                                                                                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                • 진단: DW검정
                                                                                • 해결: ARIMA등 시계열 모형을 사용
                                                                              3. Remedy: Equal Variance
                                                                                • Homoscedasticity vs Heteroscedasticity
                                                                                • 각 집단의 분산이 동일하다는 가정
                                                                                • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                • 방안: 로그변환 등
                                                                                • Welch-t test
                                                                              • 실질적 의의(Practical Significance)
                                                                                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                              • 단순 선형 회귀
                                                                                • 피쳐(독립변수) 1개만
                                                                                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                • 양측 단측
                                                                                • 단순선형회귀에서는 t = F
                                                                                • 다중에서는 다르다
                                                                                • SSE: 에러 / SSR: 설명하는 부분
                                                                                • F분포(p-value): 통계적으로 유의한가
                                                                                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                  • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                  • 0.001: 1000번 중 1번은 괜찮다
                                                                                • R제곱: 실질적으로 유의한가
                                                                                  • 분포에 대한 가정은 없다
                                                                                  • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                  • Negative R2가 나올 수 있을까?
                                                                                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                              • 머신러닝의 목적
                                                                                • Prediction: 예측 잘 맞추면 장땡
                                                                                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                              • Sampling
                                                                                • Simple random sample
                                                                                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                  • random seed를 고정해도 안된다
                                                                                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                • Stratified sample
                                                                                • Cluster sample
                                                                              • Ensemble
                                                                                • 모델 여러개를 조합
                                                                                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                • Explicit feedback: 따봉
                                                                                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                  • ‘싫어하는 것’도 구별해야
                                                                                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                              • Test R2:
                                                                              • 변수선택
                                                                                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                  • 파이썬에는 없다(전수조사하면 되니까..)
                                                                              • Collinearity
                                                                              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                              1. 콜라이니어리티 (Collinearity):
                                                                                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                              2. 자기상관 (Auto-correlation):
                                                                                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                              • Data Literacy 관점에서 통계 필요
                                                                                • ChatGPT에게 오롯이 맡길 수 없다
                                                                              • 실습
                                                                               
                                                                              • Ridge / LASSO
                                                                                • 쓸데없는 베타값을 없앤다
                                                                                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                              • Splining Regression
                                                                                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                              • Quantile Regression
                                                                                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                              • Logistic Regression
                                                                                • 비선형함수인 logistic funcion을 활용한
                                                                                • sigmoid: S자. 대표적인것이 logistic
                                                                              • Link funcion
                                                                                • 선형회귀에서는 normal을 사용
                                                                              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                              • 푸아송 분포
                                                                                • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                              • 평균을 구해보자
                                                                                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                              • 불확실성을 다루는 통계
                                                                                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                • 특정값 뿐만 아니라 범위도 공유해야
                                                                                  • e.g. 예상매출액의 최상/최하 금액
                                                                                • Decision Making을 위한 것
                                                                              • 추정과 기댓값
                                                                                • 추론 vs. 예측
                                                                              • 모수(Parameter)
                                                                                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                  • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                    • 추정량을 만드는 도구 중 하나
                                                                                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                • bias-variance trade-off
                                                                                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                • 수학공부
                                                                                  • 벡터미분
                                                                              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                              • 1종 오류(유의수준)가 5%라는 의미
                                                                              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                              • 타입2: 효과가 있는데 없다고 잘못판단
                                                                              • 타입1: 효과가 없는데 있다고 사기친 것
                                                                              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                              • : ‘신’만이 알고 있는 고정된 상수
                                                                              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                              • 통계적 가설 검정
                                                                              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                              • Variance: 데이터가 어떻게 퍼져 있는지
                                                                              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                • 모든 데이터를 포함하지 않는다
                                                                                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                              • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                • Solution: 행렬 분해
                                                                              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                • 직선 데이터에 한정
                                                                                • 그래서 딥러닝에서는 오토인코더를 이용
                                                                              • PCA vs. SVD
                                                                                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                • 추천 알고리즘에서의 SVD
                                                                              • 추천시스템
                                                                                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                • Big-O
                                                                                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                              3일차
                                                                              • 고전적 시계열 모형의 한계
                                                                              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                • 핵심: k를 어떻게 정할 것인가
                                                                                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                  • k가 클수록 모델이 복잡해진다
                                                                                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                  • 복잡도는 자유도(df)로 측정한다
                                                                              • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                • t분포의 모수
                                                                                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                  • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                              • 최소자승법
                                                                                • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                • 오차는 표준정규분포를 따른다고 가정
                                                                                • SST = SSE + SSR
                                                                              • 단순 선형 회귀
                                                                                • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                • 베타1: t분포를 따른다
                                                                                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                              • t검정
                                                                                • 모델에서는 F검정
                                                                                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                              • 이분산성
                                                                                • 구간에 따라 분산이 달라진다
                                                                                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                • 해결: 단위변화(주로 로그변환)
                                                                              • Normality
                                                                                • 잔차가 정규분포를 따른다
                                                                                • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                              • 다중선형회귀
                                                                              • 다중공선성
                                                                                • 회귀에서 가장 주의해야!
                                                                                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                • 불안정한 계수
                                                                                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                  • 주로 8
                                                                                • 차원축소를 선호
                                                                              • 교호작용
                                                                                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                • 트리기반 모델은 효과적으로 활용 가능
                                                                              • 변수 선택
                                                                                • 변수가 많을수록 패널티를 준다
                                                                              • 시계열
                                                                              • ARIMA
                                                                                • 여러가지 변동을 합치는 것
                                                                                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                • Moving Average: Smoothing을 하기 위한 것
                                                                              • SARIMA
                                                                                • ARIMA + Seasonality
                                                                                • 맞추기가 어렵다
                                                                              • Stochastic Process(확률과정론)
                                                                                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                • e.g. 블랙숄즈모형
                                                                                • 요즘에는 맞추기가 너무 힘들다
                                                                              • Prophet
                                                                                • 시계열모형 by Facebook
                                                                                • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                  • 데이터가 변동하는것을 분리한다
                                                                                • 구간추정이 가능하다
                                                                                • 현실적으로 사용하기 좋다
                                                                              • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                • 피처엔지니어링의 영역이 중요
                                                                                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                  • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                  • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                • 정적

                                                                              Day3 실습 1
                                                                              • 벡터라이즈의 효과
                                                                                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                              • MA: 주로 시각화를 위해서만 사용
                                                                              • 시차에 따른 문제
                                                                                • UTC timestamp를 사용하는 것이 일반적
                                                                              • 피처엔지니어링
                                                                                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                  • 점진적 목표 개선(애자일하다? )
                                                                              • 예측
                                                                                • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                • 예측이 목적이라면 X
                                                                              실습2
                                                                              • 로그를 씌우니 R제곱이 떨어졌다
                                                                                • 해석에 주의
                                                                                • residual의 값이 작다…
                                                                                • 이유: 주기성(연초에 튄다)
                                                                                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                • 모델은 Pred을 설명하지 못한다
                                                                                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                              Day3.4
                                                                              • 랜덤포레스트
                                                                                • max_depth= 회귀분석의 모델의 자유도
                                                                              • 전체 자유도 = n-1 = 1954
                                                                              • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                              • 잔차의 자유도 = 1954-27
                                                                              • Degrees of Freedom
                                                                                • how many independent pieces of information you need in order to make that calculation
                                                                                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                • what we already know가 중요
                                                                                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                  1. 초록색이 아니야
                                                                                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                • 따라서 보통 df = 카테고리의 수 -1
                                                                                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                • the n-th doesn't contribute to the STD
                                                                                  • ANOVA(Analysis of Variance)
                                                                                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                                  • 대표적인 가정Assumption
                                                                                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                                  1. Remedy: Normality
                                                                                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                    • 그 외 Shapiro, Kolmogorov
                                                                                  2. Remedy: Independency
                                                                                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                    • 시간적 자기상관성: e.g.
                                                                                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                    • 진단: DW검정
                                                                                    • 해결: ARIMA등 시계열 모형을 사용
                                                                                  3. Remedy: Equal Variance
                                                                                    • Homoscedasticity vs Heteroscedasticity
                                                                                    • 각 집단의 분산이 동일하다는 가정
                                                                                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                    • 방안: 로그변환 등
                                                                                    • Welch-t test
                                                                                  • 실질적 의의(Practical Significance)
                                                                                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                                  • 단순 선형 회귀
                                                                                    • 피쳐(독립변수) 1개만
                                                                                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                    • 양측 단측
                                                                                    • 단순선형회귀에서는 t = F
                                                                                    • 다중에서는 다르다
                                                                                    • SSE: 에러 / SSR: 설명하는 부분
                                                                                    • F분포(p-value): 통계적으로 유의한가
                                                                                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                      • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                      • 0.001: 1000번 중 1번은 괜찮다
                                                                                    • R제곱: 실질적으로 유의한가
                                                                                      • 분포에 대한 가정은 없다
                                                                                      • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                      • Negative R2가 나올 수 있을까?
                                                                                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                                  • 머신러닝의 목적
                                                                                    • Prediction: 예측 잘 맞추면 장땡
                                                                                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                                  • Sampling
                                                                                    • Simple random sample
                                                                                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                      • random seed를 고정해도 안된다
                                                                                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                    • Stratified sample
                                                                                    • Cluster sample
                                                                                  • Ensemble
                                                                                    • 모델 여러개를 조합
                                                                                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                    • Explicit feedback: 따봉
                                                                                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                      • ‘싫어하는 것’도 구별해야
                                                                                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                                  • Test R2:
                                                                                  • 변수선택
                                                                                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                      • 파이썬에는 없다(전수조사하면 되니까..)
                                                                                  • Collinearity
                                                                                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                                  1. 콜라이니어리티 (Collinearity):
                                                                                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                                  2. 자기상관 (Auto-correlation):
                                                                                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                                  • Data Literacy 관점에서 통계 필요
                                                                                    • ChatGPT에게 오롯이 맡길 수 없다
                                                                                  • 실습
                                                                                   
                                                                                  • Ridge / LASSO
                                                                                    • 쓸데없는 베타값을 없앤다
                                                                                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                                  • Splining Regression
                                                                                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                                  • Quantile Regression
                                                                                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                                  • Logistic Regression
                                                                                    • 비선형함수인 logistic funcion을 활용한
                                                                                    • sigmoid: S자. 대표적인것이 logistic
                                                                                  • Link funcion
                                                                                    • 선형회귀에서는 normal을 사용
                                                                                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                                  • 푸아송 분포
                                                                                    • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                                  • 평균을 구해보자
                                                                                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                                  • 불확실성을 다루는 통계
                                                                                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                    • 특정값 뿐만 아니라 범위도 공유해야
                                                                                      • e.g. 예상매출액의 최상/최하 금액
                                                                                    • Decision Making을 위한 것
                                                                                  • 추정과 기댓값
                                                                                    • 추론 vs. 예측
                                                                                  • 모수(Parameter)
                                                                                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                      • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                        • 추정량을 만드는 도구 중 하나
                                                                                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                    • bias-variance trade-off
                                                                                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                    • 수학공부
                                                                                      • 벡터미분
                                                                                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                                  • 1종 오류(유의수준)가 5%라는 의미
                                                                                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                                  • 타입2: 효과가 있는데 없다고 잘못판단
                                                                                  • 타입1: 효과가 없는데 있다고 사기친 것
                                                                                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                                  • : ‘신’만이 알고 있는 고정된 상수
                                                                                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                                  • 통계적 가설 검정
                                                                                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                                  • Variance: 데이터가 어떻게 퍼져 있는지
                                                                                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                    • 모든 데이터를 포함하지 않는다
                                                                                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                    • Solution: 행렬 분해
                                                                                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                    • 직선 데이터에 한정
                                                                                    • 그래서 딥러닝에서는 오토인코더를 이용
                                                                                  • PCA vs. SVD
                                                                                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                    • 추천 알고리즘에서의 SVD
                                                                                  • 추천시스템
                                                                                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                    • Big-O
                                                                                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                                  3일차
                                                                                  • 고전적 시계열 모형의 한계
                                                                                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                    • 핵심: k를 어떻게 정할 것인가
                                                                                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                      • k가 클수록 모델이 복잡해진다
                                                                                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                      • 복잡도는 자유도(df)로 측정한다
                                                                                  • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                    • t분포의 모수
                                                                                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                                  • 최소자승법
                                                                                    • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                    • 오차는 표준정규분포를 따른다고 가정
                                                                                    • SST = SSE + SSR
                                                                                  • 단순 선형 회귀
                                                                                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                    • 베타1: t분포를 따른다
                                                                                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                                  • t검정
                                                                                    • 모델에서는 F검정
                                                                                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                                  • 이분산성
                                                                                    • 구간에 따라 분산이 달라진다
                                                                                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                    • 해결: 단위변화(주로 로그변환)
                                                                                  • Normality
                                                                                    • 잔차가 정규분포를 따른다
                                                                                    • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                                  • 다중선형회귀
                                                                                  • 다중공선성
                                                                                    • 회귀에서 가장 주의해야!
                                                                                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                    • 불안정한 계수
                                                                                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                    • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                      • 주로 8
                                                                                    • 차원축소를 선호
                                                                                  • 교호작용
                                                                                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                    • 트리기반 모델은 효과적으로 활용 가능
                                                                                  • 변수 선택
                                                                                    • 변수가 많을수록 패널티를 준다
                                                                                  • 시계열
                                                                                  • ARIMA
                                                                                    • 여러가지 변동을 합치는 것
                                                                                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                    • Moving Average: Smoothing을 하기 위한 것
                                                                                  • SARIMA
                                                                                    • ARIMA + Seasonality
                                                                                    • 맞추기가 어렵다
                                                                                  • Stochastic Process(확률과정론)
                                                                                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                    • e.g. 블랙숄즈모형
                                                                                    • 요즘에는 맞추기가 너무 힘들다
                                                                                  • Prophet
                                                                                    • 시계열모형 by Facebook
                                                                                    • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                      • 데이터가 변동하는것을 분리한다
                                                                                    • 구간추정이 가능하다
                                                                                    • 현실적으로 사용하기 좋다
                                                                                  • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                    • 피처엔지니어링의 영역이 중요
                                                                                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                      • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                      • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                    • 정적

                                                                                  Day3 실습 1
                                                                                  • 벡터라이즈의 효과
                                                                                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                                  • MA: 주로 시각화를 위해서만 사용
                                                                                  • 시차에 따른 문제
                                                                                    • UTC timestamp를 사용하는 것이 일반적
                                                                                  • 피처엔지니어링
                                                                                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                      • 점진적 목표 개선(애자일하다? )
                                                                                  • 예측
                                                                                    • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                    • 예측이 목적이라면 X
                                                                                  실습2
                                                                                  • 로그를 씌우니 R제곱이 떨어졌다
                                                                                    • 해석에 주의
                                                                                    • residual의 값이 작다…
                                                                                    • 이유: 주기성(연초에 튄다)
                                                                                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                    • 모델은 Pred을 설명하지 못한다
                                                                                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                                  Day3.4
                                                                                  • 랜덤포레스트
                                                                                    • max_depth= 회귀분석의 모델의 자유도
                                                                                  • 전체 자유도 = n-1 = 1954
                                                                                  • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                                  • 잔차의 자유도 = 1954-27
                                                                                  • Degrees of Freedom
                                                                                    • how many independent pieces of information you need in order to make that calculation
                                                                                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                    • what we already know가 중요
                                                                                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                      1. 초록색이 아니야
                                                                                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                    • 따라서 보통 df = 카테고리의 수 -1
                                                                                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                    • the n-th doesn't contribute to the STD
                                                                                      • ANOVA(Analysis of Variance)
                                                                                        • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                        • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                        • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                                      • 대표적인 가정Assumption
                                                                                        • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                                      1. Remedy: Normality
                                                                                        • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                        • 그 외 Shapiro, Kolmogorov
                                                                                      2. Remedy: Independency
                                                                                        • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                        • 시간적 자기상관성: e.g.
                                                                                        • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                        • 진단: DW검정
                                                                                        • 해결: ARIMA등 시계열 모형을 사용
                                                                                      3. Remedy: Equal Variance
                                                                                        • Homoscedasticity vs Heteroscedasticity
                                                                                        • 각 집단의 분산이 동일하다는 가정
                                                                                        • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                        • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                        • 방안: 로그변환 등
                                                                                        • Welch-t test
                                                                                      • 실질적 의의(Practical Significance)
                                                                                        • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                        • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                                      • 단순 선형 회귀
                                                                                        • 피쳐(독립변수) 1개만
                                                                                        • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                        • 양측 단측
                                                                                        • 단순선형회귀에서는 t = F
                                                                                        • 다중에서는 다르다
                                                                                        • SSE: 에러 / SSR: 설명하는 부분
                                                                                        • F분포(p-value): 통계적으로 유의한가
                                                                                          • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                          • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                          • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                          • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                          • 0.001: 1000번 중 1번은 괜찮다
                                                                                        • R제곱: 실질적으로 유의한가
                                                                                          • 분포에 대한 가정은 없다
                                                                                          • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                          • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                          • Negative R2가 나올 수 있을까?
                                                                                          • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                        https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                                      • 머신러닝의 목적
                                                                                        • Prediction: 예측 잘 맞추면 장땡
                                                                                        • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                        • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                                      • Sampling
                                                                                        • Simple random sample
                                                                                        • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                          • random seed를 고정해도 안된다
                                                                                          • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                        • Stratified sample
                                                                                        • Cluster sample
                                                                                      • Ensemble
                                                                                        • 모델 여러개를 조합
                                                                                          • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                          • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                        • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                                      • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                                      • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                        • Explicit feedback: 따봉
                                                                                        • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                          • ‘싫어하는 것’도 구별해야
                                                                                        • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                          • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                                      • Test R2:
                                                                                      • 변수선택
                                                                                        • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                          • 파이썬에는 없다(전수조사하면 되니까..)
                                                                                      • Collinearity
                                                                                      콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                                      1. 콜라이니어리티 (Collinearity):
                                                                                        • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                        • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                        • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                                      2. 자기상관 (Auto-correlation):
                                                                                        • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                        • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                        • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                                      요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                                      • Data Literacy 관점에서 통계 필요
                                                                                        • ChatGPT에게 오롯이 맡길 수 없다
                                                                                      • 실습
                                                                                       
                                                                                      • Ridge / LASSO
                                                                                        • 쓸데없는 베타값을 없앤다
                                                                                        • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                                      • Splining Regression
                                                                                        • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                        • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                                      • Quantile Regression
                                                                                        • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                                      • Logistic Regression
                                                                                        • 비선형함수인 logistic funcion을 활용한
                                                                                        • sigmoid: S자. 대표적인것이 logistic
                                                                                      • Link funcion
                                                                                        • 선형회귀에서는 normal을 사용
                                                                                      • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                                      • 푸아송 분포
                                                                                        • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                          • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                        • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                        • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                                      • 평균을 구해보자
                                                                                        • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                                      • 불확실성을 다루는 통계
                                                                                        • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                        • 특정값 뿐만 아니라 범위도 공유해야
                                                                                          • e.g. 예상매출액의 최상/최하 금액
                                                                                        • Decision Making을 위한 것
                                                                                      • 추정과 기댓값
                                                                                        • 추론 vs. 예측
                                                                                      • 모수(Parameter)
                                                                                        • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                          • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                            • 추정량을 만드는 도구 중 하나
                                                                                        e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                        • bias-variance trade-off
                                                                                        • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                          • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                        보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                        1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                        2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                        p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                        1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                        2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                        3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                        4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                        5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                        p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                        • 수학공부
                                                                                          • 벡터미분
                                                                                      • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                                      • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                                      • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                                      • 1종 오류(유의수준)가 5%라는 의미
                                                                                      • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                                      • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                                      • 타입2: 효과가 있는데 없다고 잘못판단
                                                                                      • 타입1: 효과가 없는데 있다고 사기친 것
                                                                                      • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                                      • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                                      • : ‘신’만이 알고 있는 고정된 상수
                                                                                      Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                                      • 통계적 가설 검정
                                                                                      K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                                      • Variance: 데이터가 어떻게 퍼져 있는지
                                                                                      • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                        • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                                      • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                                      • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                                      • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                                      • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                        • 모든 데이터를 포함하지 않는다
                                                                                        • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                                      • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                                      • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                        • Solution: 행렬 분해
                                                                                      • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                        • 직선 데이터에 한정
                                                                                        • 그래서 딥러닝에서는 오토인코더를 이용
                                                                                      • PCA vs. SVD
                                                                                        • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                        • 추천 알고리즘에서의 SVD
                                                                                      • 추천시스템
                                                                                        • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                        • Big-O
                                                                                        • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                        • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                                      • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                                      3일차
                                                                                      • 고전적 시계열 모형의 한계
                                                                                      • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                        • 핵심: k를 어떻게 정할 것인가
                                                                                        • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                          • k가 클수록 모델이 복잡해진다
                                                                                          • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                          • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                          • 복잡도는 자유도(df)로 측정한다
                                                                                      • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                        • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                        • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                        • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                        • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                        • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                        • t분포의 모수
                                                                                        • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                          • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                                      • 최소자승법
                                                                                        • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                        • 오차는 표준정규분포를 따른다고 가정
                                                                                        • SST = SSE + SSR
                                                                                      • 단순 선형 회귀
                                                                                        • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                        • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                        • 베타1: t분포를 따른다
                                                                                        • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                                      • t검정
                                                                                        • 모델에서는 F검정
                                                                                        • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                                      • 이분산성
                                                                                        • 구간에 따라 분산이 달라진다
                                                                                        • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                        • 해결: 단위변화(주로 로그변환)
                                                                                      • Normality
                                                                                        • 잔차가 정규분포를 따른다
                                                                                        • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                        • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                                      • 다중선형회귀
                                                                                      • 다중공선성
                                                                                        • 회귀에서 가장 주의해야!
                                                                                        • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                        • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                        • 불안정한 계수
                                                                                        • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                        • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                          • 주로 8
                                                                                        • 차원축소를 선호
                                                                                      • 교호작용
                                                                                        • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                        • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                        • 트리기반 모델은 효과적으로 활용 가능
                                                                                      • 변수 선택
                                                                                        • 변수가 많을수록 패널티를 준다
                                                                                      • 시계열
                                                                                      • ARIMA
                                                                                        • 여러가지 변동을 합치는 것
                                                                                        • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                        • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                        • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                        • Moving Average: Smoothing을 하기 위한 것
                                                                                      • SARIMA
                                                                                        • ARIMA + Seasonality
                                                                                        • 맞추기가 어렵다
                                                                                      • Stochastic Process(확률과정론)
                                                                                        • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                        • e.g. 블랙숄즈모형
                                                                                        • 요즘에는 맞추기가 너무 힘들다
                                                                                      • Prophet
                                                                                        • 시계열모형 by Facebook
                                                                                        • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                          • 데이터가 변동하는것을 분리한다
                                                                                        • 구간추정이 가능하다
                                                                                        • 현실적으로 사용하기 좋다
                                                                                      • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                        • 피처엔지니어링의 영역이 중요
                                                                                        • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                          • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                          • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                        • 정적

                                                                                      Day3 실습 1
                                                                                      • 벡터라이즈의 효과
                                                                                        • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                                      • MA: 주로 시각화를 위해서만 사용
                                                                                      • 시차에 따른 문제
                                                                                        • UTC timestamp를 사용하는 것이 일반적
                                                                                      • 피처엔지니어링
                                                                                        • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                        • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                          • 점진적 목표 개선(애자일하다? )
                                                                                      • 예측
                                                                                        • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                        • 예측이 목적이라면 X
                                                                                      실습2
                                                                                      • 로그를 씌우니 R제곱이 떨어졌다
                                                                                        • 해석에 주의
                                                                                        • residual의 값이 작다…
                                                                                        • 이유: 주기성(연초에 튄다)
                                                                                        • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                                      • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                        • 모델은 Pred을 설명하지 못한다
                                                                                        • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                        • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                                      • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                                      Day3.4
                                                                                      • 랜덤포레스트
                                                                                        • max_depth= 회귀분석의 모델의 자유도
                                                                                      • 전체 자유도 = n-1 = 1954
                                                                                      • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                                      • 잔차의 자유도 = 1954-27
                                                                                      • Degrees of Freedom
                                                                                        • how many independent pieces of information you need in order to make that calculation
                                                                                        • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                        • what we already know가 중요
                                                                                        • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                          1. 초록색이 아니야
                                                                                          2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                        • 따라서 보통 df = 카테고리의 수 -1
                                                                                        • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                        • the n-th doesn't contribute to the STD
                                                                                          • ANOVA(Analysis of Variance)
                                                                                            • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                            • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                            • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                                          • 대표적인 가정Assumption
                                                                                            • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                                          1. Remedy: Normality
                                                                                            • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                            • 그 외 Shapiro, Kolmogorov
                                                                                          2. Remedy: Independency
                                                                                            • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                            • 시간적 자기상관성: e.g.
                                                                                            • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                            • 진단: DW검정
                                                                                            • 해결: ARIMA등 시계열 모형을 사용
                                                                                          3. Remedy: Equal Variance
                                                                                            • Homoscedasticity vs Heteroscedasticity
                                                                                            • 각 집단의 분산이 동일하다는 가정
                                                                                            • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                            • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                            • 방안: 로그변환 등
                                                                                            • Welch-t test
                                                                                          • 실질적 의의(Practical Significance)
                                                                                            • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                            • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                                          • 단순 선형 회귀
                                                                                            • 피쳐(독립변수) 1개만
                                                                                            • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                            • 양측 단측
                                                                                            • 단순선형회귀에서는 t = F
                                                                                            • 다중에서는 다르다
                                                                                            • SSE: 에러 / SSR: 설명하는 부분
                                                                                            • F분포(p-value): 통계적으로 유의한가
                                                                                              • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                              • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                              • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                              • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                              • 0.001: 1000번 중 1번은 괜찮다
                                                                                            • R제곱: 실질적으로 유의한가
                                                                                              • 분포에 대한 가정은 없다
                                                                                              • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                              • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                              • Negative R2가 나올 수 있을까?
                                                                                              • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                            https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                                          • 머신러닝의 목적
                                                                                            • Prediction: 예측 잘 맞추면 장땡
                                                                                            • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                            • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                                          • Sampling
                                                                                            • Simple random sample
                                                                                            • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                              • random seed를 고정해도 안된다
                                                                                              • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                            • Stratified sample
                                                                                            • Cluster sample
                                                                                          • Ensemble
                                                                                            • 모델 여러개를 조합
                                                                                              • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                              • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                            • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                                          • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                                          • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                            • Explicit feedback: 따봉
                                                                                            • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                              • ‘싫어하는 것’도 구별해야
                                                                                            • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                              • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                                          • Test R2:
                                                                                          • 변수선택
                                                                                            • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                              • 파이썬에는 없다(전수조사하면 되니까..)
                                                                                          • Collinearity
                                                                                          콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                                          1. 콜라이니어리티 (Collinearity):
                                                                                            • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                            • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                            • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                                          2. 자기상관 (Auto-correlation):
                                                                                            • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                            • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                            • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                                          요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                                          • Data Literacy 관점에서 통계 필요
                                                                                            • ChatGPT에게 오롯이 맡길 수 없다
                                                                                          • 실습
                                                                                           
                                                                                          • Ridge / LASSO
                                                                                            • 쓸데없는 베타값을 없앤다
                                                                                            • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                                          • Splining Regression
                                                                                            • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                            • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                                          • Quantile Regression
                                                                                            • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                                          • Logistic Regression
                                                                                            • 비선형함수인 logistic funcion을 활용한
                                                                                            • sigmoid: S자. 대표적인것이 logistic
                                                                                          • Link funcion
                                                                                            • 선형회귀에서는 normal을 사용
                                                                                          • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                                          • 푸아송 분포
                                                                                            • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                              • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                            • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                            • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                                          • 평균을 구해보자
                                                                                            • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                                          • 불확실성을 다루는 통계
                                                                                            • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                            • 특정값 뿐만 아니라 범위도 공유해야
                                                                                              • e.g. 예상매출액의 최상/최하 금액
                                                                                            • Decision Making을 위한 것
                                                                                          • 추정과 기댓값
                                                                                            • 추론 vs. 예측
                                                                                          • 모수(Parameter)
                                                                                            • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                              • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                                • 추정량을 만드는 도구 중 하나
                                                                                            e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                            • bias-variance trade-off
                                                                                            • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                              • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                            보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                            1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                            2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                            p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                            1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                            2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                            3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                            4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                            5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                            p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                            • 수학공부
                                                                                              • 벡터미분
                                                                                          • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                                          • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                                          • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                                          • 1종 오류(유의수준)가 5%라는 의미
                                                                                          • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                                          • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                                          • 타입2: 효과가 있는데 없다고 잘못판단
                                                                                          • 타입1: 효과가 없는데 있다고 사기친 것
                                                                                          • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                                          • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                                          • : ‘신’만이 알고 있는 고정된 상수
                                                                                          Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                                          • 통계적 가설 검정
                                                                                          K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                                          • Variance: 데이터가 어떻게 퍼져 있는지
                                                                                          • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                            • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                                          • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                                          • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                                          • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                                          • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                            • 모든 데이터를 포함하지 않는다
                                                                                            • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                                          • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                                          • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                            • Solution: 행렬 분해
                                                                                          • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                            • 직선 데이터에 한정
                                                                                            • 그래서 딥러닝에서는 오토인코더를 이용
                                                                                          • PCA vs. SVD
                                                                                            • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                            • 추천 알고리즘에서의 SVD
                                                                                          • 추천시스템
                                                                                            • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                            • Big-O
                                                                                            • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                            • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                                          • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                                          3일차
                                                                                          • 고전적 시계열 모형의 한계
                                                                                          • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                            • 핵심: k를 어떻게 정할 것인가
                                                                                            • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                              • k가 클수록 모델이 복잡해진다
                                                                                              • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                              • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                              • 복잡도는 자유도(df)로 측정한다
                                                                                          • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                            • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                            • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                            • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                            • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                            • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                            • t분포의 모수
                                                                                            • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                              • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                                          • 최소자승법
                                                                                            • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                            • 오차는 표준정규분포를 따른다고 가정
                                                                                            • SST = SSE + SSR
                                                                                          • 단순 선형 회귀
                                                                                            • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                            • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                            • 베타1: t분포를 따른다
                                                                                            • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                                          • t검정
                                                                                            • 모델에서는 F검정
                                                                                            • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                                          • 이분산성
                                                                                            • 구간에 따라 분산이 달라진다
                                                                                            • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                            • 해결: 단위변화(주로 로그변환)
                                                                                          • Normality
                                                                                            • 잔차가 정규분포를 따른다
                                                                                            • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                            • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                                          • 다중선형회귀
                                                                                          • 다중공선성
                                                                                            • 회귀에서 가장 주의해야!
                                                                                            • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                            • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                            • 불안정한 계수
                                                                                            • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                            • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                              • 주로 8
                                                                                            • 차원축소를 선호
                                                                                          • 교호작용
                                                                                            • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                            • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                            • 트리기반 모델은 효과적으로 활용 가능
                                                                                          • 변수 선택
                                                                                            • 변수가 많을수록 패널티를 준다
                                                                                          • 시계열
                                                                                          • ARIMA
                                                                                            • 여러가지 변동을 합치는 것
                                                                                            • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                            • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                            • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                            • Moving Average: Smoothing을 하기 위한 것
                                                                                          • SARIMA
                                                                                            • ARIMA + Seasonality
                                                                                            • 맞추기가 어렵다
                                                                                          • Stochastic Process(확률과정론)
                                                                                            • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                            • e.g. 블랙숄즈모형
                                                                                            • 요즘에는 맞추기가 너무 힘들다
                                                                                          • Prophet
                                                                                            • 시계열모형 by Facebook
                                                                                            • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                              • 데이터가 변동하는것을 분리한다
                                                                                            • 구간추정이 가능하다
                                                                                            • 현실적으로 사용하기 좋다
                                                                                          • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                            • 피처엔지니어링의 영역이 중요
                                                                                            • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                              • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                              • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                            • 정적

                                                                                          Day3 실습 1
                                                                                          • 벡터라이즈의 효과
                                                                                            • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                                          • MA: 주로 시각화를 위해서만 사용
                                                                                          • 시차에 따른 문제
                                                                                            • UTC timestamp를 사용하는 것이 일반적
                                                                                          • 피처엔지니어링
                                                                                            • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                            • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                              • 점진적 목표 개선(애자일하다? )
                                                                                          • 예측
                                                                                            • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                            • 예측이 목적이라면 X
                                                                                          실습2
                                                                                          • 로그를 씌우니 R제곱이 떨어졌다
                                                                                            • 해석에 주의
                                                                                            • residual의 값이 작다…
                                                                                            • 이유: 주기성(연초에 튄다)
                                                                                            • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                                          • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                            • 모델은 Pred을 설명하지 못한다
                                                                                            • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                            • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                                          • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                                          Day3.4
                                                                                          • 랜덤포레스트
                                                                                            • max_depth= 회귀분석의 모델의 자유도
                                                                                          • 전체 자유도 = n-1 = 1954
                                                                                          • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                                          • 잔차의 자유도 = 1954-27
                                                                                          • Degrees of Freedom
                                                                                            • how many independent pieces of information you need in order to make that calculation
                                                                                            • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                            • what we already know가 중요
                                                                                            • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                              1. 초록색이 아니야
                                                                                              2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                            • 따라서 보통 df = 카테고리의 수 -1
                                                                                            • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                            • the n-th doesn't contribute to the STD
                                                                                              • ANOVA(Analysis of Variance)
                                                                                                • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                                • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                                • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                                              • 대표적인 가정Assumption
                                                                                                • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                                              1. Remedy: Normality
                                                                                                • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                                • 그 외 Shapiro, Kolmogorov
                                                                                              2. Remedy: Independency
                                                                                                • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                                • 시간적 자기상관성: e.g.
                                                                                                • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                                • 진단: DW검정
                                                                                                • 해결: ARIMA등 시계열 모형을 사용
                                                                                              3. Remedy: Equal Variance
                                                                                                • Homoscedasticity vs Heteroscedasticity
                                                                                                • 각 집단의 분산이 동일하다는 가정
                                                                                                • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                                • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                                • 방안: 로그변환 등
                                                                                                • Welch-t test
                                                                                              • 실질적 의의(Practical Significance)
                                                                                                • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                                • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                                              • 단순 선형 회귀
                                                                                                • 피쳐(독립변수) 1개만
                                                                                                • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                                • 양측 단측
                                                                                                • 단순선형회귀에서는 t = F
                                                                                                • 다중에서는 다르다
                                                                                                • SSE: 에러 / SSR: 설명하는 부분
                                                                                                • F분포(p-value): 통계적으로 유의한가
                                                                                                  • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                                  • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                                  • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                                  • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                                  • 0.001: 1000번 중 1번은 괜찮다
                                                                                                • R제곱: 실질적으로 유의한가
                                                                                                  • 분포에 대한 가정은 없다
                                                                                                  • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                                  • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                                  • Negative R2가 나올 수 있을까?
                                                                                                  • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                                https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                                              • 머신러닝의 목적
                                                                                                • Prediction: 예측 잘 맞추면 장땡
                                                                                                • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                                • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                                              • Sampling
                                                                                                • Simple random sample
                                                                                                • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                                  • random seed를 고정해도 안된다
                                                                                                  • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                                • Stratified sample
                                                                                                • Cluster sample
                                                                                              • Ensemble
                                                                                                • 모델 여러개를 조합
                                                                                                  • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                                  • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                                • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                                              • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                                              • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                                • Explicit feedback: 따봉
                                                                                                • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                                  • ‘싫어하는 것’도 구별해야
                                                                                                • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                                  • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                                              • Test R2:
                                                                                              • 변수선택
                                                                                                • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                                  • 파이썬에는 없다(전수조사하면 되니까..)
                                                                                              • Collinearity
                                                                                              콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                                              1. 콜라이니어리티 (Collinearity):
                                                                                                • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                                • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                                • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                                              2. 자기상관 (Auto-correlation):
                                                                                                • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                                • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                                • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                                              요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                                              • Data Literacy 관점에서 통계 필요
                                                                                                • ChatGPT에게 오롯이 맡길 수 없다
                                                                                              • 실습
                                                                                               
                                                                                              • Ridge / LASSO
                                                                                                • 쓸데없는 베타값을 없앤다
                                                                                                • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                                              • Splining Regression
                                                                                                • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                                • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                                              • Quantile Regression
                                                                                                • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                                              • Logistic Regression
                                                                                                • 비선형함수인 logistic funcion을 활용한
                                                                                                • sigmoid: S자. 대표적인것이 logistic
                                                                                              • Link funcion
                                                                                                • 선형회귀에서는 normal을 사용
                                                                                              • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                                              • 푸아송 분포
                                                                                                • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                                  • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                                • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                                • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                                              • 평균을 구해보자
                                                                                                • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                                              • 불확실성을 다루는 통계
                                                                                                • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                                • 특정값 뿐만 아니라 범위도 공유해야
                                                                                                  • e.g. 예상매출액의 최상/최하 금액
                                                                                                • Decision Making을 위한 것
                                                                                              • 추정과 기댓값
                                                                                                • 추론 vs. 예측
                                                                                              • 모수(Parameter)
                                                                                                • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                                  • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                                    • 추정량을 만드는 도구 중 하나
                                                                                                e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                                • bias-variance trade-off
                                                                                                • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                                  • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                                보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                                1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                                2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                                p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                                1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                                2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                                3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                                4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                                5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                                p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                                • 수학공부
                                                                                                  • 벡터미분
                                                                                              • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                                              • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                                              • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                                              • 1종 오류(유의수준)가 5%라는 의미
                                                                                              • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                                              • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                                              • 타입2: 효과가 있는데 없다고 잘못판단
                                                                                              • 타입1: 효과가 없는데 있다고 사기친 것
                                                                                              • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                                              • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                                              • : ‘신’만이 알고 있는 고정된 상수
                                                                                              Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                                              • 통계적 가설 검정
                                                                                              K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                                              • Variance: 데이터가 어떻게 퍼져 있는지
                                                                                              • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                                • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                                              • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                                              • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                                              • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                                              • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                                • 모든 데이터를 포함하지 않는다
                                                                                                • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                                              • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                                              • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                                • Solution: 행렬 분해
                                                                                              • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                                • 직선 데이터에 한정
                                                                                                • 그래서 딥러닝에서는 오토인코더를 이용
                                                                                              • PCA vs. SVD
                                                                                                • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                                • 추천 알고리즘에서의 SVD
                                                                                              • 추천시스템
                                                                                                • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                                • Big-O
                                                                                                • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                                • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                                              • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                                              3일차
                                                                                              • 고전적 시계열 모형의 한계
                                                                                              • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                                • 핵심: k를 어떻게 정할 것인가
                                                                                                • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                                  • k가 클수록 모델이 복잡해진다
                                                                                                  • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                                  • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                                  • 복잡도는 자유도(df)로 측정한다
                                                                                              • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                                • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                                • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                                • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                                • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                                • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                                • t분포의 모수
                                                                                                • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                                  • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                                              • 최소자승법
                                                                                                • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                                • 오차는 표준정규분포를 따른다고 가정
                                                                                                • SST = SSE + SSR
                                                                                              • 단순 선형 회귀
                                                                                                • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                                • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                                • 베타1: t분포를 따른다
                                                                                                • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                                              • t검정
                                                                                                • 모델에서는 F검정
                                                                                                • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                                              • 이분산성
                                                                                                • 구간에 따라 분산이 달라진다
                                                                                                • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                                • 해결: 단위변화(주로 로그변환)
                                                                                              • Normality
                                                                                                • 잔차가 정규분포를 따른다
                                                                                                • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                                • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                                              • 다중선형회귀
                                                                                              • 다중공선성
                                                                                                • 회귀에서 가장 주의해야!
                                                                                                • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                                • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                                • 불안정한 계수
                                                                                                • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                                • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                                  • 주로 8
                                                                                                • 차원축소를 선호
                                                                                              • 교호작용
                                                                                                • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                                • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                                • 트리기반 모델은 효과적으로 활용 가능
                                                                                              • 변수 선택
                                                                                                • 변수가 많을수록 패널티를 준다
                                                                                              • 시계열
                                                                                              • ARIMA
                                                                                                • 여러가지 변동을 합치는 것
                                                                                                • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                                • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                                • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                                • Moving Average: Smoothing을 하기 위한 것
                                                                                              • SARIMA
                                                                                                • ARIMA + Seasonality
                                                                                                • 맞추기가 어렵다
                                                                                              • Stochastic Process(확률과정론)
                                                                                                • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                                • e.g. 블랙숄즈모형
                                                                                                • 요즘에는 맞추기가 너무 힘들다
                                                                                              • Prophet
                                                                                                • 시계열모형 by Facebook
                                                                                                • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                                  • 데이터가 변동하는것을 분리한다
                                                                                                • 구간추정이 가능하다
                                                                                                • 현실적으로 사용하기 좋다
                                                                                              • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                                • 피처엔지니어링의 영역이 중요
                                                                                                • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                                  • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                                  • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                                • 정적

                                                                                              Day3 실습 1
                                                                                              • 벡터라이즈의 효과
                                                                                                • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                                              • MA: 주로 시각화를 위해서만 사용
                                                                                              • 시차에 따른 문제
                                                                                                • UTC timestamp를 사용하는 것이 일반적
                                                                                              • 피처엔지니어링
                                                                                                • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                                • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                                  • 점진적 목표 개선(애자일하다? )
                                                                                              • 예측
                                                                                                • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                                • 예측이 목적이라면 X
                                                                                              실습2
                                                                                              • 로그를 씌우니 R제곱이 떨어졌다
                                                                                                • 해석에 주의
                                                                                                • residual의 값이 작다…
                                                                                                • 이유: 주기성(연초에 튄다)
                                                                                                • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                                              • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                                • 모델은 Pred을 설명하지 못한다
                                                                                                • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                                • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                                              • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                                              Day3.4
                                                                                              • 랜덤포레스트
                                                                                                • max_depth= 회귀분석의 모델의 자유도
                                                                                              • 전체 자유도 = n-1 = 1954
                                                                                              • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                                              • 잔차의 자유도 = 1954-27
                                                                                              • Degrees of Freedom
                                                                                                • how many independent pieces of information you need in order to make that calculation
                                                                                                • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                                • what we already know가 중요
                                                                                                • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                                  1. 초록색이 아니야
                                                                                                  2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                                • 따라서 보통 df = 카테고리의 수 -1
                                                                                                • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                                • the n-th doesn't contribute to the STD
                                                                                                  • ANOVA(Analysis of Variance)
                                                                                                    • 여러 그룹 간의 평균 차이를 통계적으로 비교하는 방법
                                                                                                    • 데이터의 분산을 분석하여 그룹 간의 차이를 확인하고, 그 차이가 우연에 의한 것인지 아니면 통계적으로 유의미한 차이인지 판단하는 데 사용
                                                                                                    • 주로 세 개 이상의 그룹 간의 평균 차이를 비교하는 데 적용
                                                                                                  • 대표적인 가정Assumption
                                                                                                    • 왜도(Skewness)와 이상치(Outlier)가 제일 중요
                                                                                                  1. Remedy: Normality
                                                                                                    • QQplot(순서반영 차트)으로 확인하는 것이 가장 낫다
                                                                                                    • 그 외 Shapiro, Kolmogorov
                                                                                                  2. Remedy: Independency
                                                                                                    • 공간적 자기상관성: e.g. 하남의 한 집 가격이 오르면 주변 집들의 가격도 오른다
                                                                                                    • 시간적 자기상관성: e.g.
                                                                                                    • 핵심: 내 모델이 문제가 있는지 여부를 판단할 수 있는 능력
                                                                                                    • 진단: DW검정
                                                                                                    • 해결: ARIMA등 시계열 모형을 사용
                                                                                                  3. Remedy: Equal Variance
                                                                                                    • Homoscedasticity vs Heteroscedasticity
                                                                                                    • 각 집단의 분산이 동일하다는 가정
                                                                                                    • 평균이 높아지면 분산이 커지는것이 자연스러움
                                                                                                    • 그런데 이것이 같다고 가정(Equal Variance)하는 문제
                                                                                                    • 방안: 로그변환 등
                                                                                                    • Welch-t test
                                                                                                  • 실질적 의의(Practical Significance)
                                                                                                    • 통계적으로는 유의미하다고 하더라도 실질적 의의가 있는지 따져봐야
                                                                                                    • e.g. 계단 1칸을 오르면 수명이 4초 연장: 통계적으로는 유의하지만 실질적으로는 의미가 없다(혹은 통계적으로는 영원히 계단오르면 영생할 수 있다)
                                                                                                  • 단순 선형 회귀
                                                                                                    • 피쳐(독립변수) 1개만
                                                                                                    • 제일 관심있는 것은 베타1(X와 Y의 관계를 나타냄)
                                                                                                    • 양측 단측
                                                                                                    • 단순선형회귀에서는 t = F
                                                                                                    • 다중에서는 다르다
                                                                                                    • SSE: 에러 / SSR: 설명하는 부분
                                                                                                    • F분포(p-value): 통계적으로 유의한가
                                                                                                      • p-value: 신뢰도. p-value가 0.05 미만 = 귀무가설이 맞을 확률이 5% 미만
                                                                                                      • 미국통계협회에서는 p-value를 사용하지 말 것을 권고
                                                                                                      • p-value 대신 신뢰구간을 사용할 것을 추천
                                                                                                      • 론 코하비, “0.01~0.1이라면 데이터 수집을 더 하라”
                                                                                                      • 0.001: 1000번 중 1번은 괜찮다
                                                                                                    • R제곱: 실질적으로 유의한가
                                                                                                      • 분포에 대한 가정은 없다
                                                                                                      • X(변수)를 추가하면 R제곱은 무조건 증가
                                                                                                      • → 대안: Adjusted R2(X가 증가할때마다 페널티를)
                                                                                                      • Negative R2가 나올 수 있을까?
                                                                                                      • : 통계적으로는 불가하나, 머신러닝 하다보면 나올 수도(overfitted)
                                                                                                    https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf
                                                                                                  • 머신러닝의 목적
                                                                                                    • Prediction: 예측 잘 맞추면 장땡
                                                                                                    • 통계의 Inference: 예측이 왜 그렇게 나왔는지 설명(자료들의 관계를 설명) ㄱㄱㄺㄹㄹ
                                                                                                    • 머신러닝의 Inference: 예측을 해줘(예측값을 만들어줘)
                                                                                                  • Sampling
                                                                                                    • Simple random sample
                                                                                                    • Systematic sample: 가장 유용. 일부만 선별해서 전체를 파악(선별과정에서 왜곡이 발생할 수도)
                                                                                                      • random seed를 고정해도 안된다
                                                                                                      • 방안: e.g. 고객id의 끝자리=1 인 고객들만 선별(오래된 고객일수록 id 번호가 낮다)
                                                                                                    • Stratified sample
                                                                                                    • Cluster sample
                                                                                                  • Ensemble
                                                                                                    • 모델 여러개를 조합
                                                                                                      • Bagging: Paralle. 여러 모델 결과(예측값)을 평균
                                                                                                      • Boosing: Sequential. 모델 사용을 연쇄적으로
                                                                                                    • 통계쪽에서는 앙상블 잘 안하지만, 머신러닝에서는 성능향상을 위해 사용
                                                                                                  • Staking: 성능 향상되지만 코드가 5배 많아진다(시간이 많이 소요)..
                                                                                                  • 추천시스템: 기존 머신러닝과는 방법론이 많이 다르다
                                                                                                    • Explicit feedback: 따봉
                                                                                                    • Implicit feedback: 유저는 ‘따봉’을 보통 잘 남기지 않는다
                                                                                                      • ‘싫어하는 것’도 구별해야
                                                                                                    • graph 모델: e.g. 트위터도 그래프 모델을 공개
                                                                                                      • 추천시스템, 단백질 구조예측 등은 graph network가 많다
                                                                                                  • Test R2:
                                                                                                  • 변수선택
                                                                                                    • Stepwise Selection: 변수를 하나씩 넣으면서 예측결과를 살핀다
                                                                                                      • 파이썬에는 없다(전수조사하면 되니까..)
                                                                                                  • Collinearity
                                                                                                  콜라이니어리티(Collinearity)와 자기상관(auto-correlation)은 다른 통계적 개념이며 서로 다른 상황에서 발생합니다.
                                                                                                  1. 콜라이니어리티 (Collinearity):
                                                                                                    • 콜라이니어리티는 독립 변수들 간에 강한 선형 상관 관계가 있는 상황을 나타냅니다.
                                                                                                    • 다중 선형 회귀 분석에서 독립 변수들 간에 높은 상관 관계가 있으면, 이로 인해 회귀 계수 추정이 불안정해지고 예측 변수의 영향을 정확하게 해석하기 어려워집니다.
                                                                                                    • VIF(Variance Inflation Factor) 등의 지표를 사용하여 콜라이니어리티를 평가할 수 있습니다.
                                                                                                  2. 자기상관 (Auto-correlation):
                                                                                                    • 자기상관은 시계열 데이터에서 나타나는 현상으로, 시간에 따라 자기 자신과의 상관 관계가 있는 경우를 나타냅니다.
                                                                                                    • 예를 들어, 어떤 시계열 데이터에서 특정 시간의 값이 그 전 시간의 값에 영향을 받는 경우 자기상관이 존재한다고 할 수 있습니다.
                                                                                                    • 자기상관은 시계열 분석에서 주로 다루며, 회귀 분석에서는 주로 독립 변수 간 상관 관계에 주목하는 것이 콜라이니어리티에 관련됩니다.
                                                                                                  요약하면, 콜라이니어리티는 다중 선형 회귀 분석에서 독립 변수들 간의 상관 관계를 다루는 개념이며, 자기상관은 시계열 데이터에서 시간에 따른 상관 관계를 다루는 개념입니다.
                                                                                                  • Data Literacy 관점에서 통계 필요
                                                                                                    • ChatGPT에게 오롯이 맡길 수 없다
                                                                                                  • 실습
                                                                                                  • Ridge / LASSO
                                                                                                    • 쓸데없는 베타값을 없앤다
                                                                                                    • 약간의 편향이 생기나 Variance Stabilization 관점에서 성능 향상
                                                                                                  • Splining Regression
                                                                                                    • 중간에 끊어진 부분을 자연스럽게 이어준다: 모델의 복잡도가 오히려 낮아질수도
                                                                                                    • 이런게 있구나, 정도만 알아두고 필요할 때 찾아보자!
                                                                                                  • Quantile Regression
                                                                                                    • ‘예측값’보다는 ‘분위’가 중요한 경우가 있다
                                                                                                  • Logistic Regression
                                                                                                    • 비선형함수인 logistic funcion을 활용한
                                                                                                    • sigmoid: S자. 대표적인것이 logistic
                                                                                                  • Link funcion
                                                                                                    • 선형회귀에서는 normal을 사용
                                                                                                  • 지수족: 특별한 형태를 만들 수 있는 분포의 가족(family)
                                                                                                  • 푸아송 분포
                                                                                                    • 단위 시간(혹은 공간)당 횟수의 분포
                                                                                                      • e.g. 까페를 하는데 1시간에 몇 명의 손님이 오는지
                                                                                                    • 데이터가 푸아송 분포를 따르니까 ‘Poission REgression’을 사용해야지, 이정도만 알면 된다 (수학적으로 깊게 파고들지 않아도)
                                                                                                    • 제약이 많아 현실적으로는 많이 사용하지 않음
                                                                                                  • 평균을 구해보자
                                                                                                    • 아웃라이어 제거를 위해 ‘절삭평균’을 주로 사용
                                                                                                  • 불확실성을 다루는 통계
                                                                                                    • ‘단 1%의 정확도가 물류비용의 증감에 큰 영향을 미칠 수 있습니다.’
                                                                                                    • 특정값 뿐만 아니라 범위도 공유해야
                                                                                                      • e.g. 예상매출액의 최상/최하 금액
                                                                                                    • Decision Making을 위한 것
                                                                                                  • 추정과 기댓값
                                                                                                    • 추론 vs. 예측
                                                                                                  • 모수(Parameter)
                                                                                                    • 추론 도구: 추정량(모수를 어떻게 추정할 것인가)
                                                                                                      • MLE(이거 하나만 알아도 면접에서 선방)
                                                                                                        • 추정량을 만드는 도구 중 하나
                                                                                                    e.g. 라쏘의 경우 바이어스가 생긴다(????)
                                                                                                    • bias-variance trade-off
                                                                                                    • 신뢰수준: 오차를 얼마나 허용해 줄 것인가
                                                                                                      • 보통은 연구를 시작하기 전에 정해놓고 시작(5%, 1% …)
                                                                                                    보통 타입1에러가 더 나쁘다고 판단해서 타입1에러를 고정하고 시작(e.g. 5%)신뢰수준이 높을수록 1종오류가 발생할 확률이 더 낮아진다???
                                                                                                    1. 귀무가설 (Null Hypothesis, H₀): 일반적으로 아무런 효과가 없거나 변화가 없다는 가설.
                                                                                                    2. 대립가설 (Alternative Hypothesis, H₁): 귀무가설이 거짓이라는 것을 입증하려는 가설.
                                                                                                    p-value는 귀무가설이 참이라고 가정했을 때, 현재의 데이터나 더 극단적인 데이터를 관측할 확률을 나타냅니다. 즉, p-value가 작을수록 귀무가설을 기각할 증거가 강력하다고 볼 수 있습니다.가설 검정의 일반적인 프로세스는 다음과 같습니다:
                                                                                                    1. 가설 설정: 귀무가설과 대립가설을 설정합니다.
                                                                                                    2. 표본 데이터 수집: 관심 있는 데이터를 수집합니다.
                                                                                                    3. 통계적 테스트: 어떤 통계적인 방법을 사용하여 가설을 평가합니다.
                                                                                                    4. p-value 계산: 주어진 데이터로부터 p-value를 계산합니다.
                                                                                                    5. 결론 도출: p-value를 유의수준과 비교하여 귀무가설을 기각하거나 기각하지 않습니다.
                                                                                                    p-value는 통계적 추론에서 중요한 개념 중 하나이며, 결과를 해석할 때 주의 깊게 고려해야 합니다. 작은 p-value는 귀무가설을 기각하는 강력한 증거로 해석될 수 있지만, 이는 인과관계를 나타내지 않으며, 오류의 가능성이 존재함을 염두에 두어야 합니다.
                                                                                                    • 수학공부
                                                                                                      • 벡터미분
                                                                                                  • 일반적으로 사용되는 p-value의 기준은 유의수준(significance level)으로, 보통 0.05(5%)이나 0.01(1%)이 사용됩니다. 만약 어떤 테스트에서 계산된 p-value가 유의수준보다 작다면, 우리는 귀무가설을 기각하고 대립가설을 채택할 수 있습니다.
                                                                                                  • p-value(유의확률)은 가설 검정에서 사용되는 통계적인 지표로, 주어진 데이터로부터 얻은 통계량이 귀무가설을 지지하는 정도를 나타냅니다. 가설 검정은 주로 두 가지 가설을 비교하는 과정을 의미합니다:
                                                                                                  • 앞면이 나올 확률이 50%가 맞다고 가정할 때, _____?
                                                                                                  • 1종 오류(유의수준)가 5%라는 의미
                                                                                                  • 신뢰구간 95%: 구간을 100개 뽑았을 때, 그 중 95개의 구간이 모수를 포함한다
                                                                                                  • 보통은 타입1에러를 고정하고(신뢰수준) 타입2에러를 최소하하기 위해 노력한다
                                                                                                  • 타입2: 효과가 있는데 없다고 잘못판단
                                                                                                  • 타입1: 효과가 없는데 있다고 사기친 것
                                                                                                  • 추정량: 데이터에서 어떤 값을 뽑을지 예측하는 것
                                                                                                  • 모수는 상수/ 모수에 대한 추정량은 어떤 분포를 따른다
                                                                                                  • : ‘신’만이 알고 있는 고정된 상수
                                                                                                  Likelihood function: 제일 중요!동전 앞면이 나올 확률: 50%모수에 대해 여러가지 가정을 하고, 이 데이터가 나올 확률이 얼마나 되는지Data Literacy: 그냥 경험(아직 학문 분야가 X)수학적으로는, Likelihood function은 다음과 같이 표현됩니다. 만약 데이터가 독립적이라면 Likelihood는 확률의 곱으로 나타낼 수 있습니다.이때, θ는 모델의 파라미터를 나타냅니다. Likelihood function은 주로 최대 우도 추정(Maximum Likelihood Estimation, MLE)에서 사용됩니다. MLE는 주어진 데이터에 대해 Likelihood를 최대화하는 모델 파라미터를 찾는 방법으로, 즉, 데이터가 가장 '가능성이 높은' 모델 파라미터를 선택합니다.
                                                                                                  • 통계적 가설 검정
                                                                                                  K-means: 가장 가까운 이웃찾기(Nearest Neighbor) 문제
                                                                                                  • Variance: 데이터가 어떻게 퍼져 있는지
                                                                                                  • Covariance(공분산): 두 데이터가 어떻게 퍼져있는지(둘이 양의 방향으로? 음의 방향으로?)
                                                                                                    • 즉, K-means는 GaussianMixture의 특수한 케이스 중 하나
                                                                                                  • 라플라스: 정규분포에서의 제곱을 절대값으로(값이 조금씩 변한다)
                                                                                                  • → 정규분포가 아웃라이어에 취약한 점을 보완하기 위함
                                                                                                  • 성능 향상을 위해 각 군집마다 예측모델을 달리 하기도 한다
                                                                                                  • DBSCAN: 클러스팅용이지만 이상탐지용으로 많이 사용
                                                                                                    • 모든 데이터를 포함하지 않는다
                                                                                                    • 아웃라이어가 있을 때 군집화: trim mean을 사용하기도
                                                                                                  • 추천시스템의 방법론이 여기저기서 많이 활용된다
                                                                                                  • 차원의 저주: 차원이 많아질수록 널리 퍼져서(다 비슷하게 멀어져서) 이웃이 없어진다 → 군집화 어려움
                                                                                                    • Solution: 행렬 분해
                                                                                                  • PCA: 하나의 차원을 없애서(약간의 데이터 손실이 있을 수 있음) 압축
                                                                                                    • 직선 데이터에 한정
                                                                                                    • 그래서 딥러닝에서는 오토인코더를 이용
                                                                                                  • PCA vs. SVD
                                                                                                    • 넷플릭스 추천모델: SVD 기반의 차원축소를 통한 추천모델
                                                                                                    • 추천 알고리즘에서의 SVD
                                                                                                  • 추천시스템
                                                                                                    • 희소문제(Sparsity): 데이터를 효과적으로 압축
                                                                                                    • Big-O
                                                                                                    • ALS 알고리즘(10년 지난 모델인데)을 이기는 모델을 만들기 어렵다
                                                                                                    • Nearest Neighbor를 해결하기 위해 요즘 가장 인기좋은 Annoy
                                                                                                  • 패키지를 보는 안목을 키우면 좋다(깃헙 오픈소스)

                                                                                                  3일차
                                                                                                  • 고전적 시계열 모형의 한계
                                                                                                  • KNN: 개념상으로는 가장 쉬운 머신러닝 모형
                                                                                                    • 핵심: k를 어떻게 정할 것인가
                                                                                                    • 복잡도(complexity): 모델이 얼마나 유연하가. K가 작을수록 복잡한 표현 가능
                                                                                                      • k가 클수록 모델이 복잡해진다
                                                                                                      • k=1: 너무 복잡. 노이즈까지 학습해버림. overfitting
                                                                                                      • k=100: 주변의 하나하나의 데이터에 연연하지 않음.
                                                                                                      • 복잡도는 자유도(df)로 측정한다
                                                                                                  • 자유도: 여러곳에서 많이 사용되는 개념
                                                                                                    • 분석에 사용되는 데이터의 독립적인 정보의 수
                                                                                                    • 분산의 경우 평균을 계산하는 과정에서 자유도가 1 빠진다
                                                                                                    • e.g. [1, 2, __] 의 평균 = 2 라면, 나머지 하나의 수는 3으로 저절로 결정된다
                                                                                                    • e.g. one-hot encoding 할 때: 변수 3개라면 → 새로운 변수는 2개만 만들어진다
                                                                                                    • Splining: 일반적으로 모델의 자유도는 데이터 수의 최대 10% 이하를 권장(마지노선)
                                                                                                    • t분포의 모수
                                                                                                    • 전체 자유도 = 모델의 자유도 + 잔차의 자유도
                                                                                                      • 모델의 자유도가 높을수록 복잡도가 높은 것
                                                                                                  • 최소자승법
                                                                                                    • 오차항을 최소화하는것이 예측력을 높이는 것
                                                                                                    • 오차는 표준정규분포를 따른다고 가정
                                                                                                    • SST = SSE + SSR
                                                                                                  • 단순 선형 회귀
                                                                                                    • 베타0: 별로 중요하진 않다. 없으면 안된다
                                                                                                    • 베타1: 이 값이 0인지 아닌지가 제일 관심. 이 값이 0 이라면 X와 Y 사이에 관계가 없다
                                                                                                    • 베타1: t분포를 따른다
                                                                                                    • 상관관계 only. 인과관계가 아니다. 인과관계 확인은 AB Test 등으로. 그럼에도 인과성을 100% 증명하는 것은 어렵다
                                                                                                  • t검정
                                                                                                    • 모델에서는 F검정
                                                                                                    • 다중선형회귀에서는 F검정으로 모델 전체 검정 + t검정으로 개별 변수 검정
                                                                                                  • 이분산성
                                                                                                    • 구간에 따라 분산이 달라진다
                                                                                                    • 이때는 MSE를 제대로 추정할 수 없다(자유도가 들어가서 SSE → MSE)
                                                                                                    • 해결: 단위변화(주로 로그변환)
                                                                                                  • Normality
                                                                                                    • 잔차가 정규분포를 따른다
                                                                                                    • 베타값의 신뢰도를 맞추기 위해(???)
                                                                                                    • 정규성을 맞추는게 머신러닝 예측에 도움이 될 수도
                                                                                                  • 다중선형회귀
                                                                                                  • 다중공선성
                                                                                                    • 회귀에서 가장 주의해야!
                                                                                                    • 베타에 대한 유의성이 감소(신뢰구간 관점)
                                                                                                    • 트리기반 모델도 다중공선성의 영향을 많이 받음
                                                                                                    • 불안정한 계수
                                                                                                    • e.g. 동일 독립변수를 2개 넣으면: 계수=1을 0.5씩 나눠갖게된다
                                                                                                    • 다중공선성에 대한 기준은 교재마다 다르다
                                                                                                      • 주로 8
                                                                                                    • 차원축소를 선호
                                                                                                  • 교호작용
                                                                                                    • 학점과 연봉의 상관관계: 학사보다 박사가 그 상관관계가 클 수 있다(기울기가 크다)
                                                                                                    • 연봉을 설명하는 변수가 학점 뿐만 아니라 ‘학력’이 있을수도
                                                                                                    • 트리기반 모델은 효과적으로 활용 가능
                                                                                                  • 변수 선택
                                                                                                    • 변수가 많을수록 패널티를 준다
                                                                                                  • 시계열
                                                                                                  • ARIMA
                                                                                                    • 여러가지 변동을 합치는 것
                                                                                                    • 모델의 assumption을 맞추기가 어렵기 때문에 예측력 떨어짐
                                                                                                    • AutoRegressive: 자기상관(어제 올랐으니 오늘도 오를꺼야)
                                                                                                    • Integrated: 트렌드에 관한 것(전반적으로 상승 추세야)
                                                                                                    • Moving Average: Smoothing을 하기 위한 것
                                                                                                  • SARIMA
                                                                                                    • ARIMA + Seasonality
                                                                                                    • 맞추기가 어렵다
                                                                                                  • Stochastic Process(확률과정론)
                                                                                                    • 확률분포를 바탕으로 시간의 흐름에 따른 변동을 설명
                                                                                                    • e.g. 블랙숄즈모형
                                                                                                    • 요즘에는 맞추기가 너무 힘들다
                                                                                                  • Prophet
                                                                                                    • 시계열모형 by Facebook
                                                                                                    • component로 쪼개준다(트렌드로, seasonality로…)
                                                                                                      • 데이터가 변동하는것을 분리한다
                                                                                                    • 구간추정이 가능하다
                                                                                                    • 현실적으로 사용하기 좋다
                                                                                                  • 그렇다면 시계열 예측을 어떻게 해야?
                                                                                                    • 피처엔지니어링의 영역이 중요
                                                                                                    • dynamic pricing: 오늘의 가격을 어떻게 정할것인가
                                                                                                      • 이전까지의 가격 정보를 피쳐엔지니어링
                                                                                                      • 언제까지 데이터를 얼마나 활용할 것인가
                                                                                                    • 정적

                                                                                                  Day3 실습 1
                                                                                                  • 벡터라이즈의 효과
                                                                                                    • lambda: 엄청 느리다 웬만하면 안쓰는게 좋다
                                                                                                  • MA: 주로 시각화를 위해서만 사용
                                                                                                  • 시차에 따른 문제
                                                                                                    • UTC timestamp를 사용하는 것이 일반적
                                                                                                  • 피처엔지니어링
                                                                                                    • 현업에서는 수백, 수천개씩의 피처를 만들어낸다…
                                                                                                    • 과거에 없는 상점이 생기는 등의 문제가 있음
                                                                                                      • 점진적 목표 개선(애자일하다? )
                                                                                                  • 예측
                                                                                                    • inference가 목적이라면: 로그를 꼭 씌워야
                                                                                                    • 예측이 목적이라면 X
                                                                                                  실습2
                                                                                                  • 로그를 씌우니 R제곱이 떨어졌다
                                                                                                    • 해석에 주의
                                                                                                    • residual의 값이 작다…
                                                                                                    • 이유: 주기성(연초에 튄다)
                                                                                                    • 방안: 계절성을 넣어줘서 잔차 분석을 한다
                                                                                                  • True가 커짐에 따라 Pred의 값은 크게 변동이 없다
                                                                                                    • 모델은 Pred을 설명하지 못한다
                                                                                                    • 즉, 피처가 부족하다!!! 변수가 더 필요하다!!
                                                                                                    • 성능향상을 위해서는 머신러닝을 써라!는 결론…
                                                                                                  • ‘결측’ 칼럼을 따로 만들어서 one-hot encoding 하는 방법을 선호

                                                                                                  Day3.4
                                                                                                  • 랜덤포레스트
                                                                                                    • max_depth= 회귀분석의 모델의 자유도
                                                                                                  • 전체 자유도 = n-1 = 1954
                                                                                                  • 모델 자유도 = 사용한 변수의 개수 = 27
                                                                                                  • 잔차의 자유도 = 1954-27
                                                                                                  • Degrees of Freedom
                                                                                                    • how many independent pieces of information you need in order to make that calculation
                                                                                                    • sample size와 비슷하지만 같은 개념은 아님(무엇을 구하느냐에 따라 다름)
                                                                                                    • what we already know가 중요
                                                                                                    • e.g. 신호등이 3가지(빨, 주, 초) 지금 무슨색이냐고 물었을때,
                                                                                                      1. 초록색이 아니야
                                                                                                      2. 주황색이 아니야 위 두 정보만으로(df=2) 현재 신호등이 초록색임을 알 수 있음
                                                                                                    • 따라서 보통 df = 카테고리의 수 -1
                                                                                                    • When you already know the mean, the std doesn't depend on every value in your sample. The STD only depends on (n-1)
                                                                                                    • the n-th doesn't contribute to the STD
                                                                                                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                                                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                                                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                                                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                                                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                                                • 표본평균이 정규분포에 수렴하는 것!
                                                                                                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                                                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                                                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                                                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                                                • MLE: 제일 그럴싸한 ___를 찾는다
                                                                                                • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                                            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                                            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                                            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                                            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                                            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                                            • 표본평균이 정규분포에 수렴하는 것!
                                                                                            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                                            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                                            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                                            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                                            • MLE: 제일 그럴싸한 ___를 찾는다
                                                                                            • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                                        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                                        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                                        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                                        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                                        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                                        • 표본평균이 정규분포에 수렴하는 것!
                                                                                        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                                        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                                        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                                        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                                        • MLE: 제일 그럴싸한 ___를 찾는다
                                                                                        • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                                    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                                    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                                    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                                    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                                    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                                    • 표본평균이 정규분포에 수렴하는 것!
                                                                                    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                                    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                                    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                                    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                                    • MLE: 제일 그럴싸한 ___를 찾는다
                                                                                    • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                                • 표본평균이 정규분포에 수렴하는 것!
                                                                                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                                • MLE: 제일 그럴싸한 ___를 찾는다
                                                                                • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                            • 표본평균이 정규분포에 수렴하는 것!
                                                                            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                            • MLE: 제일 그럴싸한 ___를 찾는다
                                                                            • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                        • 표본평균이 정규분포에 수렴하는 것!
                                                                        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                        • MLE: 제일 그럴싸한 ___를 찾는다
                                                                        • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                    • 표본평균이 정규분포에 수렴하는 것!
                                                                    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                    • MLE: 제일 그럴싸한 ___를 찾는다
                                                                    • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                                • 표본평균이 정규분포에 수렴하는 것!
                                                                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                                • MLE: 제일 그럴싸한 ___를 찾는다
                                                                • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                            • 표본평균이 정규분포에 수렴하는 것!
                                                            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                            • MLE: 제일 그럴싸한 ___를 찾는다
                                                            • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                        • 표본평균이 정규분포에 수렴하는 것!
                                                        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                        • MLE: 제일 그럴싸한 ___를 찾는다
                                                        • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                    • 표본평균이 정규분포에 수렴하는 것!
                                                    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                    • MLE: 제일 그럴싸한 ___를 찾는다
                                                    • 앞면이 7번 나올 확률: 70%(가능도함수)
                                                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                                • 표본평균이 정규분포에 수렴하는 것!
                                                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                                • MLE: 제일 그럴싸한 ___를 찾는다
                                                • 앞면이 7번 나올 확률: 70%(가능도함수)
                                            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                            • 표본평균이 정규분포에 수렴하는 것!
                                            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                            • MLE: 제일 그럴싸한 ___를 찾는다
                                            • 앞면이 7번 나올 확률: 70%(가능도함수)
                                        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                        • 표본평균이 정규분포에 수렴하는 것!
                                        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                        • MLE: 제일 그럴싸한 ___를 찾는다
                                        • 앞면이 7번 나올 확률: 70%(가능도함수)
                                    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                    • 표본평균이 정규분포에 수렴하는 것!
                                    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                    • MLE: 제일 그럴싸한 ___를 찾는다
                                    • 앞면이 7번 나올 확률: 70%(가능도함수)
                                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                                • 표본평균이 정규분포에 수렴하는 것!
                                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                                • MLE: 제일 그럴싸한 ___를 찾는다
                                • 앞면이 7번 나올 확률: 70%(가능도함수)
                            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                            • 표본평균이 정규분포에 수렴하는 것!
                            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                            • MLE: 제일 그럴싸한 ___를 찾는다
                            • 앞면이 7번 나올 확률: 70%(가능도함수)
                        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                        • 표본평균이 정규분포에 수렴하는 것!
                        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                        • MLE: 제일 그럴싸한 ___를 찾는다
                        • 앞면이 7번 나올 확률: 70%(가능도함수)
                    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                    • 표본평균이 정규분포에 수렴하는 것!
                    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                    • MLE: 제일 그럴싸한 ___를 찾는다
                    • 앞면이 7번 나올 확률: 70%(가능도함수)
                • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
                • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
                • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
                • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
                • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
                • 표본평균이 정규분포에 수렴하는 것!
                • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
                • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
                • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
                • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
                • MLE: 제일 그럴싸한 ___를 찾는다
                • 앞면이 7번 나올 확률: 70%(가능도함수)
            • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
            • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
            • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
            • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
            • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
            • 표본평균이 정규분포에 수렴하는 것!
            • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
            • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
            • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
            • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
            • MLE: 제일 그럴싸한 ___를 찾는다
            • 앞면이 7번 나올 확률: 70%(가능도함수)
        • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
        • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
        • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
        • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
        • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
        • 표본평균이 정규분포에 수렴하는 것!
        • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
        • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
        • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
        • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
        • MLE: 제일 그럴싸한 ___를 찾는다
        • 앞면이 7번 나올 확률: 70%(가능도함수)
    • 아웃라이어가 있을 때는 평균이 아닌 medoids(클러스터 중심의 데이터 위치)을 사용하기도 한다
    • 모든걸 다 비교하려면 연산이 너무 많기 때문에, 미리 k값을 정해놓고 시작
    • 둘 중 어느쪽을 사용할지는 그때그때 상황에 따라 다르다
    • 30개 이상이 정답이 아니다(왜도 이상으로 잡으면 ㅇㅋ)
    • 원래는 정규분포가 아니지만, 여러개의 표본평균을 구하면 정규분포를 따른다
    • 표본평균이 정규분포에 수렴하는 것!
    • 표본이 많아지면 정규분포를 따른다? 오우 노우!!
    • 항상 여러가지 예측하지 못했던 오류가 있을 수 있다
    • Likelihood function은 확률밀도함수(probability density function)나 확률질량함수(probability mass function)와 유사하지만, Likelihood는 주어진 데이터에 대한 함수로, 파라미터를 알고 있을 때 데이터의 확률을 나타내는 것이 아닙니다. 따라서, Likelihood는 데이터가 어떤 모델에 대해 얼마나 '가능성이 높은지'를 나타냅니다.
    • 우선, Likelihood(우도)는 통계학에서 모델의 파라미터(모수)에 대한 확률 모델을 표현하는 함수입니다. Likelihood function은 주어진 데이터가 특정 모델 파라미터 아래에서 얼마나 가능성이 높은지를 나타내는 함수입니다. 이 함수를 통해 우리는 주어진 데이터가 어떤 모델에 더 '좋은' 적합을 보이는지를 추정할 수 있습니다.
    • MLE: 제일 그럴싸한 ___를 찾는다
    • 앞면이 7번 나올 확률: 70%(가능도함수)
반응형

'AI' 카테고리의 다른 글

(2024-03-14) Pytorch Lightning  (0) 2024.03.14
(2024-02-02) XGBoost와 아이들  (0) 2024.02.02
(2023-12-29) Python EDA  (0) 2024.01.10
(2023-12-26) 파이썬 프로젝트: 웹크롤링  (0) 2023.12.28
(2023-12-13) 왜 파이썬인가 /  (0) 2023.12.13