Python(81)
-
포아송 분포
만약 우리가 금은방을 운영하고 있다고 가정해보겠습니다. 퇴근 후 한 시간에 도둑이이 10명 올 확률은 어떻게 될까요? 100명이 올 확률은 어떻게 될까요?(도둑이 오면 안되겠지만요...) 이와 같이 일정 기간 동안에 확률이 낮은 특정 사건이 일어날 확률을 나타내기 위해 활용하는 것이 포아송 분포입니다. 다시 위의 예를 좀 더 깊게 들여보다면 저 확률을 이항분포로 나타낼 수 있지 않을까? 하는 생각이 드실 수도 있습니다. 다시 말하면 1분에 도둑이 올 확률이 0.01 오지 않을 확률이 0.99라면 이는 결과가 두 가지 뿐인 베르누이 시행으로 간주할 수 있습니다. 따라서 한 시간(60분)은 베르누이 시행을 60번 시행했다고 볼 수 있을 것입니다. 하지만 도둑이 1분에 한명만 오는 것이라고 한정할 수 없습니다..
2020.07.23 -
RNN을 이용한 주가 예측
시계열 자료를 분석하기 위해서 딥러닝이 최근에는 활발히 적용되고 있습니다. 시계열 정보를 다루는 딥러닝 중에가서 가장 기본적인 RNN을 활용해 주가를 예측(Fitting)해보도록 하겠습니다. 지난번에 했던 단순/다항 회귀분석이나 이번에 작성할 RNN 모형 모두 정확한 예측보다는, 적용될 수 있는 예측방법들이 이러한 것들이 있다는 것을 정리하고자 합니다. 따라서 각 모형에 대한 자세한 이론이나 설명보다는 간단한 모델들을 직접 구현하면서 정리하는데 주안점을 두고 있습니다. 먼저 필요한 Module을 Import하고 크롤링을 통해 수집했던 주가 데이터를 불러옵니다 import pandas as pd import numpy as np import torch import torch.nn as nn import o..
2020.07.22 -
베르누이 시행과 이항 분포
[베르누이 시행] 실험을 통해 얻을 수 있는 결과가 두 가지만 있다고 생각해보겠습니다. 예를 들어 동전을 던지는 실험을 했을 때 우리가 얻을 수 있는 결과는 앞면(H)와 뒷면(T) 두 가지 뿐입니다. 예와 같이 두 가지의 결과만 반복해서 나오며, 아래와 같은 조건을 만족하는 경우 이를 베르누이 시행이라고 부릅니다. 1) 각 시행은 성공(S), 실패(F)의 두 결과만을 갖는다(우리가 흔히 사용하는 성공의, 실패의 의미와는 무관, 결과가 두 개 뿐임을 강조) 2) 각 시행에서 성공할 확률 P(S)=p, 실패활 확률 P(F)=q(=1-p)로 그 값이 일정함 3) 각 시행은 서로 독립으로 각 시행의 결과가 다른 시행의 결과에 영향을 미치지 않음 [이항분포(Binomial distribution)] 위와 같은 조..
2020.07.20 -
다항회귀모형을 이용한 주가 예측
지난번 포스팅에서 단순 회귀를 이용하여 주가의 추세를 분석해 보았습니다. 하지만 단순 회귀는 선형적으로만 추세를 추정하기 때문에 비선형성을 전혀 반영할 수 없었습니다. 그렇기 때문에 이번에는 비선형성을 반영할 수 있는 다항회귀모형(Polynomial Regression)을 활용하여 주가를 분석해 보도록 하겠습니다. 기본 단순 회귀 모형이 Y= αX+β의 모습을 가졌다면 다항회귀모형은 아래와 같은 모습을 가졌습니다. 기존의 독립변수 X를 제곱한 값을 또 하나의 독립 변수로 활용하는 것입니다. 이렇게 되면 독립변수 X와 종속변수 y간의 비선형적인 관계도 분석할 수 있게 됩니다. 단순회귀모형 포스팅(https://direction-f.tistory.com/8)에서와 마찬가지로 필요한 Module과 수집한 삼성..
2020.07.15 -
단순회귀모형을 이용한 주가 예측
앞의 글(https://direction-f.tistory.com/6)에서 어떻게 하면 주가 데이터를 수집할지에 대해서 정리하였습니다. 이번에는 수집한 데이터를 활용하는 방법에 대해서 정리하도록 하겠습니다. 먼저 기본적인 모형인 단순회귀모형을 이용하여 주가를 예측하는 모델을 구성해보겠습니다. 사실 단순회귀모형은 주가를 예측하는데 탁월한 예측력을 제공해주는 모형은 아닙니다. 왜냐하면 주가는 변동성이 심해, 올라갔다 내려갔다를 반복하는데, 회귀모형은 이러한 변동성을 잡아내기 어렵기 때문입니다. 그래서 정확한 예측을 위해선 변동성을 일부 반영 할 수 있는 ARIMA/ARIMAX같은 시계열 모형이나, RNN/LSTM과 같은 딥러닝 모형이 활발히 적용되고 있습니다. 그럼에도 불구하고, 전문적인 분석모델링을 하는 ..
2020.07.13 -
금융 데이터 수집
금융 분석을 하기 위해서 주가 데이터를 가져오는 방안에 대해서 정리해보려고 합니다. 주가 데이터를 가져오는 방안으로는 크게 3가지가 있는 것 같습니다. 1) 수동으로 주가 데이터를 다운로드 받는 방법 2) 증권사 API를 통해 수집하는 방법 3) 웹 크롤링(네이버 금융)을 통해 수집하는 방법입니다. 저의 경우에는 키움증권 API를 통해 데이터를 수집하기도 하지만 효율이 떨어지는 것 같습니다. 단순히 분석을 위해서는 주로 1)수동 다운로드 2) 웹 크롤링을 주로 활용하고 있습니다. 따라서 이 두가지 방안에 대해서 간략히 정리하도록 하겠습니다. 먼저 수동으로 다운로드 받는 경우입니다. 저의 경우에는 이 때는 Yahoo Finance(https://finance.yahoo.com/)를 자주 활용하는데요, Ya..
2020.07.12