파이썬(20)
-
Alpha를 찾아서 > 금융 데이터 다루기
금융 데이터는 기본적으로 시계열적으로 이루어져 있습니다. 이러한 시계열성을 가진 데이터를 다루기 위한 아주 기본적인 pandas활용 방법과 금융 Factor들을 쉽게 계산할 수 있도록 도와주는 패키지에 대해서 다루어보도록 하겠습니다. [Pandas] 사실 Pandas와 Numpy는 너무나도 잘 알려져 있는 패키지이기 때문에 익숙한 내용이지만, 예전에 했던 것을 다시 복기해보는 의미에서 시계열 데이터를 다룰때 유용하게 쓸 수 있는 method들을 정리해보겠습니다. 시계열 데이터를 다루기 위해서는 기본적으로 시차별로 수익률을 계산한다거나, 이번달 주가와 저번달 주가의 차이를 구한다거나 하는 시간의 축을 비교하거나 변경하는 일을 많이 하게 됩니다. Resample method를 활용하면 일별 자료를 월별 자료..
2023.08.01 -
Alpha Factor 탐색 > Value Factor
Value Factor를 활용하여 투자를 하는 사람들은 결국 기업이 가친 가치만큼 주가가 올라가거나 또는 내려간다고 생각을 합니다. 주요한 Value Factor로는 Cash flow yield, Free Cash flow yield, 배당율, Earning yield(주가대비 수익) 등이 있습니다. 정말 많은 Value Factor들이 있기 때문에 무엇을 적용할지를 결정하는 것부터가 중요한 일이라고 볼 수 있을 것입니다. 일단 여기서는 Python을 활용해서 Free Cash flow yield를 계산하는 방법을 다루어보겠습니다. 이 방법을 이용해서 재무정보와 주가 정보를 불러와서 자신이 활용하고 싶은 Factor들을 만들어서 활용하시면 좋을 것 같습니다. [Free Cash flow yield] Ca..
2023.07.20 -
Alpha Factor 탐색 > Momentum
주가의 방향을 예측하는데 있어 Momentum을 나타내는 Factor들은 항상 많이 활용되어지고 있는 요인들중에 하나입니다. 이러한 Momentum이 어떻게 보면 군중들이 어디에 집중하고 있고 어디에 쏠리고 있는지를 판단할 수 있는 요소이기 때문입니다. 그리고 결국 주가는 군중들이 결정한다고 본다면 Momentum은 꼭 고려가 되어야할 지표임에는 틀림없습니다. Momentum을 나타내는 지표가 많이 있게지만, 대표적인 지표를 몇개 선정하여 이를 활용해보도록 하겠습니다. 1. RSI(Relative strength index(RSI)) RSI는 0부터 100까지의 숫자를 가지며, 100에 가까울 수록 초과매수가 일어난 것으로 보고있습니다. 따라서 이를 활용하여 단순한 규칙을 만든다면 70이상일 때는 판매하..
2023.07.03 -
Decision Tree - Boosting
Boosting은 용어에서 느껴지듯이 점점 강력한(예측력, 정확도가 높은) 모델을 만들어가는 알고리즘입니다. Weak learner에서 Strong learner로 발전하게 되는데, parallel하게 모형을 학습하여 조합하는 bagging과 다르게 sequential하게 만들어진 모델들을 조합하는 방식입니다. Boosting 모델 중에서 gradient boosting model - 2tree을 예시로 Boosting concept를 정리해보겠습니다. 1) 실제값에 적합, $y=f_1(x)$ 2) 첫번째 모형의 오차에 적합, $y-f_1(x) = f_2(x)$ 3) 최종 예측값 결정, $\widehat{y} = f_1(x) + f_2(x)$ 위에서 확인하는 것처럼, 첫번째 모형의 결과가 두번째 모형에도..
2022.01.02 -
Decision Tree - Bagging
Bagging은 Bootstrap방법을 활용하는 방법으로, Decision Tree 모델의 최적의 성능을 이끌어내는데 많은 기여를 하고 있는 개념입니다. 앞서 정리한 것 처럼 Decision Tree는 상당히 과적합 문제에 취약하게 됩니다. Bagging을 활용하면 이와 같은 문제점을 다소 감소시킬 수 있습니다. Bagging은 Bootstrap aggregation의 약자인데, 이름에서 보는 것과 같이 Bootstrpa을 통해 Sample들을 만들고 여러 모델들의 결과 값을 집계하는 것입니다. 이를 통해 결과값의 안정성 확보를 도모합니다. 예시적으로, n개의 독립된 Sample들 $Z_1$,...,$Z_n$이 있다고 했을 때 이 Sample들의 평균의 Varicance는 $\sigma^2/n$이 되면서..
2021.10.19 -
모델 평가 및 선정 > Cross-Validation
앞서 설명했던 AIC, BIC, SRM과 같은 기준값을 활용하는 것보다 더 활발하게 활용되고 있는 모형 선택 방법은 Cross-Validation입니다. 가장 적용하기가 용이하고, 유연하게 활용할 수 있으므로 많은 사람들이 선호하는 방법입니다. 특히 Likelihood나 추정한 Parameter나 error에 대한 분포를 확인하기 어려운 경우에도 활용할 수 있다는 장점이 있습니다. [K-Fold Cross-Validation] 데이터가 충분하다면 K-fold Cross-Validation은 가장 많이 적용되고 있는 방법론입니다. 데이터를 비슷한 사이즈의 K그룹으로 나누어서 검증하는 방안입니다. 예를 들어 데이터를 {A,B,C,D,E} 5개 그룹으로 나눈다면, {A,B,C,D} 데이터로 학습하고 {E} 데..
2021.06.10