<jupyter_start><jupyter_text>SciPy를 이용한 확률 분포 분석 - SciPy는 각종 수치 해석 기능을 제공하는 파이썬 패키지이다. SciPy는 여러개의 서브 패키지로 구성되어 있는데 그 중 scipy.stats 서브패키지는 여러가지 확률 분포 분석을 위한 기능을 제공한다.  확률 분포 객체 - SciPy에서 확률 분포 기능을 사용하려면 우선 해당 확률 분포에 대한 확률 분포 객체라는 것을 생성한 후에 이 객에츼 메서드를 호출한다.- 확률 분포 객체를 생성하는 명령에는 다음과 같은 것들이 있다.- 이산 `bernoulli`: 베르누이 분포- 이산 `binom`: 이항 분포- 이산 `multinomial`: 다항 분포- 연속 `uniform`: 균일 분포- 연속 `norm`: 가우시안 정규 분포- 연속 `beta`: 베타 분포- 연속 `gamma`: 감마 분포- 연속 `t`: 스튜던트 t 분포- 연속 `chi2`: 카이 제곱 분포- 연속 `f`: F 분포- 연속 `dirichlet`: 디리클리 분포- 연속 `multivariate_normal`: 다변수 가우시안 정규 분포 - 이 명령들은 모두 scipy.stats 서브패키지에 포함되어 있으므로 명령 앞에 서브패키지 이름과 마침표를 붙여야 한다. 예를 들어 가우시안 정규 분포 객체는 다음과 같이 생성한다.<jupyter_code>import scipy as sp

rv = sp.stats.norm()
type(rv)<jupyter_output><empty_output><jupyter_text>모수 지정- 확률 분포 객체를 생성할 때는 분포의 형상을 구체적으로 지정하는 모수(parameter)를 인수로 지정해 주어야 한다. 각 확률 분포마다 지정해 주어야 할 모수가 다르므로 자세한 설명은 문서를 참조하여야 하지만, 대부분 다음과 같은 모수들을 공통적으로 가진다.- `loc`: 일반적으로 분포의 기댓값- `scale`: 일반적으로 분포의 표준편차- 예를 들어 기댓값이 1이고 표준 편차가 2인 정규 분포 객체는 다음과 같이 생성한다.<jupyter_code>rv = sp.stats.norm(loc=1, scale=2)
rv<jupyter_output><empty_output><jupyter_text>확률 분포 메서드- 확률 분포 객체가 가지는 메서드는 다음과 같다.- `pdf`: 확률 밀도 함수 (probability density function)- `pmf`: 확률 질량 함수 (probability mass function)- `cdf`: 누적 분포 함수 (cumulative distribution function)- `rvs`: 랜덤 샘플 생성 (random variable sampling)- 메서드 사용법은 다음과 같다.  확률 밀도 함수 (pdf - probability density function)<jupyter_code>xx = np.linspace(-8, 8, 100)
pdf = rv.pdf(xx)
plt.plot(xx, pdf)
plt.show()<jupyter_output><empty_output><jupyter_text>누적 분포 함수<jupyter_code>xx = np.linspace(-8, 8, 100)
cdf = rv.cdf(xx)
plt.plot(xx, cdf)
plt.show()<jupyter_output><empty_output><jupyter_text>랜덤 샘플 생성- 랜덤 샘플을 만들때는 rvs 메서드를 사용한다. 이 메서드에서 맏는 인수는 다음과 같다. - `size`: 샘플 생성시 생성될 샘플의 크기- `random_state`: 샘플 생성시 사용되는 시드(seed) 값- random.seed: 컴퓨터에서 만드는 랜덤값은 모두 계산에 의해 나오는 유사 랜덤 값입니다. - 그러한 랜덤값을 좀더 랜덤하게 만들기 위해서 seed 값을 임의로 넣어줍니다. 만일 생랼하거나 None 값인 경우 seed값으로 현재 시간을 사용합니다.<jupyter_code>rv.rvs(size=(3,5), random_state=0)
sns.distplot(rv.rvs(size=10000, random_state=0))
plt.xlim(-8, 8)
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11692015209125475, 'fraction_numerical': 0.012357414448669201, 'mean_word_length': 4.060096153846154, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '540274', 'license': 'MIT', 'n_tokens_mistral': 1574, 'n_tokens_neox': 2013, 'n_words': 330, 'path': '2018_06_08_Preview_Expectationm, Var, Moment.ipynb', 'repo_name': 'jaykim-asset/datascience_review', 'size': '2104'}