표본 분산과 편차 분산에 대해 가시화를 시도하였다

10888 단어 통계학

개시하다


통계학 교과서와 최초 출현한'분산'이지만 교과서에는'표본 분산'과'편파적 분산이 없어야 한다'(처음 봤을 때 어떻게 구분해서 쓰나 고민했다).
표본 분산과 편차가 없는 분산은 모분산의 추측으로 볼 때 표본 분산은 편파적이지 않다.'표본 분산의 기대치'는 모분산보다 작은 성질(이것은 샘플의 사이즈가 작은 상황에서 현저하다)이 있고 편파적이지 않은 분산은'편파적이지 않은 기대치'와 모분산이 일치하는 성질이 있다.
따라서 어떤 실험을 통해 데이터를 얻을 때 결과로부터 배후의 전체적인 방차를 추측하려면 편차가 없는 방차를 사용해야 한다.다른 한편, 표본 분산은 얻은 데이터가 어떻게 분산되었는지 묘사하는 데 쓰인다.
이번에 우리는 전체 견본에서 적당한 견본 사이즈로 추출한 견본에 대해 견본의 방차, 편차가 없는 것을 계산하여 견본 사이즈의 견본 방차, 편차가 없는 운동을 가시화할 것이다.
※ 자세한 내용은 책이나 인터넷에서'일치성'또는'편파성'으로 조사해 주십시오.이번 문제는 편파적이지 않은 사람이다.

실험과 결과


표준 정적 분포의 크기에 따라 1000000의 전체 견본을 준비합니다.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns


np.random.seed(seed=42)
population = np.random.normal(0, 1, 1000000)  # 母集団:平均0, 分散1, サイズ1000000
sns.histplot(population)

plt.title('Population Distribution')
plt.show()

실험1


전체 샘플에서 50개의 샘플을 추출하여 1000번의 편차 분산과 표본 분산 조작을 하고 각자의 평균치를 계산한다.
unbiased_variances = []
sample_variances = []


for _ in range(1000):
    # 母集団から50件の抽出を行い不偏分散と標本分散を求めるのを1000回
    sample = np.random.choice(population, 50)
    unbiased_variance = np.var(sample, ddof=1)  # 不偏分散
    sample_variance = np.var(sample, ddof=0)  # 標本分散
    unbiased_variances.append(unbiased_variance)
    sample_variances.append(sample_variance)
np.mean(unbiased_variances)
1.0042536587305344
np.mean(sample_variances)
0.9841685855559237
편파적이지 않고 분산된 느낌이 좋아 어머니가 분산된 것으로 추정된다=1.표본의 분산이 조금 작아진 것을 발견하였다.

실험2


전체 견본에서 5~1000의 사이즈 변화를 동시에 표본을 추출하여 1000번의 편차 분산과 표본 분산 조작을 하여 각자의 평균치를 구한다.마지막으로 견본 크기에 비해 견본 방차/불편차 방차의 평균값을 그립니다.
sample_size_list = []
uv_mean_list = []
sv_mean_list = []

for sample_size in range(5, 1001, 5):
    # サンプルサイズを5~1000まで5刻みで変化させる。
    unbiased_variances = []
    sample_variances = []

    for _ in range(1000):
        # 母集団から指定サンプルサイズの抽出を行い不偏分散と標本分散を求めるのを1000回
        sample = np.random.choice(population, sample_size)
        unbiased_variance = np.var(sample, ddof=1)  # 不偏分散
        sample_variance = np.var(sample, ddof=0)  # 標本分散
        unbiased_variances.append(unbiased_variance)
        sample_variances.append(sample_variance)

    # サンプルサイズ、そのサンプルサイズでの不偏分散の平均・標本分散の平均を追加
    sample_size_list.append(sample_size)
    uv_mean_list.append(np.mean(unbiased_variances))
    sv_mean_list.append(np.mean(sample_variances))

df1 = pd.DataFrame({'sample_size': sample_size_list, 'mean_of_variance': uv_mean_list})
df1['variance_type'] = 'unbiased_variance'

df2 = pd.DataFrame({'sample_size': sample_size_list, 'mean_of_variance': sv_mean_list})
df2['variance_type'] = 'sample_variance'

df = pd.concat([df1, df2])

sns.lineplot(data=df, x='sample_size', y='mean_of_variance', hue='variance_type')
plt.show()

샘플의 사이즈가 작은 부분은 표본 분산이 모분산보다 상당히 작아지지만, 샘플의 사이즈가 커지면서 모분산=1과의 편차가 작아지는 상황을 확인할 수 있다.

최후


처음 봤을 때 표본 분산과 편차 분산의 차이는 직관적으로 바로 머릿속에 들어가지 않지만 가시화되면 그리 어렵지 않다.

좋은 웹페이지 즐겨찾기