기본 콘텐츠로 건너뛰기

라벨이 crosstab인 게시물 표시

[matplotlib]quiver()함수

[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] 베이즈정리 (Bayes theorem)

베이즈정리 (Bayes theorem) 관련된 내용 확률(probability) 독립사건(independent event) 조건부확률(conditional probability) 예 1) 표 1은 사무실 lamp을 생산하는 공장 A, B, C의 생산율과 불량품율에 대한 자료입니다. 표 1 공장별 생산에 대한 자료 공장 Product D, P(D|Product) A 0.35 0.015 B 0.35 0.01 C 0.3 0.02 Product: 생산율, D: 불량률 생산된 불량품이 각 공장에서 생산되었을 확률? 공장 C에서 생산되었을 확률은 식1과 같이 나타낼 수 있습니다. $$P(C\,|\, D) = \frac{P(C\, ∩\, D)}{P(D)}$$ (식 1) 표 1에서 공장 C에서의 불량품율에 대한 정보를 사용할 수 있습니다. 즉, P(D|C)은 식 2와 같이 계산할 수 있습니다. $$ P(D\, |\, C) = \frac{P(D\, ∩ \,C)}{P(C)}$$ (식 2) 교집합은 교환법칙이 성립하므로 P(D ∩ C) = P(C ∩ D)로 치환할 수 있습니다(식 3). \begin{align} P(C \,∩\, D)& = P(D\,|\,C)P(C)\\&= 0.020·0.3\\&=0.006\end{align} (식 3) P(D)는 각 공장에서의 불량품 확률의 합과 같습니다(식 4). \begin{align}P(D)&= P(D\,∩\,A) + P(D\,∩\,B) + P(D\,∩\,C)\\ &= P(D\,|\,A)P(A) + P(D\,|\,B)P(B) +P(D\,|\,C)P(C)\\ &= 0.015·0.35 + 0.01·0.35 + 0.02·0.30\\ &= 0.01475\end{align} (식 4) A=np.array([0.35, 0.015]) B=np.array([0.35, 0.01])...

[data analysis] 교차표(cross tabulation): crosstab

교차표(cross tabulation): crosstab pandas.crosstab() 함수는 pd.pivot_table() 로 생성되는 피봇테이블과 유사하지만 두 개이상의 변수들에 대한 교차표 작성에 집중합니다. 다음 자료는 코스피 일일자료를 호출한 것으로 Open, High, Low, Close, Volume, Change 특성으로 구성된 것입니다. import numpy as np import pandas as pd import FinanceDataReader as fdr st=pd.Timestamp(2023,8, 26) et=pd.Timestamp(2024, 8,8) nme=['Open', 'High','Low','Close', 'Change', 'Volume'] da=fdr.DataReader('KS11', st, et)[nme] da.head(2).round(3) Open High Low Close Change Volume Date 2023-08-28 2534.42 2543.41 2525.64 2543.41 0.010 483587568 2023-08-29 2550.76 2556.98 2545.27 2552.16 0.003 441365852 위 자료 da의 Change를 제외한 나머지 특성들(features)들을 1일 전값과의 변화율로 변환합니다. da1=da.drop("Change...