기초지식
-
[4강] 데이터의 산포도 측정(분산, 표준편차, 범위 등)기초지식/Quantopian(강의노트) 2024. 11. 27. 22:02
산포도(Dispersion)는 데이터가 평균이나 중앙값 같은 중심값에서 얼마나 퍼져 있는지를 나타내는 값이다. 산포도는 범위(Range), 표준편차(Standard Deviation) 등으로 측정한다.범위(Range)numpy로 난수 생성하기데이터의 산포도 개념을 파악하기 위해서 분포를 가진 데이터를 먼저 만들어야 한다. 이 때 numpy 라이브러리를 이용하면, 손쉽게 난수 데이터를 만들 수 있다. 난수를 생성하기 위해서는 난수 생성기를 초기화 해주는 작업이 필요한데, numpy 의 random 클래스의 seed 함수를(np.random.seed()) 사용하면 된다. 이 때 seed()와 같이 괄호에 아무값도 안 넣으면 시스템 시간에 따라 seed값이 세팅된다. 시스템 시간은 계속 변화하므로 난수 생성 ..
-
[3강] 데이터의 중심 측정(scipy, numpy 사용)기초지식/Quantopian(강의노트) 2024. 11. 7. 07:59
산술평균scipy 와 numpy 라이브러리scipy와 numpy는 기본적인 수치 연산 기능을 지원하고, 행렬의 연산 기능을 제공하는 라이브러리이다. numpy를 바탕으로 과학 및 공학계산 등 추가적인 복잡한 계산기능을 추가한 것이 scipy 이므로 기본적으로 numpy를 이용해서 계산하되 numpy 라이브러리에서 해결되지 않는 것들을 scipy를 이용해서 처리하면 된다. 두 라이브러리 모두 설치하고자 하는 가상환경에 들어가서 아래와 같은 설치 명령어를 입력하면 설치가 가능하다. pip install numpypip install scipy산술평균의 정의산술평균은 관측값의 합을 관측값의 개수로 나눈 값이다. 아래와 같이 8 개의 숫자배열이 있다고 가정하자. 숫자배열의 합을(np.sum(숫자배열)) 숫자배열..
-
[2강] 데이터 시각화(Matplotlib을 활용)기초지식/Quantopian(강의노트) 2024. 11. 2. 09:19
데이터 시각화 : Matplotlib 라이브러리Matplotlib은 파이썬의 데이터 시각화 라이브러리로, 데이터를 차트나 그래프 형태로 시각적으로 표현하는 데 사용된다. 설치는 anaconda prompt 나 cmd 창에서 "pip inatall matplotlib" 명령어를 입력하면 된다. 데이터 입수 : yfinance 라이브러리 사용yfinance는 야후 파이낸스 데이터를 파이썬에서 활용할 수 있게 해주는 라이브러리이다. 야후 파이낸스 (https://finance.yahoo.com/)를 직접 검색하여 찾아야 하는 정보를 파이썬에서 함수를 사용해서 받아볼 수 있게 되는 것이다. anaconda prompt 나 cmd 창에서 "pip inatall yfinance" 명령어를 통해서 설치가 가능하고, ..
-
[1강] Jupyter Notebook(주피터 노트북) 활용하기기초지식/Quantopian(강의노트) 2024. 10. 27. 23:48
Jupyter Notebook(주피터 노트북)의 특징주피터 노트북(Jupyter Notebook)은 파이썬 코드를 작성하고 실행할 수 있는 에디터 중 하나이다. 아래 그림 1에서 볼 수 있는 것처럼 일반적인 에디터는 그림 1의 좌측처럼 결과 1, 2, 3을 한꺼번에 볼 수밖에 없는데, 주피터 노트북은 코드를 단계적으로 실행하면서 결과 1, 2, 3을 단계적으로 확인할 수 있다. 따라서 주피터 노트북에서는 첫 번째 코드 셀을 완성하여 결과를 본 뒤, 두 번째 코드 셀을 이리저리 조작하여 결과의 변화를 살펴보는 작업이 가능해진다. 이런 작업은 데이터 분석과 시각화, 머신러닝, 퀀트 분석 등에서 주로 활용하는 작업 방식이다. 아나콘다 네비게이터로 Jupyter Notebook(주피터 노트북) 연결 아나콘다 ..
-
[4장]ISL with R : 로지스틱회귀 LDA QDA 실습 in R(재무지표를 통한 상승주 분류)기초지식/ISL with R(통계학) 2024. 3. 14. 07:59
재무지표를 통한 부도 예측 로지스틱회귀, LDA, QDA라는 툴을 투자에 적용하면 내가 찍은 주식이 오를지 떨어질지 예측하는데 쓸 수 있다. ISL with R 4장에서 살펴본 로지스틱회귀, LDA, QDA 모두 다양한 투입변수를 통해서 어떤 결과로 분류할 수 있는지 예측하는 모델이라는 점에서 다양한 투입변수를 통해서 상승할 종목인지, 하락할 종목인지 판단할 수 있는 것이다. 이때 유용한 투입변수가 될 수 있는 것이 각종 재무지표이다.( 주요 재무비율 통한 기업 분석 참조) 이번 분석에서는 2023년 3분기 매출원가율, 부채비율, 순이익증가율 이라는 세 가지 요소가 2024년 2월 말 주식의 상승 여부와 어떻게 작용하는지를 볼 것이다. 회사별 재무비율은 금융감독원에서 제공하는 전자공시시스템인 다트(htt..
-
[4장]ISL with R : QDA(이차판별분석)기초지식/ISL with R(통계학) 2023. 7. 20. 06:28
선형판별분석(LDA: Linear Discriminant Analysis)과 이차판별분석(QDA: Quadratic Discriminant Analysis) LDA는 먼저 클래스 간의 분포가 정규분포를 따르며, 각 클래스가 다른 평균 동일한 분산을 가질 때 독립변수(x)를 여러 클래스(k 개의 클래스) 중 어디에 속하는지를 판별하는 방식이었다. 여기에서 각 클래스의 분산이 다를 수도 있다는 가정을 추가한 것이 QDA이다. QDA의 판별함수 도출(p>1인 경우) QDA의 판별함수를 계산할 때는 LDA의 판별함수 계산과정에서 "각 클래스별 다른 공분산 행렬"이라는 가정만 추가해 주면 된다.([4장]ISL with R : LDA(선형판별분석) 참조 ) QDA도 LDA와 마찬가지로 아래와 같은 베이즈 정리에서 ..
-
[4장]ISL with R : LDA(선형판별분석)기초지식/ISL with R(통계학) 2023. 7. 8. 07:25
로지스틱회귀 분석과 선형판별분석(LDA: Linear Discriminant Analysis) ISL with R 4 장에서는 로지스틱 회귀분석 외에 선형판별분석(LDA)라는 분류 분석을 소개한다. 로지스틱 회귀분석은 어떤 분포에 대한 가정없이 우도함수의 경사하강법을 통해서 회귀계수를 찾고 오즈(Odds)와 로짓(Logit)을 통한 판별을 했다. LDA 는 데이터의 분포가 정규분포를 따르며, 클래스별 공분산 행렬이 동일할 때 독립변수(x)를 여러 클래스(k 개의 클래스) 중 어디에 속하는지를 판별하는 방식이다. LDA는 추가적인 가정을 필요로 하지만 여러 클래스가 있는 경우, 표본이 작고 분포가 정규분포인 경우에는 로지스틱 회귀분석보다 효과가 좋다. 독립변수가 하나일 때(p=1) LDA는 확률에서 베이즈..
-
[4장]ISL with R : 로지스틱 회귀(회귀계수의 계산2: 최적해 도출)기초지식/ISL with R(통계학) 2023. 4. 9. 07:24
경사하강법을 통한 회귀계수 찾기 [4장]ISL with R : 로지스틱 회귀(회귀계수의 계산1: 우도함수와 경사하강법)에서 우리는 아래 식과 같은 로그우도함수의 미분값(경사)을 구했다. 이제 b_j 회귀계수를 조금씩 늘려나가면서 최적의 경사를 찾으면 된다. 아래 그림 1과 같은 과정을 거치는 것이다. 여기서 경사값이 더 이상 줄거나 늘지 않는 상태를 만드는 b_j 계수 값이 최적값이 된다. 경사하강법에서 b_j 계수의 초기값은 보통 0으로 설정한다. 0부터 b_j 값을 조금씩 늘려나가면서 최적의 경사를 찾게 되는데 이 "조금씩"을 학습률(Learning rate)이라고 한다. 위 그림 1의 화살표의 크기를 뜻한다고 보면 된다. 위 그림 1의 화살표의 크기가 너무 크면 최적값을 지나칠 수도 있고, 너무 작..