기초지식/Quantopian(강의노트)
-
[6강] 데이터 상관관계 분석기초지식/Quantopian(강의노트) 2025. 2. 1. 10:47
상관계수(Correlation coefficient)공분산의 의미상관계수는 두 변수의 관계가 얼마나 선형적인지를 측정한다. 상관계수를 구하기 위해서는 먼저 공분산을 알아야 한다. 공분산(Cov(X, Y))은 두 변수 X와 Y가 어떻게 함께 변동하는지 측정하는 지표로 아래 식으로 측정한다.상관계수의 의미공분산을 활용하여 아래와 같이 상관계수를 구할 수 있다. 상관계수는 결국 공분산을 각각의 표준편차로 정규화 한 값이다. 정규화가 되지 않은 공분산의 크기만으로는 다른 데이터와의 비교가 불가능하기 때문에 표준편차로 정규화한 상관계수를 데이터 분석에 주로 사용한다. 정규화 과정을 거쳐서 구한 상관계수는 항상 -1에서 1 사이의 값을 가지고, 1에 가까울수록 완전히 우상향 선형 관계를, -1에 가까울수록 완전히 ..
-
[5강] 왜도와 첨도를 활용한 자크베라 검정(정규성 검정)기초지식/Quantopian(강의노트) 2024. 12. 7. 17:46
정규성 검정(Jarque-Bera Test: 자크베라 검정)데이터가 정규분포라면 평균을 중심으로 대칭적이고, 꼬리가 점차 얇아지는 종모양을 가졌을 것이다. 따라서 왜도는 0이 되고, 첨도는 3이 된다. 이것이 성립한다면, 많은 데이터의 통계적인 추론들이 가능해진다. 하지만 실제 금융데이터가 정규성을 만족한다는 보장이 없으므로 정규성 검증을 실시한 후 그것을 감안하여 추가적인 분석을 실행한다. [5강] 통계적 지표(왜도와 첨도)에서 살펴본 왜도와 첨도를 통해서 데이터의 정규성을 판단하는 한 방법이 자크베라 검정이다. 먼저, 귀무가설과 대립가설을 세운다.H0(귀무가설): 데이터는 정규분포를 따른다.H1(대립가설): 데이터는 정규분포를 따르지 않는다.귀무가설은 옳다고 하는 주장이고, 대립가설은 귀무가설에 대립..
-
[5강] 통계적 지표(왜도와 첨도)기초지식/Quantopian(강의노트) 2024. 12. 3. 07:53
왜도(Skewness)[4강] 데이터의 산포도 측정(분산, 표준편차, 범위 등)에서 살펴본 분산과 같은 측정방법은 한계가 있다. 먼저, 데이터가 대칭적인지를 알 수 없다. 평균을 기준으로 큰 값이 많은지 작은 값이 많은지 아니면 값들이 균등하게 분포되었는지 알 수가 없다. 이것을 측정하는 것이 왜도이다.왜도의 계산은 데이터 각 값과 평균의 차이를 세제곱 한 값을 평균하면 된다. 여기에 표준편차 한 단위 당 값을 구하기 위해서 표준편차를 세제곱해서 나눠준다. 데이터 각 값과 평균의 차이를 세제곱함으로써 평균으로부터 멀리 있는 값에 가중치를 준다고 생각하면 된다. 그리고 세제곱을 해 주므로 +, - 기호를 통해서 평균을 기준으로 큰 값인지 작은 값인지 구분해 줄 수 있다.양의 왜도 값을 가지면, 오른쪽 꼬리..
-
[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(주피터 노트북) 연결 아나콘다 ..