통계 9

미 장단기 국채 금리차 기반 경기 침체 예측 분석(ARIMA + Probit)

본 글에서는 ARIMA 모형을 활용해 미래 미국채 Spread 추이를 continuous하게 예측하고, 이어서 Probit 모형을 통해 ARIMA 예측값을 경기침체 여부로 변환한다. 경제 예측 모델링을 수행할 때에는 가급적 단순한(파라미터가 적은) 모델, 해석가능한 모델을 사용하는 것이 좋다. 일반적인 인식과 달리 경제 데이터는 딥러닝과 같은 모델 아키텍처로 적합시킬 만큼 대용량이 아닐 뿐더러 제대로 적합되지 않았을 때 Fat Tail Risk가 미치는 영향이 치명적일 수 있기 때문이다.따라서 시계열 모델 파라미터를 분리 해석할 수 있는 ARIMA 모형, 종속변수가 binary(이진) 변수일 때 yes or no 에 대한 발생 확률을 가장 단순하게 설명가능한 Probit 모형을 사용하고, 이를 통해 현재..

주식 차트만 보는 기술적 분석의 무용론

아래 차트를 보면 어떤 생각이 드는가? 전고점을 뚫으면 우상향 할 것이고, 뚫지 못하면 박스권이 형성될 것이라 믿는가? 그렇다면 이 그래프는 어떤가? 완전히 추세가 꺾여 가망이 없어 보이는가? 안타깝게도 둘 다 정규분포로부터 발생시킨 완벽한 무작위 데이터다. 즉, 차트만 보고 우상향 한다, 박스권이다, 추세가 꺾였다 등의 기술적 분석은 아무 근거가 없다는 것이다. 정규분포로부터 발생시킨 무작위 데이터라 함은 아래와 같이 일간 수익률을 평균이 0, 분산이 1인 랜덤한 숫자를 누적해서 쌓아 올린 것을 의미한다. 이를 연결한 것이 총 500일 치의 일간 수익률 분포다. 그리고 이것을 누적해서 쌓아 올리면(cumulative sum) 위에서 봤던 500일간의 누적 수익률, 즉 약 2년 간의 주식차트를 로그변환시..

2. 도메인/금융 2023.04.14

sklearn - classification_report()

sklearn.metrics.classification_report reference : scikit-learn.org, sklearn.metrics.classification_report, document scikit-learn.org,sklearn.metrics.f1_score, document stackoverflow, How to interpret classification report of scikit-learn?,LaSul Answered Accuracy(정확도), Recall(재현율), Precision(정밀도), 그리고 F1 Score, eunsukimme Document : sklearn.metrix.classification_report(y_true, y_pred, *, Labels=N..

pandas - corr()

df.corr(method='s') reference document : pandas.DataFrame.corr 비선형 상관관계 : 스피어만 상관계수, 켄달타우 pandas 데이터프레임 객체에 대해 corr()함수를 사용할 수 있다. corr()은 누락값을 제외하고 전체(dataframe) 컬럼들 간의 상관도를 계산한다. 계산에 사용되는 상관계수의 default값은 pearson 상관계수로, 모든 변수가 연속형이고 정규분포를 띄는 경우 사용할 수 있다. 만약 정규분포를 따르지 않는 변수가 포함되어 있다면 보편적으로 spearman 상관계수를 사용한다. spearman 상관계수는 비모수적 방법 (모수를 특정 분포로 가정하여 접근하는 방법론) 으로써 값에 순위를 매기고 순위에 대해 상관계수를 구하는 방식이다..

Kolmogorov Smirnov

Kolmogorov Smirnov reference document : scipy.stats.kstest Youtube : 파이썬을 활용한 통계분석 - (33)콜모고로프-스미르노프 검정(Kolmogorov-Smirnov Test) 많은 통계 분석 기법의 경우 표본이 정규분포를 따른다라는 가정을 전제로 한다. 따라서 데이터를 다룰 때 각 컬럼이 정규분포를 띄지 않는 것을 확인했다면 반드시 정규화를 수행해야 한다. 또한, 정규화를 수행한 뒤 정규성 검사를 통해 정규성 조건의 충족 여부를 통계적으로 검증해야 하는데, 이 때 보편적으로 사용하는 기법 중 하나가 Kolmogorov Smirnov Test이다. Kolmogorov Smirnov Test는 정규분포 뿐만 아니라 특정 분포를 따르는지 판단할 수 있는 ..

statsmodels - ols

OLS - Regression reference 선형회귀분석 및 OLS document : Ordinary Least Squares Python 기초 통계 - 회귀분석 실시하기 회귀분석은 파이썬에서 제공하는 대표적인 통계 분석 패키지 statsmodels를 불러와 간단히 사용할 수 있다. import statsmodels.api as sm model = sm.OLS(y, X) # y : 종속 변수(시리즈), X : 독립 변수 집합(데이터프레임) result = model.fit() result.summary() 혹은, 함수 식 표현을 활용할 수도 있다. import statsmodels.api as sm model = sm.OLS.from_formula('y ~ x1+x2+x3', data=df) res..

ROC Curve

Precision and Recall in an anomaly detection situation reference : document : sklearn.metrics.plot_roc_curve Classification - ROC & AUC ROC Curve, devopedia Measuring Performance: AUC(AUROC) ROC 커브는 False Positive Rate(FPR)을 기준으로 True Positive Rate(TPR)의 변화도를 표현한다. 아래 첫번째 분포곡선에서 임계값(beta)이 이동함에 따라 TPR과 FPR이 변화한다는 것을 예상해볼 수 있다. 임계값이 우측으로 이동하면 FPR과 TPR 모두 줄어든다. 반대로 임계값이 좌측으로 이동하면 FPR과 TPR모두 커진다. 즉..

Precision vs Recall

Precision and Recall in an anomaly detection situation reference : Classification : Precision and Recall 분류성능평가지표 - Precision(정밀도), Recall(재현률) and Accuracy(정확도) Examples : Anomaly Detection 실제 이상 징후 : 1 실제 정상 징후 : 0 Timeseries1112131415161718192022232425 Actual-Anm 0 0 0 0 0 0 0 0 0 1 0 1 1 1 threshold > Detect_Anm 0 0 0 0 0 0 0 0 0 0 0 1 1 1 True-Pstv T T T False-Ngtv F True-Ngtv T T T T T T T..

sklearn - confusion_matrix()

sklearn.metrics.confusion_matrix reference : sklearn.metrics.confusion_matrix, scikit-learn.org 분류 성능평가, 데이터사이언스스쿨 Document sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None) 사용 예시 from sklearn.metrics import confusion_matrix y_true = [2, 0, 2, 2, 0, 1] y_pred = [0, 0, 2, 2, 0, 2] confusion_matrix(y_true, y_pred) array([[2, 0, 0], [0, 0, 1], [1, ..

1