h2o 패키지 학습 및 포트폴리오 관리를 위해 rstudio가 아닌 jupyter notebook을 사용해보려고 한다.

 

파이썬or아나콘다와 설치하는 jupyter notebook의 버전이 일치하지 않음 or 최신이 아니라서 발생하는 오류로 추정

→ notebook을 삭제하고 버전을 수정하여 다시 설치해준다.

 

pip uninstall notebook
pip install notebook==5.7.5

 

※ 댓글 : alifuk 참고

 

 

https://github.com/jupyter/notebook/issues/4491

 

Jupyter Notebook does not show anything in browser · Issue #4491 · jupyter/notebook

When I run "jupyter notebook" from the Anaconda prompt, I get a redirect notice and then just a blank webpage. No directories or menus or any text whatsoever. I am running windows 10 x64 ...

github.com

'분석 > 머신러닝' 카테고리의 다른 글

LSTM - components  (0) 2019.08.13
머신러닝에서 평가 메트릭(continuous)  (0) 2019.03.28
XGBoost에 관한 이해  (0) 2019.03.07
내가 했던 분석들을 나열하고 그 내용과 거기서 배운 것을 정리해보자.

1. 엘포인트
  - 금액, 카운트 등의 데이터는 대부분 Right skewed 이고, 로그 변환이 유용

2. 다변량, 농구 데이터 분석
  - 집계된 데이터일수록 정규성에 근접, 예측또한 평균에 근접( 분산이 작아짐)

3. 세스, 개인화 추천알고리즘
  - 추천알고리즘

4. 비만과 커피 분석
  - 로짓 모형의 제약 조건
  - 회귀분석에서 f검정의 의미
  - 데이터가 가지는 산포의 의미

5. 통화수요예측
  - 오버피팅
  - 미래에 대한 수요 예측
  - dynamic regression
  - categorical variable

'분석' 카테고리의 다른 글

파이썬을 활용한 업무자동화  (0) 2020.06.02
파이썬 이미지 OCR  (0) 2020.05.10
[spark] 스파크 공부하기  (0) 2020.02.13
Erlang  (0) 2019.04.04
[R] 데이터 불러오기 오류_line 1 did not have 41 elements  (0) 2018.10.21

[ Abstract ]

 

traffic : 통신망을 통과하는 정보의 흐름(전송되는 정보의 양),

          통신망과 통신 기기를 점유하는 시간으로 그 양을 나타냄

 

통신분야에서 회선이나 전환 장치와 같은 서비스 제공 요소의 offered load 또는 carried load의 측정단위

* offered load : traffic in a queue에 대한 측정 (queuing theory)

   - Little's law : the arrival rate into the queue은 mean holding time에 비례한다.

 

하나의 cord circuit은 한 시간에 60분에 해당하는 이용가능한 capa를 갖는다.

각 capa의 Full utilization(즉 60분의 traffic)은 1 얼랑(erlang)으로 대체할 수 있다.

 

Carried traffic : 주어진 기간 동안에 측정되는 평균 동시통화의 수(the average number of concurrent calls)

Offered traffic : 모든 통화시도가 연결된다면 전송되는 traffic

 

실재로 얼마나 많은 offered traffic이 전달될지는 모든 서버가 사용 중일때, 응답못한 통화(unanswered calls)에 무슨 일이 발생하는가에 따라 달라진다.

 

 

* Queueing Theory

  - Erlang-B

    1) assumptions

       ㆍ대기가 없다. 즉, 모든 서버 요소들이 이미 사용중이라면, 새로 도착한 통화는 차단되며 잠재적으로 손실이다.

          공식은 이것이 발생할 확률을 제공한다.       

  - Erlang-C

    1) assumptions

       ㆍ무제한 대기상태의 가능성에서, 모든 서버가 사용중일 때 대기중 기다릴 필요가 있는 시간에 대한 확률을 제공한다.

  → 이용가능한 서버의 수가 서비스 품질과 관련있다.

      두 공식은 offered load를 주된 입력 값으로 받는다.

      (종종 call arrival rate times(*) average call length로 표현됨)

 

      얼랑 공식은 꽤 광범위하게 적용 가능하지만, 정체된 traffic이 많아 재통화 시도가 많을 경우 실패할 수 있다.

      재통화를 설명하는 방법 중 하나는 Extended Erlang B method 사용한다.(대기를 허용하지 않을 때)

 

 

[ 전화 회로의 traffic measurement ]

 

1) carried traffic을 표현하고자 할 때,

   "erlangs"는 서비스 제공요소에 의해 전달되는 동시통화 가능한 평균 수를 의미

   평균은 일부 합리적인 기간에 걸쳐 계산된다.

 

   1얼랑은 a single resource being in continuous use.

   (연속적인 상황에서 1인분이라 생각하면 되는 듯)

   예를 들어 회사가 항상 바쁜 두명의 통신 상담원을 고용중이라면, 이것은 2얼랑을 가진 것이다.

   관심있는 특정 기간 동안에 연속적으로 점유되는 하나의 라디오 채널을 가지고 있다면 이것은 1얼랑이다.

 

2) Offered traffic을 표현하고자 할 때,

   얼랑은 모든 회선이 사용중일 때도 통화시도를 거절하지 않는 상황에서

   평균 동시 통화 수를 말한다.

 

   Carried traffic과 Offered traffic은 시스템 설계와 유저 행동에 의존한다.

   세가지 공통적인 모형이 이용가능하다.

   (a) 통화시도가 거절된 고객은 떠나고, 다시 인입되지 않는다.

   (b) 통화시도가 거절된 고객은 다시 인입될 수 있지만, 그 간격이 짧다.

   (c) 스템은 모든 유저들에게 회선이 이용가능해질 때까지 대기를 허용한다.

 

3) instantaneous traffic

 

 

[ 얼랑의 분석 ] 

 

얼랑에 의해 도입된 개념과 수학은 통신분야에서 널리 이용가능하다.

유저가 사전 예약 없이 많든 적든 임의로 서비스 제공 요소로부터 독점적 서비스를 받을때마다 적용한다.

하지만 얼랑의 모형은 서비스 제공요소가 공유되거나, 각기 다른 유저가 다른 양의 서비스를 제공받는다면 적용할 수 없다.

 

얼랑 트래픽 이론(Erlang's traffic theory)의 목적은 공급 과다 없이 유저를 만족시킬 수 있는 서비스를 제공하기 위해서 얼마나 많은 서비스 제공 요소가 필요한지를 정확하게 결정하는 것이다.

이를 위해 타켓은 서비스 등급 또는 서비스 품질이 된다.

예를 들어 대기를 허용하지 않는 상황에서, 서비스 등급은 100건의 통화 중 거절되는 통화가 1건 이상이면 안된다 등

→ 콜 차단에 대한 확률을 구해 얼랑-B 공식을 적용

 

유저 행동과 시스템 오퍼레이션에 따라 다양한 모델을 적용할 수 있다.

birth-death process로 알려진 continuous-time Markov processes의 특별한 케이스로 유도될 수 있다.

최근 Extended Erlang B 방법은 더 좋은 해결책을 제시할 수 있다.

 

 

[ offered traffic 계산 ]

 

E = L * h

  E : 얼랑(offered traffic)

  L : the call arrival rate

  h : the average call-holding time (평균통화시간)

 

L과 h는 같은 시간 단위를 사용해 표현된다.

 

traffic에 대한 실질적 측정은 보통 며칠, 몇주 동안의 연속형 관측치에 의존한다.

즉각적인 트래픽이 정기적으로, 짧은 구간 단위로 기록되어진다.

이러한 측정은 가장 보편적인 busy hour traffic이라는 단일 결과를 계산하는데 사용되어진다.

이것은 한 구간 동안의 평균 동시통화 건수로, 하루 중 가장 높은 값을 가지는 구간에서의 동시통화건수이다.

각 일자별로 이 값을 산출해 평균을 취하는 방식을 사용한다. 

 

이미 과부하된 시스템에서 busy-hour carried traffic이 존재하고, 상당 수준의 차단을 가지고 있다면

offered traffic을 추정할 때, 차단된 콜수를 고려해야한다.

Eo = Ec / (1-Pb) 를 통해 offered traffic을 추정하려할 때,

차단된 콜과 성공한 콜을 세는 시스템이 있는 경우, 차단된 통화의 비율로 Pb를 직접 추정가능하다.

안된다면 Eo대신에 Ec를 사용한 얼랑 공식을 통해 Pb를 추정하고, 그 결과값을 Eo를 추정하는데 사용할 수 있다.

 

과부하된 시스템에서 Eo를 추정하는 다른 방법으로 busy-hour call arrival rate을 측정하는 것이 있다.

성공과 차단 콜수를 세고(L), 성공한 콜의 평균통화시간(h)을 구한다.

그리고 E=L*h 의 공식으로 Eo를 추정한다.

 

다루고자 하는 트래픽이 완전히 새로운 경우, 오직 예상가능한 유저 행동을 모형화하는 시도만이 가능하다.

 

 

[ 얼랑 B 공식 ] 

 - 동일한 병렬 자원에서 차단확률을 구한다.

 

[ 얼랑 확장된 B 공식 ] 

 

 

[ 얼랑 C 공식 ] 

  - 공식은 고객이 전화를 끊지 않을 것이라 가정한다.

    즉, 실질적 필요 capa보다 과다하게 예측하는 경우가 많음.

 

 

 

출처 : https://en.wikipedia.org/wiki/Erlang_(unit)

'분석' 카테고리의 다른 글

파이썬을 활용한 업무자동화  (0) 2020.06.02
파이썬 이미지 OCR  (0) 2020.05.10
[spark] 스파크 공부하기  (0) 2020.02.13
분석 경험 정리하기  (0) 2019.04.22
[R] 데이터 불러오기 오류_line 1 did not have 41 elements  (0) 2018.10.21

 

 

https://ukchanoh.wordpress.com/2015/02/16/multicollinearity/

 

언제 다중공선성(multicollinearity)을 무시해도 괜찮은가?

생각해보니 통계분석에서 가장 많이 받았던 질문 주제 중의 하나가 다중공선성이었다. 다중공선성은 절대적인 진단기준도 없을 뿐더러 처치방법도 별로 없으니 크게 신경쓰지 말라는 취지의 얘기를 주로 했는데 그리 책임있는 답변은 아닌 듯 하다. 이 문제와 관련하여 Paul D. Allison 교수(University of Pennsylvania)의 아래 글이 …

ukchanoh.wordpress.com

 

1. 관심변수가 아닌 통제변수인 경우

  - 관심변수의 VIF 값은 낮은 경우

 

2. interaction term 또는 power와의 관계

  - 증명될 수 있다고 함

 

3. 3개 이상의 범주를 가지는 더미변수

 

 

 

 

https://statisticsbyjim.com/regression/multicollinearity-in-regression-analysis/

 

Multicollinearity in Regression Analysis: Problems, Detection, and Solutions - Statistics By Jim

Multicollinearity is when independent variables in a regression model are correlated. I explore its problems, testing your model for it, and solutions.

statisticsbyjim.com

  1. Multicollinearity affects the coefficients and p-values, but it does not influence the predictions, precision of the predictions, and the goodness-of-fit statistics. If your primary goal is to make predictions, and you don’t need to understand the role of each independent variable, you don’t need to reduce severe multicollinearity.
    예측이 목적이며, 설명변수에 대한 이해가 필요하지 않다면 다중공선성을 그리 걱정하지 않아도 된다??
      ㆍThe fact that some or all predictor variables are correlated among themselves does not, in general, inhibit
         our a
    bility to obtain a good fit nor does it tend to affect inferences about mean responses or predictions of
         new observations.  —Applied Linear Statistical Models, p289, 4
    th Edition.

'분석 > 통계' 카테고리의 다른 글

Time Series 3  (0) 2019.03.14
Time Series study2  (0) 2019.03.11
Time Series study  (0) 2019.03.09
최종 머신러닝 모형에서 variance를 줄이는 방법  (0) 2019.03.09
추세선의 증가하는 정도를 아는 방법 : 선형회귀분석  (0) 2019.03.05

https://medium.com/usf-msds/choosing-the-right-metric-for-machine-learning-models-part-1-a99d7d7414e4

 

Choosing the Right Metric for Evaluating Machine Learning Models — Part 1

First part of the series focussing on Regression Metrics

medium.com

 

 

평가메트릭 말고도 참고할만한 글이 많음.

'분석 > 머신러닝' 카테고리의 다른 글

LSTM - components  (0) 2019.08.13
[jupyter notebook] 설치했으나 run 결과 출력이 안되는 오류  (1) 2019.07.20
XGBoost에 관한 이해  (0) 2019.03.07

 - 활용사례 및 문법 바로 참고 가능 : http://ggplot2.tidyverse.org/reference

 - Cheat Sheet : https://www.rstudio.com/resources/cheatsheets

 - 그래프 색상 : color.adobe.com

    ※ 인기도순으로 정렬하면 고르기 편함

                     color-hex.com

 - 가지고있는 이미지에서 색상 추출 : https://encaion.shinyapps.io : 



 

< ARIMA model >

 - exponential smoothing은 데이터에서 trend와 seasonality를 설명하는 것을 기본으로 한다.

 - ARIMA는 데이터의 autocorrelations를 설명하는 것을 목표로 한다.

    → 둘은 상호보완적으로 다루어진다.


□ Stationarity and differencing

  - stationary time series : 관측된 시기에 영향을 받지 않는다.

    → white noise (trend, seasonality가 없는 상태)

        cyclic behaviour를 가지고 있더라도 trend나 seasonality가 존재하지 않으면 stationary 한 것이다.

        ∵ 사이클은 고정된 길이를 가지고 있지 않기 때문이다.(관측하기 전에 고점, 저점을 확신할 수 없음)

  - differencing : non-stationary → stationary

    → 연속적인 관측값 사이의 차이를 계산하라.

    로그변환은 ts data에서 variance를 안정화함

    Differencing은 mean을 안정화한다.(trend와 seasonality를 감소시킨다.)


  - Random walk model

    ㆍdifferenced series : 


    ㆍrandom walk model :  (white noise)

       → 장기간에 걸친 분명한 상승/하강 trend

           갑작스럽거나 예상치못한 방향의 변화

           예측값은 미래의 움직음을 예측할 수 없기 때문에 마지막 관측값과 같다.


  - Second-order differencing : 한번으로 stationary가 안되어 한 번 더 필요할 때

  - Seasonal differencing :  (lag-m differences)


  - differencing이 사용되었을 때, differences에 대해 설명가능해야 한다.


  - Unit root test : differencing이 필요한지를 판단하는 객관적 방법

    ㆍH0 : the data are stationary.

       cf) ur.kpss( ) / library(urca)

           ndiffs( ) : 몇 번의 difference를 추천하는가?

           nsdiffs( ) : seasonal data



□ Backshift notation


  -  (B operating on y_t )

  - back two periods : 

  - describing the process of first differencing : 

  - second order differences : 

  - a seasonal difference followed by a first difference can be written as :

 

    



□ Autogressive models

  - In an autoregression model, we forecast the variable of interest using a linear combination of past values of the variable.

    : 그 자체에 대응하는 변수의 회귀이기 때문에 autoregression이라는 용어를 사용


  - an autoregressive model of order p 

    :    (white noise)

    :  AR(p) model


    ㆍremarkably flexible at handling a wide range of different time series patterns.

    ㆍ계수의 변화에 따라 다른 패턴을 내놓는다.

    ㆍ오차는 오로지 series의 scale만을 변화시키고, 패턴 그 자체는 변화시키지 않는다.


  - 모델을 stationary한 데이터로 제한하기 위해 일반적으로 계수의 범위를 제한한다.(보통 -1~1 사이, p가 증가할수록 제약도 복잡해짐)



□ Moving Average models

  - 과거의 값을 사용하기보다, 과거 예측의 오차를 사용하는 모델

    :  

    : MA(q) model

  - 입실론의 variance는 오로지 series의 scale만을 변화시키고, 패턴 그 자체는 변화시키지 않는다.

  - AR(p) 모델은 MA()로 표현할 수 있다.

    : 

  - MA(q) 모델 또한 AR()로 표현이 가능

    : 


    1) abs(theta) > 1 : 시점으로부터 먼 값에 가중치를 더 준다.

    2) abs(theta) = 1 : 가중치가 모두 일정함

    3) abs(theta) < 1 : 시점으로부터 가까운 값에 가중치를 더 준다.(invertible)

 


□ Non-seasonal ARIMA models (Integration)

  - AR + MA : Non-seasonal ARIMA models

    :  

  - ARIMA(p, d, q) model

    ㆍp = order of the AR part

    ㆍd = degree of first differencing involved

    ㆍq = order of the MA part


  1) ARIMA(0, 0, 0) : White noise

  2) ARIMA(0, 1, 0) with no constant : Random walk 

  3) ARIMA(0, 1, 0) with constant : Random walk with drift

  4) ARIMA(p, 0, 0) : AR(p)

  5) ARIMA(0, 0, q) : MA(q)

  - Backshift notation 

    : 

    → R에서는 다른 표기법을 쓰기도 함 (차분 부분의 평균이동으로)

        적절한 p,d,q를 찾는 것은 어렵지만, R에서 auto.arima( ) 를 이용하면 자동으로 이 값을 얻을 수 있다.


  - c : long-term forecasts에 영향을 미친다.

  - d : prediction intervals에 영향을 미친다. (the higher d , the more rapidly the PI increase in size)

    ㆍd=0 → Long-term forecast sd 는 historical data의 sd와 같아진다. 그래서 PI 또한 동일해질 것이다.

  - p : cycle이 있는 경우 중요하다.

    ㆍcyclic forecasts를 얻으려면 p는 반드시 2 이상의 값이어야 한다.


□ ACF and PACF plots

  - partial autocorrelations : t번째와 t-k번째의 관계를 살필 때, 사이의 각 단계에서의 효과를 모두 제거하여 측정 (중복효과 방지를 위함)

  - k번째 partial autocorrelations 의 값은 AR(k)의 phi_k를 추정하는 것과 동일하다.



□ Estimation and order selection

  - MLE

  - AIC, BIC는 모델의 적절한 differencing order를 선택하는 가이드를 주지 않는다.

    단지 p, q를 선택하는데 도움을 준다.



□ Point forecast

□ Prediction Interval

  - differencing이 0이고 가정을 만족하면(stationary), 모든 구간에서 PI가 거의 같다.(수렴한다.)

  - d > 1 이면 PI는 지속적으로 증가할 것이다.

  - ARIMA-based model은 보통 아주 좁은 PI를 가지는데 이는 errors가 설명하는 variation만을 고려하기 때문이다.

    parameters를 추정하거나, 모델의 order에 대한 variation은 고려하지 않는다.

    또한 historical patterns가 미래에도 계속될 것이라는 가정이 필요하다.



□ Seasonal ARIMA models

  - including additional seasonal terms in ARIMA models(P,D,Q)

  - 차분이 들어간 모형이면 장기간 예측에서 PI는 지속적으로 커질 가능성이 높음(즉, 긴 기간에 대한 예측정확성이 낮음)

                                                                                                         → 그렇다면 단기간 예측에는 오히려 별 상관없이 쓸 수 ㅇ

  - variance가 증가하는 경향을 보일때 log변환은 적절한 방법



□ Test set evaluation

  - AICc 값으로 모델을 비교할 땐 같은 differencing order를 가지는 것이 중요했지만, 

    test set을 사용할 땐 그다지 중요하지 않다. 이러한 비교는 항상 타당하다.



□ ARIMA vs ETS

  - linear exponential smoothing model : special case of ARIMA

  - the non-linear exponential smoothing model : 적절한 ARIMA를 찾을 수 없음

                                                                 모든 ETS model은 non-stationary 지만 일부 ARIMA는 stationary 하다.



< Dynamic regression models >

  : we consider how to extend ARIMA models in order to allow other information to be included in the models.

    we will allow the errors from a regression to contain autocorrelation.

    error terms ~ ARIMA

    → 결국 모형은 두개의 오차항을 가지게 된다.(그중 ARIMA의 오차만 white noise를 가정)


  - 기존의 방식(LSE) 추정시 발생하는 문제 ( 추정 시)


     1) 추정된 계수는 best estimates가 아님 (계산 과정에서 몇몇 정보들은 무시된다)

     2) 통계적 가설검정의 결과를 신뢰할 수 없음

     3) AIC 값이 예측력을 평가하는데 좋은 지표가 아니게 됨

     4) spurious regression : 계수의 연관성과 관련하여 낮은 p-value를 출력하게 되어, 중요하지 않은 변수 또한 중요하다고 판단하게 될 수 있음


     → ARIMA의 오차항을 최소화하는 계수를 찾으면 이 문제들을 피할 수 있다.

        대안으로 MLE를 사용할 수 있다.

        ★ 가장 중요한 고려사항은 모델의 모든 변수들이 stationary 해야한다. (아닐경우 not consistent and not meaningful)

            단, non-stationary 한 변수들의 조합이 stationary 하다면 예외이다. (?)


      → 따라서 우선적으로 모델안의 non-stationary variables에 대해 difference 해야한다.

          (필요한 경우엔 모든 변수들에 대해 first difference를 수행할 수도 있다.)

          모델 안의 모든 변수들이 stationary하다면 ARMA errors for the residuals를 고려해야한다.


  - Regression with ARIMA errors in R



□ Stochastic and deterministic trends (linear trend)

  - Stochastic : 트렌드가 변할 것이다.

                    차분 필요함

                    PI가 크게 측정됨 (보수적)

  - deterministic : 트렌드가 변하지 않을 것이다.

                       차분 불필요

                       PI가 낮게 측정됨 (트렌드가 변하면 틀림)

  - 둘의 추정 계수(+ 예측값)은 비슷하되 PI는 아주 다를 수 있음



□ Dynamic harmonic regression

  - Long seasonal periods : 종종 Fourier terms를 가진 dynamic regression이 나은 경우가 있음.

  - 단점은 seasonality가 변하지 않는다고 가정하는 것이다.(실제로도 별로 변하지 않음)


    

□ Lagged predictors

  : 변수에 의한 영향이 즉각 반영되지 않고, 서서히 반영되는 경우

    stats::lag( ) 함수를 통해 변수를 밀 수 있음





Time series decomposition


□ Moving averages

  - Trend-Cycle을 추정하는데 사용

  - MA의 차수는 smoothness를 결정함( m↑ → smoother)

  - MA of MA : 가운데 자료에 가중치를 더 준다.(smoother)


□ Classical decomposition

  - assumption : the seasonal component is constant from year to year.

    * seasonal indices : 계절지수

  - 더 나은 방법들이 있기에 잘 쓰이진 않음.

    1) trend-cycle : 양 끝으로 사라지는 값이 존재 + over-smooth rapid rises and falls in the data

    2) seasonal component가 매년 반복될 것을 가정 but 그렇지 않은 경우가 많음. → 긴 시간 변화에 따른 seasonal change를 포착하지 못함.

    3) not robust to unusual values


□ X11 decomposition

  - quarterly and monthly data

  - based on classical decomposition

  - 양 끝 값에 대한 추정이 가능 + seasonal component : vary slowly over time.

  - has some sophisticated methods for handling trading day variation, holiday effects and the effects of known predictors. 

  - is entirely automatic and tends to be highly robust to outliers and level shifts


□ SEATS decomposition

  : Seasonal Extraction in ARIMA Time Series

  - works only with quarterly and monthly data.


□ STL decomposition

    * versatile : 다재다능한

  - will handle any type of seasonality, not only monthly and quarterly data.

  - be controlled by the user(change over time, the rate of change, the smoothness of the trend-cycle)

  - It can be robust to outliers 

  - unusual obs가 trend-cycle, seasonal components의 추정에 영향을 미치지 않지만,

    remainder component에는 영향을 미친다.

  - does not handle trading day or calendar variation automatically


  ★ parameters

      1) trend-cycle window(t.window) : is the number of consecutive observations to be used 

                                                           when estimating the trend-cycle

      2) seasonal window(s.window) : is the number of consecutive years to be used in 

                                                         estimating each value in the seasonal component. / 디폴트X

      → control how rapidly the trend-cycle and seasonal components can change.(smaller → rapid changes)

           should be odd numbers!




< Exponential smoothing >

  - 예측은 과거 값들의 가중평균이며, 순서가 멀어질수록 가중치가 낮아진다.


□ Simple exponential smoothing

  - is suitable for forecasting data with no clear trend or seasonal pattern.

  - 과거의 데이터보다 현재와 가까울수록 가중치를 둔다.

  - smoothing parameter : alpha in [0,1]


□ Trend methods

  - Holt's linear trend method



□ Trend, Seasonal, Cyclic

  Trend : 전반적으로 감소하거나, 증가하는 경향(changing direction)

  Seasonal : 일정하고 알려진 주기성

  Cyclic : 일정하지 않은 변동(ex. business cycle)


□ 비교군으로서의 some simple forecasting methods

  1. Average method : 기간의 평균으로 예측값

  2. Naive method : 마지막 값으로 예측값

  3. Seasonal naive method : 가장 최근의 주기에 해당하는 예측값

  4. Drift method : 마지막 값 + 트렌드


□ Transformations and adjustments

  - 목적 : 알려진 변동을 제거함으로서 패턴을 단순화, 더욱 일관성있는 패턴 생성

             → 패턴의 단순화는 더 정교한 예측을 이끈다.

    1. Calendar adjustments : 월들 간 보유한 날짜 수의 차이로 발생하는 변동(variation)

                                      → 월별 예측시 영입일수를 보정한 예측을 하는 것이 적절할 수 있음

    2. Population adjustments :  모집단의 수가 지속적으로 변할 때, 인당 예측을 활용 가능

                                      → 이용가능고객수의 변화가 콜수에 영향을 미치는 양을 고려할 수 있을 것

    3. Inflation adjustments : 돈에 영향을 받는 데이터라면 인플레이션에 대한 보정이 필요하다.


    4. Mathematical transformations : log, power, box-cox

                                                 → transformation이 예측값 자체에는 큰 변화를 주지 못하더라도, 

                                                     prediction interval에 큰 영향을 주는 경우가 있으니 참고.


    5. Bias adjustments : 기존에 back-transformation에서 median 대신에 mean을 사용 ?

                                → Box-Cox transformation에 대해 자세히 학습할 필요가 있을 듯?


□ Residual diagnostics

  1) 독립성 : 잔차 간의 상관관계가 존재한다면, 이용했어야할 정보가 아직 잔차에 남아있다.(해결이 쉽진 않음)

  2) 잔차의 합이 0이 아니다 → 그 만큼 예측값에 bias가 존재할 것이다.

                                     → 간단히 예측모델에 그 만큼을 더하면 bias를 처리할 수 있다.

  3) 등분산성, 정규분포 : prediction intervals의 계산을 쉽게 만들어준다.


  - 잔차의 특성을 확인하는 것은 이용가능한 정보를 모두 사용하고 있는가에 대한 점검 방법으로 가치가 있다.

    → 단, 예측 기법을 선택하는 좋은 방법은 아니다.


  - Autocorrelation 측정 방법 (portmanteau test)

    (1) Box-Pierce test

    (2) Ljung-Box test

    → 둘다 통계량은 white noise와 autocorrelation을 구분할 수 없다는 가정하에 카이제곱 분포를 따름

        이 차이가 클 수록 autocorrelation이 존재한다고 볼 수 있음.


□ Evaluating forecast accuracy

  - test set의 size는 보통 total sample의 20% 수준으로 정한다.

  - 완벽한 적합은 충분한 파라미터를 사용하면 언제나 얻어질 수 있다.



□ Prediction Interval
  - 예측의 신뢰성을 대변하기 위해 점 뿐만아니라 구간추정또한 제공한다.
    이를 구하기 위해 표준편차의 추정값이 필요한데,
    One step 의 경우 residuals의 표준편차는 좋은 추정치를 제공한다.
    Multi step의 경우 그렇게 간단하지 않다. 보통 잔차들이 uncorrelated 임을 가정한채로 구해진다.

  - 붓스트랩을 사용해 prediction interval을 정교화할 수 있다.

□ Judgement forecast
  1. 사용가능한 데이터가 없을 때
  2. 통계적 예측의 추가 보완


□ Regression in TS

  1. Autocorrelation : TS 데이터에선 보통 존재한다.

                            존재하는 경우 unbiased는 유지되지만, prediction interval을 과대추정하는 경향 있음

     1) ACF plot of the residuals

     2) Breusch-Godfrey test(Lagrange Multiplier) : small p-value → significant autocorrelation

        →  ACF plot으로 가장 자기상관이 존재할 것 같은 lag를 찾고, BG test 수행

             Chap.9 에서 잔차에 남아있는 정보를 더 잘 포착하는 방법에 대해 고민할 예정


  2. Residual vs predictor

     : 잔차는 어떠한 패턴을 보이지 않고 랜덤하게 퍼져있을 것이다.

       간단히 확인할 수 있는 방법은 predictors와 residuals를 비교하는 것이다.

       이 때, 모형에 포함하지 않은 변수에 대해서도 확인할 필요가 있고, 이들이 관계를 보이면(비선형이더라도) 모형에 추가 및 수정할 필요가 있음.

 

  3. Residual vs fitted values

     : 관계가 보이면 등분산 가정을 만족하지 않을 가능성이 높음

       log 등으로 transformation 고려


  4. Outliers and influential observations


□ Some useful predictors

  1. Trend : 시간을 변수로 추가하면, 쉽게 trend의 계수를 추정할 수 있다.

     - tslm( ) 함수에서 trend 를 이용해 구현 가능 

  2. dummy variable : outlier를 special event 변수로 두고 모델링 할 수 있다.

  3. Seasonal dummy variables 

  4. Intervention(개입) variables : 경쟁사 활동, 광고, 산업 내 이벤트 등

     - spike variable : 이벤트 기간 동안만 1의 값을 갖는 더미변수

     - step variable : 이벤트 개입으로 영구적인 변화가 생겼을 경우, 이벤트 발생 이전/이후로 더미 코딩

     - change of slope : 나중에 다룸

  5. Trading days : 월별 영업일이 다를 수 있다.

     1) 월별 영업일수를 예측변수에 추가

     2) 7개의 변수를 사용해 해당 월이 각 요일별로 포함한 일수를 예측변수에 추가

  6. Distributed lags : 광고비용을 포함

                            단, 광고효과는 나중에 나타나므로 월별로 나누어서 변수를 지정

                              ex) x1 : 한달 전 광고, x2 : 두달전 광고  ...

                            lag가 증가할 수록 계수는 감소할 것을 기대한다.

  7. Easter(부활절) : 날짜 말고 요일로 지정되는 휴일 고려

                          기간을 잘 찾아서, 기간동안 더미화

  8. Fourier Series : long seasonal period에 사용

                         파형에서 데이터를 끌어내는 방법?


□ Selecting variables

  1. 산점도, multiple linear regression의 결과로 계수의 p-value만 보고 일부 변수를 선정하는 것은 추천하지 않음.

  2. 대신, predictive accuracy에 대한 측정을 활용 : cv( )으로 계산됨

               - CV, AIC, AICc, BIC, AdjR2

    1) AdjR2 : 너무 많은 변수를 선택하는 경향이 있고, 예측엔 적절하지 않은 듯

    2) BIC : 트루 모델이 존재하면, 가장 가깝게 예측하는 경향이 있으나 실제론 그렇지 않음

    3) AICc, AIC, CV를 추천함 : 관측값의 수가 커질 수록 세 값은 같은 결론을 지지함

       - AICc : AIC는 관측값의 수가 적을 때, 너무 많은 변수를 선택하는 경향이 있어 Bias를 보정한 기준치

  3. Best subset regression

  4. Stepwise regression

  → 이 방법들은 각 변수가 예측값에 미치는 영향을 확인하기엔 좋지 않음.

      단지 예측을 위한 것일 뿐임에 유의


□ Forecasting with regression

  1. Ex-ante vs Ex-post

     - EX-ante : 미리 이용가능한 정보만 사용하여 예측 / 실제 예측 활용 가능

     - EX-post : 나중에 이용할 정보로 예측 / 실제 예측엔 활용 불가(변수에 대한 이해를 위함)

     → 이 둘의 비교를 통해 예측력이 변수 선택 때문인지, 모형 때문인지 알 수 있다.

         Ex-post에 의해 사용 불가해 보이지만, 추가로 예측하는 scenario에 기반하여 변수로 사용할 수 도 있음(가정 추가)

         시나리오 기반 예측은 다른 변수 또한 예측해야한다는 단점이 존재

         → h-step ahead forecast로 Ex-ante(미리 이용가능한 정보에 의한 예측)으로 미래 시점 예측 가능

             이 과정에서 정책 변화로 인해 드러나는 효과 등이 직관적으로 드러날 수 있다.

How to Reduce Variance in a Final Machine Learning Model

by  on August 13, 2018 in Machine Learning Process

(https://machinelearningmastery.com/how-to-reduce-model-variance/)




최종 모형은 예측에 있어서 variance에 의해 고통받는다.

실무 환경에서는 더욱 그러한 경우가 많다.


□ 포스트의 목적

  1) 최종으로 만들어진 모형 예측에서 variance 문제 이해

  2) 모형의 variance 측정 방법과 일반적으로 파라미터 추정시 var가 어떻게 다루어지는 방식 이해

  3) 최종 모형의 예측에서 var를 줄일 수 있는 기술


□ Final model : 머신러닝 프로젝트의 산출물


□ Bias and Variance

  - Bias : 학습할 수 있는 범위를 좁히는 가정

            현실과 가정이 다른 경우를 cost로 하여, 학습을 빠르고 안정적으로 만듬

  - Variance : 데이터 특성에 대한 학습의 민감도(sensitivity)

                  모형을 데이터에 특수화(specialized) 할 때 유용

                  random noise 또는 다른 데이터에서 교육받을 때 마다 달라지는 것을 cost로 함


□ The Problem of Variance in Final Models


□ Measure Variance in the Final Model

  - common sources of variance in a final model

    1) The noise in the training data

    2) 머신러닝 알고리즘에서 randomness의 이용


  - training data를 활용하여 두 타입의 var 측정 가능

    1) Measure Algorithm Variance : 알고리즘의 확률적 성격(stochastic nature)에 의해 유도된 var

                                               동일한 training set에서 평가를 반복하며 측정 가능

    2) Measure Training Data Variance : training data에 의해 유도된 var  

                                                   training set의 다른 샘플에 대한 평가를 반복하며 측정 가능

    → combined variance : k-fold CV


□ Reduce Variance of an Estimate

  - variance를 줄이고 싶다면, bias를 더해야 한다.

    random sample에서 평균을 추정하는 것과 같은 모집단의 모수를 추정하는 단순한 통계적 추정에 대해 생각해보자.

    평균에 대한 하나의 추정은 high variance and low bias를 가질 것이다.

    만약 우리가 이 과정을 30번 반복하고 추정된 평균값들의 표준편차를 계산한다면 우리는 large spread를 볼 수 있기 때문에 이는 직관적이다.


    분산을 줄이는 해결책 또한 직관적이다.

    CLT에 의거하여 많은 다른 샘플들에 대한 추정을 반복하고 추정치의 평균을 계산해보자.

    추정된 평균들의 평균은 lower variance를 가진다.

    추정된 값들의 평균이 단일 추정에 비해 더욱 정확할 것이라는 가정에 의해 bias를 증가시켰다.

    다른 접근은 대수의 법칙에 의거하여 모평균을 추정하고자 하는 data sample의 사이즈를 극적으로 키우는 것을 고려할 수 있다.


□ Reduce Variance of a Final Model

  - 위의 모수의 variance를 줄이는데 사용되는 원칙은 final model의 variance를 줄이고자 하는데 또한 사용될 수 있다.

    우리는 Bias를 추가해야한다.


□ Fragile Thinking

  - 단점을 제한하고 최고의 평균성과를 목표로하는 것이 더 안전하다.

    



'분석 > 통계' 카테고리의 다른 글

Time Series study2  (0) 2019.03.11
Time Series study  (0) 2019.03.09
추세선의 증가하는 정도를 아는 방법 : 선형회귀분석  (0) 2019.03.05
자기상관(Autocorrelation)  (0) 2019.03.02
통화수요예측을 위한 자료수집  (0) 2019.02.25

+ Recent posts