기본 콘텐츠로 건너뛰기

pandas_ta를 적용한 통계적 인덱스 지표

[data analysis]상관분석(Correlation analysis)

상관분석(Correlation analysis) 상관분석은 두 개 이상의 자료에 대한 상관 관계를 분석하는 것으로 분석의 모수는 상관계수(ρ) 가 됩니다. 식 1에서 나타낸 것과 같이 분석의 귀무가설은 ρ = 0입니다. 다시 말해 비교하는 자료들 사이의 상관성은 존재하지 않음을 검정하는 것입니다. H0 : ρ = 0, H1 : ρ ≠ 0 (식 1) 일반적으로 상관계수는 ρ 또는 r로 나타냅니다. 상관계수(r)에 대한 분포는 평균 0이며 범위는 [-1, 1] 이므로 그 분포의 분산은 1 - r 2 로 나타낼 수 있습니다. 이 확률변수는 경계값과 평균이 고정되므로 자유도는 n - 2인 t분포를 따릅니다. 그러나 자유도가 클 경우는 정규분포를 적용합니다. 확률변수의 표준오차와 검정통계량은 식 2로 계산됩니다. \begin{align}\text{SE}&=\sqrt{\frac{1-r^2}{n-2}}\\ \text{statistic}& = \frac{r-\mu_r}{\sqrt{\frac{1-r^2}{n-2}}}\\ & = \frac{r}{\sqrt{\frac{1-r^2}{n-2}}}\\ \text{SE}:&\,\text{표준오차}\end{align} (식 2) 식 2에서의 검정통계량은 상관계수를 표준화한 것으로 표준 정규분포 또는 표준 t 분포를 기반으로 검정합니다. 검정에 t-분포 또는 정규분포를 적용할 경우 통계량은 상관계수가 됩니다. 예 1) 일정기간의 kos와 ex의 일일 종가에 대한 상관분석을 실시합니다. ex kos 0 1260.91 2218.68 1 1270.10 2255.98 2 1279.08 2264.65 3 1271...

[data analysis] 공분산과 상관계수

공분산과 상관계수 연속변수일 경우 $\chi^2$ 검정 의 대상이 되는 교차표를 작성할 수 없습니다. 대신에 상관분석을 적용할 수 있습니다. 상관분석 은 두 개 혹은 그 이상의 연속변수들 사이의 관계를 측정하는 분석 방법입니다. 두 변수의 상관성을 시각적으로 나타내기 위해 산포도를 사용합니다. 그림 1의 (a)는 x와 y의 정비례 관계가 명확합니다. 반면에 (b)의 경우는 반비례관계를 보이며 (c)의 경우는 x와 y 사이에 어떠한 비례 관계를 특정할 수 없습니다. 이러한 관계는 상관계수라는 통계량을 사용하여 정량적으로 나타낼 수 있으며 이는 두 변수의 공분산과 각각의 표준편차와 관계됩니다. 그림 1. 두 변수의 (a) 정상관계 (b)역상관계 (c)상관성없음. plt.figure(figsize=(9, 4)) col=["blue","red","green"] lab=["a) direct","b) inverse", "c) no"] yT=[y, y1, y2] for i in range(3): plt.subplot(1,3,i+1) plt.scatter(x, yT[i], s=15, color=col[i]) plt.title(f"{lab[i]} proportion", fontsize=15) plt.xticks([]) plt.yticks([]) plt.xlabel("x") if i==0: plt.ylabel("y") plt.show() 그림 1(a)에서 각 변수의 평균들 μ x , μ y 와 임의의 점 x, y 사이에 각각의 편차를 x - μ x , y - μ y 를 측정합니다(식 1). 이 경우 x의 증가와 함께 y의 증가가 관찰되므로 두 편차의 곱 (x - μ x )(y -μ y )는 각각의 편차보다 증가하며 양수가 될 것입니다. 같은 ...

[data analysis] 카이제곱 검정($\chi^2$ test)

카이제곱 검정(χ 2 test) 카이제곱검정($\chi^2$ 검정) 은 카이제곱분포(chi-squared distribution) 를 기준으로 귀무가설을 검정하는 분석 방법입니다. 카이제곱분포는 2개 이상의 독립적으로 정규분포를 따르는 변수들의 제곱으로 생성됩니다. 예를 들어 식 1과 같이 표준화된 변수들의 제곱은 자유도가 1인 카이제곱 분포에 부합합니다. $$Y=\left(\frac{x_i-\mu}{\sigma} \right)^2$$ (식 1) 그러므로 카이제곱 분포에 부합한다는 것은 비교되는 샘플들 간의 독립임을 의미합니다. 즉, 카이제곱 검정의 귀무가설은 다음과 같습니다. H0: 각 그룹들은 독립입니다. 예 1) 코스피 지수(kos)에 대해 하루 앞선 원화 환율(ex)의 일일 시가 대비 종가의 상승과 하락에 대한 두 자료는 독립적임을 검정합니다. 이 자료를 작성하기 위해 FinanceDatareder.DataReader() 함수로 특정한 기간의 금융자료를 호출하였습니다. 호출된 자료는 연속변수로서 목록변수로 전환하기 위해 pd.cut() 함수를 적용합니다. 또한 두 데이터들을 결합하기 위해 pd.concat() 를 적용합니다. st=pd.Timestamp(2022,1,1) et=pd.Timestamp(2023, 4, 10) kos=fdr.DataReader('KS11', st, et)["Close"] ex=fdr.DataReader('USD/KRW',st, et)["Close"] kos=kos.pct_change()[1:]*100 ex=ex.pct_change()[1:]*100 kos1=pd.cut(kos, bins=[kos.min()-0.1, 0, kos.max()+0.1], labels=[0, 1]) ex1=pd.cut(ex, bins=[ex.min()-0.1, 0, ex.max()+0.1], labels=[0, 1]) data=pd.concat([ex...

[data analysis] FinanceDataReader에 의한 금융자료 호출

FinanceDataReader에 의한 금융자료 호출 파이썬 라이브러리인 FinanceDataReader를 사용하여 웹을 통해 다양한 금융데이터를 호출하여 사용할 수 있으며 이 데이터의 기본 구조는 pandas.DataFrame 구조로서 pandas의 여러 메소드나 함수를 적용하여 데이터를 조정할 수 있습니다. FinanceDataReader 라이브러리를 사용하여 국내외 다양한 자료를 입수할 수 있습니다. 이 모듈은 두개의 함수를 가지고 있습니다. StockListing(market): market에 포함된 종목의 코드, 이름, 개요 등을 호출 RX : KRX 종목 전체 OSPI : KOSPI 종목 OSDAQ : KOSDAQ 종목 ONEX : KONEX 종목 ASDAQ : 나스닥 종목 NYSE : 뉴욕증권거래소 종목 P500 : S&P500 종목 DataReader(symbol, start=None, end=None, country=None) 코드(symbol)에 대응하는 가격 데이터를 호출 시작 날짜만 입력하면 현재까지의 자료를 호출 import numpy as np import pandas as pd import FinanceDataReader as fdr import matplotlib.pyplot as plt df_krx=fdr.StockListing('KRX') df_krx.head(2) Code ISU_CD Name … 0 005930 KR7005930003 삼성전자 … 1 000660 KR7000660001 ...

[data analysis] 두 대규모 표본의 비교

두 대규모 표본의 비교 내용 두 독립집단의 비교 등분산인 두 소규모 표본의 비교 이분산인 두 소규모 표본의 비교 두 대규모 표본의 비교 중심극한정리 에 의하면 큰 규모의 표본은 정규분포에 부합합니다. 일반적으로 자료의 갯수가 30개 이상이면 정규분포를 따른다고 가정합니다. 이 경우는 모분산이 동일하다는 가정은 필요하지 않으며 두 표본으로부터 평균의 차 역시 정규분포를 가정할 수 있습니다. 그러므로 큰 규모의 표본들의 X-Y의 결합분포의 평균과 분산은 식 1과 같이 계산됩니다. \begin{align}μ_{\text{pred}}&= μ_x − μ_y\\ \sigma_{\text{pred}}^2 & = \frac{\sigma_x^2}{n_x}+\frac{\sigma_y^2}{n_y}\quad \text{for:}\; \sigma^2\to \text{known}\\\sigma_{\text{pred}}^2 & = \frac{s_x^2}{n_x}+\frac{s_y^2}{n_y}\quad \text{for:}\; \sigma^2\to \text{unknown}\\ &\mu,\, n:\,\text{평균, 샘플의 크기}\\& \sigma,\, s:\, \text{모표준편차, 표본표준편차} \end{align} (식 1) 예 1) 다음은 일정기간 코스피(kos)지수와 다우(dj)지수의 일일 시가 기준 종가의 변화율에 대한 자료입니다. kospi dow 0 -1.079 NaN 1 -0.551 -0.038 2 2.267 0.315 3 -0.157 -0.788 ⋮ ⋮ ⋮ ...