기본 콘텐츠로 건너뛰기

라벨이 Test인 게시물 표시

[matplotlib]quiver()함수

[data analysis] 다중 공선성(Multicolinearity)

다중 공선성(Multicolinearity) 최소자승법 은 모델에 의해 생성되는 오차를 최소화하도록 설계된 방법입니다. 식 1은 기사 '회귀계수의 추정: 최소제곱법(Least Square method)'의 식 8 을 자세히 나타낸 것입니다. \begin{align} \text{MSE}&=(y-X\beta)^T(y-X\beta)\\ \frac{\partial \text{MSE}}{\partial \beta}&=\frac{\partial }{\partial \beta}(y-X\beta)^T(y-X\beta)=0\\ & \Leftrightarrow \frac{\partial }{\partial \beta}(y^T-X^T\beta^T)(y-X\beta)\\ \tag{식 1}& \Leftrightarrow \frac{\partial }{\partial \beta}\left(y^Ty-y^TX\beta -\beta^TX^Ty+\beta^TX^TX\beta \right) \\ & \Leftrightarrow \frac{\partial }{\partial \beta}\left(y^Ty-y^TX\beta -(y^TX\beta)^T+\beta^TX^TX\beta \right) \\ & \Leftrightarrow -y^TX - X^Ty + 2X^TX\beta =0\\ & \Leftrightarrow X^TX\beta = X^Ty \\ & \Leftrightarrow \beta=(X^TX)^{-1}X^Ty\\ \because&\; X^Ty \leftrightarrow y^TX,\quad b^TX^TXb \leftrightarrow X^2b^2\end{align} 식 1에서 나타낸 것과 같이 회귀계수는 X T X의 역행렬에 의존합니다. 또한 행렬 X T X에 의해 공분산 행렬를 계산할 수 있습니다( 공분산과 상관계수의 식 6 참조 ). 그러므로 이 행렬의 대각요소들을 각 변수의 분산, 대...

[data analysis] Breusch-Pegan 검정

Breusch-Pegan 검정 Breusch-Pegan 검정은 회귀모델에서 발생하는 잔차의 이분산성을 검정합니다. 귀무가설과 대립가설은 다음과 같습니다. ( 회귀분석 에 대한 지식이 필요합니다. ) H0: 등분산입니다.(Homoscedasticity) H1: 이분산이 존재합니다.(Heteroscedasiticity) 이 방법은 다음 과정으로 실현됩니다. 회귀모델 생성 모델의 잔차 제곱을 계산 반응변수로서 잔차 제곱을 사용하여 새로운 회귀모델을 생성 nR 2 new 를 통계량으로 χ 2 검정 실시(자유도는 설명변수의 수) n: 데이터 크기, R 2 new : 잔차 제곱을 반응변수로 설정한 회귀모델의 결정계수 이 검정은 statsmodels.stats.diagnostic.het_breuschpagan(잔차, 설명변수) 함수를 사용합니다. 이 함수는 라그랑쥬 승수 통계량(Lagrange multiplier statistic)과 p-value, f-통계량과 p-value를 반환합니다. ( 회귀분석 참조 )

[data analysis] Levene Test

Levene Test 관련된 내용 Bartlett 검정 Fligner 검정 Levene Test Breusch-Pegan 검정 Levene 테스트는 k 샘플(그룹)들의 등분산성을 검정하기 위해 사용합니다. 일부 통계 테스트(예: 분산 분석)에서는 분산이 그룹 또는 샘플 간에 동일하다고 가정하며 회귀분석에서는 다양한 회귀모델들로 계산되는 오차 분포의 분산이 동일하다고 가정합니다. Levene 테스트를 사용하여 이러한 가정을 확인할 수 있습니다. Levene 검정은 Bartlett 검정의 대안으로 자료의 정규성이 불확실한 경우 선호됩니다. 그러나 데이터가 실제로 정규 분포 또는 거의 정규 분포에서 나왔다는 강력한 증거가 있다면 Bartlett의 검정이 더 나은 성능을 보입니다. Levene 검정의 귀무가설과 대립가설은 일반적으로 다음과 같이 기술할 수 있습니다. H0: σ 1 = σ 2 = … = σ k H1: 최소한 한 그룹의 분산이 다름 Levene 검정 통계량(W)은 식 1와 같이 정의됩니다. \begin{align} W&=\frac{N-k}{k-1}\frac{\sum^k_{i=1}n_i(Z_{i.}-Z_{..})^2}{\sum^k_{i=1}\sum^{n_i}_{j=1}(Z_{ij}-Z_{i.})^2}\\ Z_i & =\frac{1}{n_i}\sum^{n_i}_{j=1}Z_{ij}\\ Z_{..} & =\frac{1}{N}\sum^k_{i=1}\sum^{n_i}_{j=1}Z_{ij}\\ & k: \,\text{그룹의 수} \\ & n_i: \,\text{i번째 그룹에 속하는 샘플의 수} \\ & N: \,\text{총 샘플 수} \\ & Z_{ij}:\, \text{i번째 그룹의 j번째 관측값}\, y_{ij}\text{과}\, \hat{y_i}\text{의} L_1 \text{norm입니다.}\end{align} (식 1) Z ij 는 식 2와 같이 계...

[data analysis] Jarque-Bera Test

Jarque-Bera Test 관련된 내용 Q-Q plot shapiro-Wilk test Kolmogorov-Smirnov Test Anderson-Darling 검정 Jarque-Bera test 정규분포는 모수 μ, σ에 상관없이 분포의 형태적인 특성을 가집니다( 확률과 주요통계량: 왜도(skewness)와 첨도(kurtosis) 참조 ). 왜도(skewness, 3차 모멘트)는 pdf의 대칭정도를 나타내는 지표로 표준정규분포의 왜도는 0. 첨도(kuitosis, 4차 모멘트)는 평균 주위에 데이터의 밀집정도를 나타내는 것으로 표준정규분포의 첨도는 3. Jarque-Bera(JB) 검정은 왜도와 첨도를 사용하여 정규성을 추정합니다. 그러므로 왜도와 첨도에 민감한 시계열 데이터나 회귀모델로 생성되는 오차 분석에 주로 적용됩니다. 또한 이 검정은 기준이되는 분포와의 비교가 아니므로 표준화등의 조정이 없는 원시데이터를 직접 적용합니다. 이 검정의 귀무가설(H0)과 대립가설(H1)은 다음과 같습니다. H0: 정규분포를 따릅니다. H1: 정규분포를 따르지 않습니다. 이 검정의 검정통계량은 식 1과 같이 계산됩니다. \begin{align}\text{jb}&=n\left(\frac{S^2}{6}+\frac{(K-3)^2}{24} \right)\\ & S:\, \text{왜도},\; K:\, \text{첨도}\end{align} (식 1) 이 검정통계량은 자유도 2인 χ 2 분포를 따릅니다. 그러므로 이 분포에 적용하여 계산된 검정통계량에 대응하는 p-value를 결정할 수 있습니다. 정규분포의 경우 S=0, K=3 ⇒ JB 통계량은 0입니다. 이 검정은 statsmodels.stats.stattools.jarque_bera() 또는 scipy.stats.jarque_bera() 함수를 사용합니다. 첫번째 함수의 경우는 통계량과 p-value, 왜도와 첨도를 반환하지만 두번째 함수...

[data analysis]Kolmogorov-Smirnov Test

Kolmogorov-Smirnov Test 관련된 내용 Q-Q plot shapiro-Wilk test Kolmogorov-Smirnov Test Anderson-Darling 검정 Jarque-Bera test Kolmogorov-Smirnov 검정 (K-S test)은 표본이 특정 분포를 가진 모집단에서 추출되었는지 결정하는 데 사용됩니다. 즉, 자료의 분포가 특정한 분포와의 일치정도를 정량화하여 검정하는 방법입니다. 분석대상 자료의 분포를 알 수 없으므로 식 1에 의해 생성된 경험적 분포 함수 (Emperical distribution fucntion, ECDF) 와 특정분포를 비교합니다. $$ECDF =\frac{n(i)}{N}$$ (식 1) 식 1의 n(i)는 데이터를 오름차순으로 정렬한 경우의 각 요소의 위치이며 분모인 N은 전체 자료수입니다. 자료가 오름차순으로 정렬되면 각 값까지의 누적확률은 그것이 위치하는 순서에 의존됩니다. 예를 들어 총 20개의 데이터 중의 2번째의 값의 누적확률은 0.1(2/20)이 됩니다. 전체적으로 각 데이터마다 1/20씩 증가하는계단함수가 됩니다. 이것을 경험적 누적분포함수라고 하며 이 함수가 정규분포의 누적함수와의 일치 정도로 자료의 정규성을 검정합니다. 그림 1은 100개의 랜덤 샘플에 대한 경험적 누적분포함수와 정규누적분포함수를 작성한 것입니다. np.random.seed(3) N=100 da=np.sort(np.random.randn(N)) ecdf=[i/N for i in range(1, N+1)] nCdf=stats.norm.cdf(da) plt.figure(figsize=(4,2)) plt.plot(da, ecdf, color="blue", label="ECDF") plt.plot(da, nCdf, color="red", label="normCDF") plt.legend(loc=...

[data analysis]shapiro-Wilk test

shapiro-Wilk test 관련된 내용 Q-Q plot shapiro-Wilk test Kolmogorov-Smirnov Test Anderson-Darling 검정 Jarque-Bera test 표본 x 1 , x 2 , …, x n 이 정규분포에 부합성 여부를 검정하기 위해 식 1과 같이 계산되는 shapiro-Wilk통계량인 W 를 사용하여 귀무가설(H0: 정규분포를 따릅니다.) 검정을 실시합니다. \begin{align}W&=\frac{\left(\sum^m_{i=1}a_ix_{(i)} \right)^2}{\sum^n_{i=1}(x_i-\bar{x})^2}\\x_{(i)}&=x_{n+1-i}-x_i\\ & n: \text{표본의 크기}\\ & m=\begin{cases}\frac{n}{2}&\text{for}\;n=\text{짝수}\\\frac{n-1}{2}&\text{for}\;n=\text{홀수} \end{cases}\end{align} (식 1) 식 1에서 a i 는 두 값 차이에 대한 가중치입니다. 그 가중치들은 정렬된 자료의 평균, 표준편차 등 통계량을 기준으로 산출된 상수로서 shapiro-Wilk table에서 결정할 수 있습니다. 식 1의 x (i) 를 나타내는 i는 [0, m] 사이의 정수값입니다. 즉 W값은 전체 퍼짐의 정도에서 각각의 작은값과 큰값의 차이의 비를 나타낸 값입니다. Shapiro-Wilk 검정의 W는 다음 과정으로 계산합니다. data 정렬 SS 계산 $SS=\sum^n_{i=1}(x_i-\bar{x})^2$ W의 분자인 b를 계산 $b=\sum^m_{i=1} a_i(x_{n+1-i}-x_i)$ 검정 통계량(W)계산 $W=\frac{b^2}{SS}$ shapiro-Wilk table를 기준으로 p-value를 산출 shapiro-Wilk table은 샘플수에 대한 가중치(a i )와 특정 유...

[data analysis]정규성검정(Normality Test)

정규성검정(Normality Test) 관련된 내용 Q-Q plot shapiro-Wilk test Kolmogorov-Smirnov Test Anderson-Darling 검정 Jarque-Bera test 중심극한정리 에 의해 자료의 샘플 수가 증가할수록 정규분포에 근접합니다. 특히 표본평균들의 분포인 표본분포는 정규분포에 부합합니다. 그러나 평균이 아닌 원시데이터(raw data)의 경우 정규분포에 부합여부가 중요한 경우가 있습니다. 예를 들어 회귀분석의 경우 관찰값과 회귀 모형에 의한 예측값들의 차이를 잔차(residuals) 라고 하는데 잔차가 정규분포에 부합한다는 가정하에 실시됩니다. 그 가정에 부합하는가의 여부가 성립된 모형의 적합도를 결정할 판단근거가 됩니다. 정규성 검정은 다음 방법을 사용합니다. Quantile-Quantile plot: 시각적 분석에 의한 결정 Shaprio-Wilks test: 표본수(n < 2000)인 경우에 주로 사용 Kolmogoroves-Smrinov test: n > 2000인 경우에 사용 Jarque-Bera Test