기본 콘텐츠로 건너뛰기

라벨이 statistics인 게시물 표시

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

통계관련 함수와 메서드 사전

A B C d E F G H I K L M N O P Q R S T U V W Z A statsmodels.ap.stats.anova_lm(x) statsmodels.formula.api.ols 에 의해 생성되는 모형 즉, 클래스 인스턴스(x)를 인수로 받아 anova를 실행합니다. np.argsort(x, axis=-1, kind=None) 객체 x를 정렬할 경우 각 값에 대응하는 인덱스를 반환합니다. Axis는 기준 축을 지정하기 위한 매개변수로서 정렬의 방향을 조정할 수 있음(-1은 기본값으로 마지막 축) pandas.Series.autocorr(lag=1) lag에 전달한 지연수에 따른 값들 사이의 자기상관을 계산 B scipy.stats.bernoulli(x, p) 베르누이분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 p: 단일 시행에서의 확률 scipy.stats.binom(x, n, p) 이항분포에 관련된 통계량을 계산하기 위한 클래스를 생성합니다. x: 랜덤변수 n: 총 시행횟수 p: 단일 시행에서의 확률 C scipy.stats.chi2.pdf(x, df, loc=0, scale=1) 카이제곱분포의 확률밀도함수를 계산 $$f(x, k) =\frac{1}{2^{\frac{k}{2}−1}Γ(\frac{k}{2})}x^{k−1}\exp\left(−\frac{x^2}{2}\right)$$ x: 확률변수 df: 자유도 pd.concat(objs, axis=0, join=’outer’, …) 두 개이상의 객체를 결합한 새로운 객체를 반환. objs: Series, DataFrame 객체. Axis=0은 행단위 즉, 열 방향으로 결합, Axis=1은 열단위 즉, 행 방향으

R 수학과 통계등의 내장함수들

내용 함수들 수학함수 통계함수 확률함수 문자함수 유용한 함수들 데이터 관리를 위한 함수들과 제어문 함수들 수학함수 수학함수 함수 설명 abs(x) 절대값반환 abs(-4) → 4. sqrt(x) 제곱근, sqrt(25) → 5 &eqiv; 25^(0.5). ceiling(x) x보다 작지않은 가장 작은 정수 ceiling(3.21) → 4 floor(x) x보다 크지않은 가장 큰 정수 floor(3.21) → 3 trunc(x) x의 값 중 숫점 이하의 값을 버림으로서 형성된 정수 trunc(3.21) → 3 round(x, digits=n) x의 지정한 자릿수+1 에서 반올림 round(3.475, digits=2) → 3.48. signif(x, digits=n ) x를 지정된 유효 자릿수로 반올림 signif(3.475, digits=2) → 3.5. cos(x) , sin(x) , tan(x) Cosine, sine, and tangent cos(2) → -0.416. acos(x) , asin(x) , atan(x) 삼각함수의 역함수, arc-cosine, arc-sine, and arc-tangent acos(-0.416) → 2. cosh(x) , sinh(x) , tanh(x) 쌍곡선 함수인 hyperbolic cosine, sine, and tangent sinh(2) → 3.627. acosh(x) , asinh(x) , atanh(x) Hyperbolic arc-cosine, arc-sine, and arc-tangent asinh(3.627) → 2. log(x, base=n) 밑수가 a인 로그함수 log(10, 2) = log(10)/log(2) \→ 3.321928

경사하강법(Descent Gradient)

내용 경사하강법이란? 경사하강법 알고리즘 경사하강법(Descent Gradient) 경사하강법이란? 최소자승법은 공식화된 계산식에 의해 결정된 회귀계수 를 적용합니다. 이에 반면에 경사하강법은 수치적으로 모델을 최적화하는 과정에서 회귀계수를 산출합니다. 식 1의 선형회귀모형은 독립변수(x)와 종속변수(y)의 사이의 다음의 선형식을 만족하는 최적의 회귀계수를 결정하는 것입니다. $$\begin{align}\tag{1}&y=xW\\&W:\text{회귀계수(가중치)}\end{align}$$ 예를 들어 다음의 자료는 y=2x를 만족하는 인위적으로 생성한 데이터입니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import sympy as sp x=np.arange(0, 10).reshape(-1,1) y=x*2 x.shape, y.shape ((10, 1), (10, 1)) np.c_[x, y] array([[ 0, 0], [ 1, 2], [ 2, 4], [ 3, 6], [ 4, 8], [ 5, 10], [ 6, 12], [ 7, 14], [ 8, 16], [ 9, 18]]) 역으로 위 자료의 선형회귀 모델을 생성한다고 할 경우 y=xw로부터 식 2와 같이 계산되는 mse가 최소가 되는 방식으로 W를 결정해야 합니다. $$\begin{align}\tag{2}\text{mse}&=\frac{\sum^n_{i=1}(\hat{y}-y)^2}{n}\\&=\frac{\sum^n_{i=1}(xW-y)^2}{n} \end{align}$$ W를 임의적으로 적용할 경우 mse의 변화는 그림 1과 같이 2차 곡선의 형

회귀모델의 평가: 오차(Error, Residual), 회귀계수의 평가, 추정

내용 오차의 전제조건 오차의 등분산성 자기상관분석 오차제곱평균 회귀계수의 평가 모형의 평가 결정계수(coefficient of determinant) 추정 오차(Error, Residual) 오차의 전제조건 생성된 회귀모형을 통계적으로 검정(test)할 필요가 있으며 검정의 주요한 객체는 식 1에 의해 계산되는 관찰치와 추정치의 차이인 오차(error)가 됩니다. $$\begin{align}\tag{1}e&=y-(b-o+b_1x)\\&=y-\hat{y} \end{align}$$ 회귀모형의 오차는 다음의 전제조건을 가정합니다. 정규분포를 따르는 확률변수 독립변수들은 정규 분포를 따르는 확률변수이므로 그 반응변수와 추정치 사이에서 발생되는 오차 역시 정규분포를 따르는 확률 변수가 됩니다. 이것은 오차를 인위적으로 조정할 수 없다는 의미입니다. 오차항의 등분산성(homoscedastic) 시점이 다른 오차들 사이에 자기상관 (autocorrelation)을 가지지 않습니다. 이것은 오차들 간의 체계적인 관계가 없다는 것을 의미합니다. 그러나 현실 데이터 특히 시계열의 경우 각 데이터들 사이에 관계성을 가지기 때문에 이 가정이 부합하기는 쉽지 않습니다. 독립변수를 다양하게 적용하거나 lasso등의 방법을 사용하여 이 관계성을 감소시킬 수 있습니다. 오차의 등분산성 회귀모델은 다양한 형태로 구축할 수 있습니다. 예를 들어 그림 1과 같이 100개의 샘플을 가진 자료로부터 최소자승법에 의한 회귀모델을 중심으로 다른 모델들을 추가하여 5개의 회귀선을 임의로 작성하는 경우를 고려해봅니다. 한개의 데이터에 대해 다양한 회귀선들로부터 여러개의 추정치가 생성됩니다. 실측된 값과 추정치들간의 오차들 또한 확률분포를 구성할 수 있으므로 평균과 분산을 계산할 수 있습니다. 등분산성은 각 데이터로부터 계산되는 분산이 다른 데이터로부터 계산되는 값들과 같다는 것을 의미

등분산을 위한 검정

내용 Levene Test 등분산을 위한 검정 Levene Test Levene 테스트는 k 샘플(그룹)이 동일한 분산을 갖는지 테스트하는 데 사용됩니다. 각 표본의 분산이 같은 것을 등분산이라고 합니다. 일부 통계 테스트(예: 분산 분석)에서는 분산이 그룹 또는 샘플 간에 동일하다고 가정하며 회귀분석에서는 다양한 회귀모델들로 계산되는 오차 분포의 분산이 동일하다고 가정합니다. Levene 테스트를 사용하여 이러한 가정을 확인할 수 있습니다. Levene의 검정은 Bartlett 검정의 대안으로 Bartlett의 검정은 정규성 이탈에 민감하므로 Levene의 검정은 모집단 표본이 일반적으로 정규분포에 대한 가정이 불확실할 경우 선호됩니다. 그러나 데이터가 실제로 정규 분포 또는 거의 정규 분포에서 나왔다는 강력한 증거가 있다면 Bartlett의 검정이 더 나은 성능을 보입니다. Levene 검정의 귀무가설과 대립가설은 일반적으로 다음과 같이 기술할 수 있습니다. H0: σ 1 = σ 2 = … = σ k H1: k 표본 모집단 분산 중 하나 이상이 같지 않음 Levene 검정 통계량(W)은 식 2와 같이 정의됩니다. $$\begin{align}\tag{2}&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}\end{align}$$ k: 그룹의 수 n i : i번째 그룹에 속하는 샘플의 수 N: 총 샘플 수 Z ij : i번째 그룹의 j번째 관측값 Y ij 과 Ŷ i 의 L 1 norm입니다. Z ij 는 식 3과 같이 계산됩니다. $$\begin{equation}\tag{3}Z_{ij}

회귀분석(Regression analysis): 단순회귀분석

내용 회귀분석(Regression analysis)이란? 단순회귀분석 단순회귀모델 회귀모델에 의한 추정 회귀계수의 추정 최소자승법에 의한 회귀계수 회귀분석(Regression analysis) 회귀분석(Regression analysis)이란? 회귀분석은 변수들간의 관계에 대한 모형을 설정하고 그 모형을 통해 새로운 값을 추정하는 통계적 방법입니다. 그림 1은 일정한 높이(x)에 대응되는 힘(y)에 대한 그래프로서 x가 증가할수록 y가 증가하는 정확한 정비례 관계를 보여줍니다. 이 관계는 일반화되어 있는 물리법칙에 의한 자료를 기반으로 한 것으로 중력이 작용하는 지구내에서 일정한 높이에서 가해지는 힘을 충분히 예측할 수 있습니다. import numpy as np import pandas as pd from scipy import stats import matplotlib.pyplot as plt plt.figure(dpi=100) h=range(7) w=40 F=[w*9.8*i for i in h] plt.plot(h, F, "o-") plt.xlabel("Height(m)", size=13, weight="bold") plt.ylabel("Force(N)", size=13, weight="bold") plt.text(2.5, 1500, 'F=Wgh', color="blue", size=13, weight="bold") plt.text(0, -800, r'w:weight (kg), g: Gravity Acceleration($m/sec^2$)', color="blue", size=12) plt.xticks([]) plt.yticks([]) plt.show() 그림 1. 높이에 따른 힘의 변화. 그림 2는 x가 증가하면서