기본 콘텐츠로 건너뛰기

2월, 2018의 게시물 표시

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

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은 열단위 즉, 행 방향으

집합 자료형과 집합연산_python

python에서는 set이라는 집합 자료형을 제공합니다. 이 자료형은 집합들 간의 합집합 등의 연산을 위해 사용되는 형태입니다. 이번 글에서는 python 의 set 자료형에 의한 연산 종류를 알아봅니다. 우선 리스트등의 자료형을 집합형으로 전환하기위해서 set() 함수를 사용합니다. 다음은 주사위 두개를 던져 나올수 있는 모든 경우입니다. >>> S=[(i, j) for i in range(1, 7) for j in range(1, 7)] >>> print(S) [(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)] 다음 A와 B는 각각 두수의 합이 2의 배수, 3의 배수인 경우입니다. >>> A=[(S[i][0], S[i][1]) for i in range(len(S)) if (S[i][0]+S[i][1])%2 ==0] >>> print(A) [(1, 1), (1, 3), (1, 5), (2, 2), (2, 4), (2, 6), (3, 1), (3, 3), (3, 5), (4, 2), (4, 4), (4, 6), (5, 1), (5, 3), (5, 5), (6, 2), (6, 4), (6, 6)] >>> B=[(S[i][0], S[i][1]) for i in range(len(S)) if (S[i][0]+S[i][1])%3 ==0] >>> print(B) [(1, 2), (1,

확률의 개요

확률이란... 확률은 미래에 발생할 사건에 대한 믿음의 측정값입니다. 어떠한 사건에 대해 그 사건이 일어날 빈도수를 전체사건에서 차지하는 비율로 나타낼 수 있습니다. 확률은 통계의 기본이 되며 일상에서 많은 경우를 접하고 있습니다. 그러나 확률을 정의하는 것은 많은 사람들에게는 새로운 작업이 될 수도 있습니다. 그러나 이것은 일상에서 접하는 것을 서술하는 것으로 사실 새로운 것은 아닙니다. 1. 용어 이러한 확률을 다루기 위해서 몇가지 알아야할 용어가 있습니다. - 확률실험(random experiment, 시행) 실험결과를 예측할 수 없는 실험을 말하며 실험결과를 알 수 없다는 것은 실험의 모든 시행의 가능성이 동일하다고 할 수 있습니다. 예를들어 동전던지기에서 앞과 뒤가 나올 확률은 동일합니다. 이러한 실험을 확률실험이라고 합니다. - 표본공간(sample space)와 원소(element) 확률실험의 각 결과를 원소라 하며 그 실험의 모든 결과를 모아 놓은 공간을 표본공간이라고 합니다. 주사위 던지기 실험 역시 각 눈의 값이 나올 확률은 동일하므로 확률실험이며 이 실험에서 나올 수 있는 결과(사건)은 1, 2,3 ,4,5 ,6 입니다. 이 모든 사건들의 모임을 표본공간이라고 하고 이 실험에서 표본공간(S)은 S={1,2,3,4,5,6} 이며 각 값들을 원소라고 합니다. - 사건(event) 또는 집합(set) 확률실험에서 관심의 대상이 되는 원소들의 모임을 사건 또는 집합이라고 합니다. 특히 확률이 정의된 집합을 사건이라고 합니다. - 벤다이어그램(Venn Diagram) : 집합간의 관계를 그림으로 나타낸 것입니다. 그림 1 벤다이어 그램  - 전체집합(Universe set) : 샘플공간과 같으며 실험에서 발생하는 모든 원소들의 집합입니다. 그림 1에서 S - 공집합(Empty set) : 원소가 하나도 없는 집합 ($\emptyset$) - 합집합(Union) :  각 집합에 속한 모든 원소들의

조합과 순열

조합과 순열 (Combination & Permutation) 조합의 정의 조합은 전체 집합중에서 일정한 수의 부분집합을 선택하는 방법의 수로 그 순서는 고려하지 않습니다 . 다음과 같이 나타내지요 . $\left( \begin{array}{rr} n \\ p \end{array}\right)$ or $C_n^p$  로 표현합니다 . 위의 의미는 전체 n 원소들로 이루어진 집합에서 p 개의 일부 원소들 취해 부분집합을 만드는 방법으로 위의 표현은 $ n^p$ 로 계산됩니다 . 2 진법으로 6 자리를 만드는 방법의 수는 다음과 같이 계산됩니다 . $\left( \begin{array}{rr} 2 \\ 6 \end{array}\right)=2^6$ 모든 자리에 0, 1 중의 하나를 선택하고 이러한 경우가 6 번이므로 $ 2 \times 2 \times 2 \times 2 \times 2 \times 2$ 이 됩니다 . 위와 같은 결과이지요 . {a, b, c, d, e} 중에서 서로 다른 세개만을 선택하는 방법을 생각해보면 먼저 a 를 선택한 후 나머지를 선택하는 방법은 다음과 같이 12 가지가 됩니다 . a b c d e c b d e d b c e

행렬변환

이 포스트는 선형변환의 연속으로 선형대수의 필수적인 부분입니다. 우선 몇가지 용어를 살펴볼까요. 벡터는 한개의 열, 또는 행으로 값들을 정리한 형태로 표시됩니다. 하나의 열인 경우를 열벡터, 다른 경우를 행 벡터라 하고 별도의 표현이 없다면 열벡터를 의미합니다. 열벡터에서 한개의 행을 그래프로 작성하면 하나의 축에만 표시됩니다. 즉, 선인 1차원이지요, 두개이면 x, y 축이 필요하므로 2차원이됩니다. 이렇듯 열벡터의 행의 수는 그 벡터의 차원을 나타냅니다. 이를 총괄하여 다음과 같이 나타냅니다. 1차원의 경우 : $R^1$ 2차원 : $R^2$ ... n 차원 : $R^n \rightarrow \left[\begin{array}{rrrr} x_1 \\x_2 \\ \vdots \\x_n \end{array} \right]$ 벡터의 각 차원의 값만을 표현하기 위해 표준기저벡터(standard basis vector)를 사용합니다. 즉, 3차원 열벡터는 다음과 같이 표준기저벡터를 사용하여 나타낼 수 있습니다. $\left[\begin{array}{rrr} x \\ y \\ z \end{array} \right]=x\left[\begin{array}{rrr} 1 \\ 0 \\ 0 \end{array} \right]+y\left[\begin{array}{rrr} 0 \\ 1 \\ 0 \end{array} \right]+z\left[\begin{array}{rrr} 0 \\ 0 \\ 1 \end{array} \right]=x e_1 + y e_2 +z e_3$ 선형변환의 특성에서 소개하였듯이 선형대수에서 변환(transformation)은 정의역 의 어떤 차원의 벡터를 동일한 또는 다른 차원의 벡터로 변형시키는 함수를 의미합니다. 이 정의를 수학적으로 표현하면 다음과 같지요. $T_A: R^n \rightarrow R^m, \quad T_A (x) w$ 즉, 행렬 A에 의해 n차원 공간의 x를 m차원 공간의 w에 대응시키는 것입니다. 3 $\

선형변환 행렬의 종류 (ing)

1. isometry(Euvlid isometry) 동일한 차원으로 선형변환후 길이가 보존되는 성질을 가지는 선형변환  $T: R^n \rightarrow R^n$ 에서 ||T(x)|| = ||x|| 이러한 관계에 있는 선형변환의 경우 아래와 같은 의미를 가집니다. T(x) $\cdot$ T(y) = x $\cdot$ y, (x, y $\in R^n$) 2. 직교행렬(orthogonal matrix)  정방행렬 A에 대해 역행렬과 전치행렬이 같은 행렬 즉, $A^{-1} = A^T$ 의 조건을 만족하면 직교행렬입니다. (즉, 행렬을 구성하는 각 열벡터가 직교한다는 의미입니다.) 어떤 벡터를 일정한 각도로 이동시키는 선형변환을 위한 표준행렬 은 다음과 같습니다. $R_\theta = \left[\begin{array}{rr} cos(\theta) & - sin(\theta) \\ sin(\theta) & cos(\theta) \end{array} \right]$$ 이 표준행렬의 역행렬은 다음과 같습니다.  $R_\theta = \left[\begin{array}{rr} cos(\theta) & sin(\theta) \\ -sin(\theta) & cos(\theta) \end{array} \right]$$ theta=45 A=np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]]) A [Ans] :array([[ 0.52532199, -0.85090352], [ 0.85090352, 0.52532199]]) np.linalg.inv(A) #=A의 역행렬 [Ans] :array([[ 0.52532199, 0.85090352], [-0.85090352, 0.52532199]]) A.T [Ans]: array([[ 0.52532199, 0.85090352],

선형대수 용어 정리 (ing)

선형대수의 변환(transformation)은 함수(function)를 의미합니다. 그러면 함수란 무엇일까요? 어떤 객체에 대해 한개이상의 연산 과정을 실시하여 다른 결과를 반환하는 연산의 모둠이라고 할 수 있겠지요. 그러면 함수를 중심으로 대응되는 부분이 존재하겠지요. 즉, x1이라는 인자를 투입하면 y1이라는 결과가 나오고 또는 y1, y2,... 등 다중의 결과를 반환할 수도 있습니다. 이러한 상황을 일정한 용어로 정의 할 필요가 있습니다. 위의 과정을 요약해 보면 다음과 같이 나타낼 수 있습니다.  1.사상(mapping, Function) 입력(X) ---> 함수(f) ---> 출력(Y) 위을 수학적으로 다음과 같이 나타냅니다.  $ f: x \rightarrow y $, 또는  y=f(x) 위 관계를 함수라는 용어 대신 사상이라는 용어로  "집합 X에서 집합 Y로의 사상(함수)"이라고 표현합니다.  2. 상(Image) 위의 입력 X를 함수에 적용되면 입력값에 대응되는 Y가 반환되지요. 그 함수에 대응하여 반환되는 각각의 결과를 상(image)라고 합니다.  3. 정의역(domain), 공역(codomain), 치역(range)  상을 나타내기 위한 모든 입력 집합을 정의역이라고 합니다.  또한 함수의해 생성될 가능성이 있는 모든 부분을 공역이라하며 함수에 의해 생성되는 결과들의 집합을 치역이라고 합니다. 그러므로 공역과 치역($y_i$ i=...-1, 0, 1,...)을 같을 수가 있습니다. 즉, 다음의 관계가 성립되지요.  $ y_i \subseteq Y$ 4. 핵(kernel) $T: R^n \rightarrow R^n$의 선형변환에서 즉, 함수 T에 의해 정의역에 대한 상이 0이 되는 전체 집합을 T의 핵(kernel)이라 하며 kerT로 나타냅니다. $kerT = \{ v \in R^n | T(v) =0 \}$  다음예를

선형변환의 의미

벡터 공간에서의 변환(transformation)은 다른 벡터 공간으로 이관하는 함수의 다른 표현입니다. 그러한 변환중에 몇가지 특성을 만족시키는 선형변환 이 기하학적으로 갖는 의미를 봅니다. 1) 동일차원으로 선형변환의 경우는 즉 벡터 X에서 $$\left[\begin{array}{rrrr} x_1 \\x_2 \\ \vdots \\x_n \end{array} \right]$$ 으로 정의된 선형변환을 그래프로 나타내보면 다음과 같습니다. >>> A=np.matrix("0.2, 0.5; 0.4, 0.7") >>> x=np.matrix("3;2") >>> B=np.dot(A, x) >>> A matrix([[ 0.2,  0.5],         [ 0.4,  0.7]]) >>>  x matrix([[3],         [2]]) >>> B matrix([[ 1.6],         [ 2.6]]) >>> plt.scatter([x[0], B[0]], [x[1], B[1]]) >>> plt.xlim(0, 5) >>> plt.ylim(0, 5) >>> plt.arrow(0, 0, 3, 2, shape="full", head_width=0.05, head_length=0.1, color="red") >>> plt.arrow(0, 0, 1.6, 2.6, shape="full", head_width=0.05, head_length=0.11, color="blue") >>> plt.text(x[0]+0.1, x[1]+0.1, "P(x, y)") >>> plt.text(B[0]+0.1, B[1]+0.1,

고유값과 고유벡터, eigendecomposition

$n \times n$정방행렬 A에 대해 다음의 방정식이 만족되는 경우를 생각할 수 있습니다.  $A \cdot v = \lambda \cdot v$ (1) v : $n \times 1$인 벡터 $\lambda$ : 스칼라 위 방정식의 어떤 해(solution)인 $\lambda$를 고유값(eigenvalue)라고 하며 특성값(characteristic value)이라고도 합니다. 이 고유값에 해당하는 벡터 v를 고유벡터(eigenvector)라고 합니다. 위 방정식은 다음과 같이 나타낼 수 있지요. $A \cdot v - \lambda \cdot v=0$ (2) $A \cdot v - \lambda \cdot I \cdot v=0$ (3) $(A - \lambda \cdot I )\cdot v=0$ (4) v가 0이 아닌 벡터라면 위 식에서 다음이 만족되어야만 합니다. $|A-\lambda \cdot I|=0$ (5) 이 식을 A의 특성방정식(character equation)이라고 하며 n개의 근을 가지는 n차 다항식이 됩니다. 이 근들은 A의 고유값이 됩니다. 다음의 2x2의 행렬을 예로 고유값과 고유벡터를 계산해 봅니다. a=np.matrix('0,1;-2, -3') a Out[128]: matrix([[ 0,  1],         [-2, -3]]) 위 행렬의 특성 방정식은 다음과 같습니다. $|A- \lambda \cdot I|= \left | \left [\begin{array}{rr} 0&1\\-2&-3 \end{array}\right] -\left[\begin{array}{rr}\lambda & 0 \\ 0 & \lambda \end{array} \right] \right |=0$ 위 식은 다음과 같이 정리 할 수 있습니다. $\left | \left[\begin{array}{rr} -\lambda &1 \\ -2 & -3-\lambda \end

공분산의미(ing)

공분산이란 다음은 일정한 평균과 분산을 가진 정규분포에서 미지의 값을 신뢰할 수 있는 구간과 평균, 표준편차의 관계를 나타내면 다음과 같습니다. 그림 1. 표준 정규분포 상에서 평균과 표준편차의 관계 위 그림에서 빨간 점선, 파란 점선, 녹색 점선은 분포의 전확률 중에서 누적확률 68,3%, 95.4%, 99.7%를 차지하는 경계를 나타내며 각 구간의 value(값)은 다음과 같습니다. red 점선 : CDF=68.3%, $\mu \pm \sigma$ blue 점선 : CDF=95.4%, $\mu \pm 2 \sigma$ green 점선 : CDF=99.7%, $\mu \pm 3\sigma$ 위 그림의 python 코드는 다음과 같습니다. plt.plot(x, rv.pdf(x), lw=2, label='pdf') plt.xlabel("value") plt.ylabel("Prob") lineref=[mu, rv.ppf(0.683), rv.ppf(1-0.683), rv.ppf(0.954), rv.ppf(1-0.954),           rv.ppf(0.997), rv.ppf(1-0.997)] cl=['black', 'red', 'red', 'blue', 'blue', 'green', 'green'] #plt.axvline(lineref[1], linestyle='--', color=cl[1]) for i in range(len(lineref)):     plt.axvline(lineref[i], linestyle='--', color=cl[i]) plt.text(-1, 0.3, "mu+-sigma", color="red") plt.text(-1, 0.2, "mu+-2*sigma",