기본 콘텐츠로 건너뛰기

라벨이 correlation인 게시물 표시

[matplotlib]quiver()함수

[pandas]데이터 간의 상관성(correlation) 찾기

데이터 간의 상관성(correlation) 찾기 데이터 간의 상관성을 분석합니다. 이 분석은 두개 이상 데이터들 사이의 상관성을 나타내는 것으로 인관관계를 나타내는 것은 아님을 주의해야 합니다. 다음은 yfinance 패키지를 적용하여 kospi 지수(kos), 원화-미달러(krw), 그리고 나스닥 지수(nsq)의 일일 종가자료를 호출하여 사용합니다. import numpy as np import pandas as pd from sklearn.preprocessing import StandardScaler import yfinance as yf import matplotlib as mpl import matplotlib.pyplot as plt plt.rcParams['font.family'] ='NanumGothic' plt.rcParams['axes.unicode_minus'] =False import seaborn as sns %matplotlib inline fontdict={"fontsize":12, 'fontweight': "bold"} 호출한 자료들의 kos-kre, kos-nsq, 그리고 krw-nsq를 비교할 것으로 각 데이터간의 scale의 차이를 고려하여 모두 표준화하여 사용합니다. st=pd.Timestamp(2023, 10, 17) et=pd.Timestamp(2024, 10, 26) kos=yf.download("^KS11",st, et)["Close"] krw=yf.download("KRW=X", st, et)["Close"] nsq=yf.download("^IXIC", st, et)["Close"] data=pd.concat([kos, krw, nsq], axis=1, join="outer").dropna(...

[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 )는 각각의 편차보다 증가하며 양수가 될 것입니다. 같은 ...