데이터분석 139

[ADP] 빅데이터 시대 위기 요인과 해결 방안

1. 사생활침해 : 데이터로 인해 사생활 침해당함 => '사용자'가 동의하는 것이 아니라 '데이터 이용자'가 책임지는 형태로 변화해야함. 2. 책임원칙훼손 : 아직 저지르지 않은 범죄를 예측하여 처벌하면 안된다(영화 마이너리티 리포트). => 결과기반 책임원칙을 고수 해야한다. 3. 데이터 오용 : 데이터의 오용이 일어난다 => 알고리즘 접근을 허용해야 한다. (알고리즈미스트 : 알고리즘으로 부터 부당한 피해를 받지 않도록 사람들을 구제해 주는 직업)

연관규칙 (지지도 신뢰도 향상도)

1. 지지도(support) A상품과 B상품의 지지도 = A상품과 B상품을 같이 구입한 횟수 / 전체 구매 횟수 2. 신뢰도(Confidence) A상품에 대한 B상품의 신뢰도 = A상품과 B상품의 동시출현 횟수 / A상품 출현 횟수 3. 향상도(lift) 그냥 B항목을 샀을 때 대비 A상품을 사고 B상품을 샀을때 구매할 확률 증가값 = A상품과 B상품 동시출현 확률 / (A상품 구매확률 * B상품 구매확률 )

holt-winter 선형추세+계절알고리즘 #비선형적 계절성 추정

holt-winter 알고리즘 비선형적 계절성을 추정하는데 사용한다. (1) additive seasonal meathod (2) multiplicative seasonal meathod 코드 import pandas as pd from statsmodels.tsa.api import ExponentialSmoothing import matplotlib.pyplot as plt location = './Data/BikeSharingDemand/Bike_Sharing_Demand_Full.csv' raw_all = pd.read_csv(location) # Holt-Winter's Seasonal target = raw_all.loc[:24*7*2, 'count'] target.plot(marker='o'..

공적분 모형 #삼성전자우와 삼성전자 주식의 공적분 판단 #페어트레이딩

공적분 모형 두 비정상성 시계열을 선형조합 했을 때 시계열의 적분 차수가 낮아지거나 정상상태가 되는 경우 * 적분차수 : 정상성이 되기까지 차분해야 하는 횟수 Y1의 적분차수가 1이고, Y2의 적분차수가 2이다. 이때 Y1과 Y2를 결합한 모형의 적분차수가 2(=max(y1 적분차수,y2적분차수)) 미만이 되면 Y1과 Y2는 공적분 상태라고 한다. 공적분 판별 VECM(Vector Error Correction Model)모형을 이용한다 위의 식을 통해 계산하고 이때 가설검정은 아래와 같이 해석한다 귀무가설 : 공적분 특성 없다 대립가설 : 공적분 특성 있다. 따라서 p-value가 유의수준보다 크면 공적분 특성이 있다고 판단한다. 삼성전자우와 삼성전자 주식의 공적분 판단실습 (1) 데이터로딩 # 데이터..

그래인저 인과관계 모형 #삼성전자 주식과 삼성전자우 주식의 인과관계 를 통한 실습

그래인저 인과관계 모형(granger cauality model) (1) 의미 X라는 사건과 Y라는 사건이 서로 인과관계가 있는지 확인하는 모형. 어떤 현상의 예측에 있어서 다른 정보를 이용하는 것이 얼마나 유의미한지 나타내는 척도. (2) 수행 순서 1. 사건 X와 Y를 설정한다. 2. X->Y일때의 가설검정을 수행한다. 3. Y->X일때의 가설검정을 수행한다. *가설검정 4. 결과해석 X->Y가 유의미하고 Y->X가 유의미하지 않으면 인과관계 (X->Y) 성립 Y->X가 유의미하고 X->Y가 유의미하지 않으면 인과관계 (Y->X) 성립 실습 삼성전자 우선주와, 삼성전자 간의 인과관계를 그래인저 모형을 통해 알아본다. (1) 데이터로딩 # 데이터 로딩 import pandas_datareader.da..

다변량 시계열 알고리즘 VAR

VAR알고리즘 벡터자기회귀(VAR) : 단변량 자기회귀의 일반적인 형태로서 여러개의 Y값이 시차에 따라 서로 영향을 주는 식(종속변수 y가 여러개) (1) var(1) : 시차 1까지 식에 포함시킴 (2) var(2) : 시차 2까지 식에 포함시킴 코드 예시 - 데이터 로딩 및 확인 import pandas as pd import numpy as np import matplotlib.pyplot as plt import statsmodels import statsmodels.api as sm # 데이터 로딩 raw = sm.datasets.macrodata.load_pandas().data dates_info = raw[['year', 'quarter']].astype(int).astype(str) ra..

fbprophet 라이브러리를 이용한 시계열 분석

페이스북에서 개발한 fbprophet을 이용하여 시계열 분석을 수행한다. 1. 필요 라이브러리 임포트 import timeit start = timeit.default_timer() from fbprophet import Prophet from fbprophet.plot import plot_plotly, plot_components_plotly from fbprophet.plot import add_changepoints_to_plot 2. 데이터 전처리 (1) 데이터 합치기 # Rearrange of Data Y_train_feR_prophet = Y_train_feR.reset_index() Y_train_feR_prophet.columns = ['ds', 'y'] YX_train_prophet =..

SARIMAX

1. SARIMAX의 의미 ARIMAX 모형에서 계절성 패턴을 추가한 모델. trend에 대하여 ARIMA를 수행하고, 계절성에 대해서 추가적으로 ARIMA를 수행한것으로 해석하면 된다. 2. 파라미터 (1) 파라미터 설명 총 7개의 파라미터가 존재한다. trend에 대한 부분(p,d,q)과 seasonal에 대한 부분(P,D,Q,m)으로 나뉜다. (2) 파라미터 선택방법 위와 같은 데이터에가 있을때 파라미터를 선택한는 방법은 아래와 같다. p : pacf에서 수렴하기 직전값. ( =2 ) d : adf테스트 및 추세의 가시적 확인으로 추세여부 확인( =1 ) q : acf에서 수렴하기 직전값 ( =3 ) P : pacf에서 계절성이 주기가 몇 번 반복 됐는지 확인 ( =3 ) D : 계절성이 있는지 확..

적분선형확률과정 ARIMA

1. ARIMA 분석 ARMA분석은 데이터에 추세가 있고 이 추세를 없애기 위해 ARMA에 (추세)차분을 추가로 적용한 상태를 말한다. (ARIMA = ARMA+차분) 즉 ARIMA(p,d,q)모델은 Y_t대신 (1-L)^d*Y_t 가 대입된 형태이다. acf결과 추세로 인한 비정상성이 보이고, 차분의 필요성이 있을 때 ARIMA(차분+ARMA적합) 분석을 수행한다. 2. 모수추정 ARMA와 마찬가지로 ACF와 PACF그래프를 보고 모수를 추정한다. 대략 아래와 같다. 3. 코드 import numpy as np import statsmodels.api as sm import matplotlib.pyplot as plt # 2차누적/1차누적/미누적 데이터생성 및 적분차수 이해 np.random.seed(..

AR, MA, ARMA, ARMAX

시계열 회귀분석의 종류인 AR, MA, ARMA 분석에 대해서 알아보고 실습을 진행해 본다. 1. AR, MA (1) AR(p) model Y_t가 Y_t의 p기 이전까지의 값에 의해 설명되는 모델 (2) MA(q) model Y_t가 현재영향(e_t)으로 부터 과거 q기 전까지 영향(e_t-q)에 의해 설명되는 모델 2. ARMA AR(p)와 MA(q)의 선형조합. 3. 파라미터 p,q는 어떻게 찾는가? AR과 MA를 이용하여 분석을 수행하기 위해서는 파라미터 p,q값을 분석자가 결정해야 한다. 이 파라미터를 찾는 방법은 ACF와 PACF를 사용한다. AR의 경우 PACF그래프에서 수렴하기 직전 마지막값이 p가 되고, MA의 경우 ACF그래프에서 수렴하기 직전값이 q가 된다. 이를 아래의 예시를 통해 ..