1. 기술 66

[Dolt + Python + MySQL] 금융 분석을 위한 재무제표 데이터베이스 구축과 실행

재무제표 데이터를 확보할 때 yfinance를 많이 사용하며, 긴 시계열에 대해서는 공시자료를 스크래핑하여 필요한 table 영역만 적절히 포멧팅할 수도 있다. 가장 좋은 건 yfinance 같은 무료 api를 활용해 적정 주기마다 데이터를 가져와 적재해 두는 것인데, 상장된 모든 주가 재무정보를 개인 PC나 클라우드 서버에 저장해 두는 건 개인으로서 여간 부담되는 일이 아니다. 이때, 약소하게나마 대안으로 사용해 볼 수 있는 것이 다른 사람들이 공개해 둔 DB인데, DropBox나 DoltHub가 대표적이다. 코드가 익숙하다면 DoltHub에서 매우 쉽고 빠르게 DB 전체를 Pull 할 수 있으며 아래 예시로 사용한 1.26 GB짜리 재무데이터를 수 초 내에 모두 다운로드 가능하다.DoltHub는 코드..

주가 데이터 분석을 위한 로그 변환의 의미, ln(1+return)과 return의 실질적 근사(+파이썬 코드)

주가 데이터를 그대로 분석하기에는 여러 가지 제약이 있다. 단일 주가를 분석할 때에는 그 자체로 정상성이 확보되어 있지 않다는 점, 여러 주가를 비교분석할 때에는 각 종목마다 분포(스케일)가 다르다는 점이 대표적이다. 따라서 일반적으로 금융 시장 매크로를 분석하거나 머신러닝 모델을 구축할 때 price가 아닌 return을 활용하는 경우가 많다. 더 나아가 논문 수식이나 자료를 찾다 보면 단순히 net return(이하 return)을 쓰기보다 로그를 취한 ln(1+return)이 빈번하게 등장한다. 직관적으로 ln(1+return)은 return과 (거의) 같다. 정확히 말하면 로그 수익률 ln(1+return)은 연속복리 개념을 가정하므로 실제로는 수익률 단위가 분, 초, 밀리세컨드 이하로 내려가야만..

Feature Importance

Feature Importance and Permutation Feature Importance reference : Feature selection : feature importance vs permutation importance Permutation feature importance(sklearn.org) The Mathematics of Decision Trees, Random Forest and Feature Importance in Scikit-learn and Spark 머신러닝의 해석 2편 - 1. 트리 기반 모델의 Feature Importance 속성 랜덤 포레스트에서의 변수 중요도(Variable Importance) 3가지 Feature Importance(변수 중요도) - 트리 기..

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..

범주형/연속형 변수 조합에 따른 가설 검정 방법

1. 단일변수 1-1. 연속형 정규성 검정 One Sample T-Test(일표본 평균검정) # One Sample T-Test : ## 귀무가설 H0 - 특정 값은 집단의 평균과 다르지 않다. (H0확률 = p-value, 0.05 미만이면 기각) ## 연구가설 H1 - 특정 값은 집단의 평균과 다르다. stats.ttest_1samp(Series, value) # 집단의 평균(Series) vs 검증하고자 하는 값(value) 1-2. 범주형 비율 검정(ex. 연구가설 H1-집단 내 남녀 비율은 차이가 있다) 2. 다변수 2-1. 범주형 'X' & 연속형(정규분포) 'Y' Two Sample T-Test(이표본 평균검정), 등분산 검정(Levene Test) 등분산 검정 결과에 따라(이분산, 등분산)..

CycleGAN vs StarGAN

background Conditional GAN - latent vector(random)와 함께 Condition(y)을 받을 수 있다(무작위가 아닌 목표로 하는 이미지를 생성) pix2pix - 이미지(X, Condition)를 받아서 이미지를 돌려준다. y(label, condition)를 따로 받는 것은 아니지만 X 자체를 Condition으로 입력 받아 목표로하는 이미지를 생성하기 때문에 Conditional GAN에 기반을 둔다고 볼 수 있다. CycleGAN , StarGAN은 모두 Conditional GAN 기반의 pix2pix 구조를 사용한다. CycleGAN은 이미지를 받아서 이미지를 돌려주고, StarGAN은 이미지와 y(도메인 Vector)를 추가로 받아서 y에 맞는 이미지를 돌려..

StarGAN v2

StarGAN v2 - Basic Concept reference : github/clovaai/stargan-v2 github/yunjey/stargan StarGAN v2: Diverse Image Synthesis for Multiple Domains 도메인과 스타일, 모두 잡았다! StarGAN v2 기존 StarGAN는 하나의 모델로 하나의 도메인에 대해 학습, Generate하는 것이 아닌, 하나의 모델로 다양한 도메인을 표현해낼 수 있었다면 StarGAN v2는 이에 더해 여러 도메인을 결합하여 동시에 표현해낼 수 있다. 예를 들어, 기존의 StarGAN은 입력받은 하나의 이미지가 서로 다른 다양한 도메인을 표현하도록 가짜 이미지를 생성해낸다. 출처 : StarGAN - Official/RE..