Pythonで信頼区間を理解する

ソースノード: 1883080

この記事は、の一部として公開されました データサイエンスブログソン.

目次

  1. 概要
  2. Z統計を使用した信頼区間
  3. 信頼区間の解釈
  4. z統計を使用したCIの仮定
  5. t統計量の信頼区間
  6. t統計量を使用したCIの仮定
  7. ペアのデータを使用してt間隔を作成する
  8. z値とt値:いつ何を使用するか?
  9. Pythonの信頼区間
  10. エンドノート

概要

統計問題を解くときはいつでも、母集団パラメータの推定に関心がありますが、多くの場合、母集団パラメータを計算することはほぼ不可能です。 代わりに、母集団からランダムなサンプルを取得し、母集団のパラメーターを概算することを期待してサンプル統計を計算します。 しかし、サンプルが母集団の真の代表であるかどうか、またはこれらのサンプル統計が母集団パラメーターからどれだけ逸脱しているかをどのように知ることができますか? ここで、信頼区間が重要になります。 それで、これらの間隔は何ですか? 信頼区間は、サンプル統計の上下に及ぶ値の範囲です。または、サンプル統計の周囲の値の範囲に真の母集団パラメーターが含まれる確率として定義することもできます。

Z統計を使用した信頼区間

トピックを深く掘り下げる前に、いくつかの統計用語について理解しましょう。

人口:それはすべての類似した個人のセットです。 たとえば、都市の人口、大学の学生など。

サンプル:それは、母集団から引き出された類似した個人の小さなセットです。 同様に、ランダムサンプルは、母集団からランダムに抽出されたサンプルです。

パラメータ:母集団から導出された平均(mu)、標準偏差(sigma)、比率(p)。

統計値:サンプルに関係する平均(xバー)、標準偏差(S)、比率(p ^)。

Zスコア:標準偏差で正規化された平均からの正規分布上の生データポイントの距離です。 によって与えられた: x-mu / sigma

これで、信頼区間の概念を深く掘り下げる準備が整いました。 どういうわけか、生の数学的定義よりも、関連性のある例を通して概念を理解する方がはるかに良いと思います。 それでは始めましょう。

あなたが人口100,000万人の都市に住んでいて、選挙が間近に迫っているとします。 世論調査員として、あなたは誰が選挙に勝つか、青い党か黄色かを予測しなければなりません。 つまり、母集団全体から情報を収集することはほとんど不可能であることがわかります。そのため、ランダムに100人を選びます。 調査の最後に、62%の人が黄色に投票することがわかりました。 ここで問題となるのは、黄色が勝つ確率が62%であると結論付ける必要があるのか​​、それとも全人口の62%が黄色に投票するのかということです。 まあ、答えはノーです。 推定値が真のパラメーターからどれだけ離れているかはわかりません。別のサンプルを取得すると、結果が58%または65%になる可能性があります。 したがって、代わりに行うことは、実際の母集団の比率をキャプチャする可能性が最も高いサンプル統計の周りの値の範囲を見つけることです。 ここで、比率とは

Pythonの信頼区間

                                                                   画像は作者のものです

ここで、そのようなサンプルを3個取り、各サンプルのサンプル比率をプロットすると、サンプリング比率の正規分布が得られ、分布の平均が母集団比率の最も近似値になります。 そして、私たちの推定値は、分布曲線のどこにでもある可能性があります。 95シグマの法則に従って、確率変数の約2%が分布の平均からXNUMX標準偏差以内にあることがわかります。 したがって、その確率は次のように結論付けることができます。 p^ の2標準偏差以内です p 95%です。 または、pがp ^の上下2標準偏差以内にある確率も95%であると言うこともできます。 これらのXNUMXつのステートメントは事実上同等です。 p ^の上下のこれらのXNUMXつのポイントは、信頼区間です。

Pythonの信頼区間

                                                           画像は作者のものです

どういうわけかシグマを見つけることができれば、必要な間隔を計算できます。 ただし、ここでのシグマは母集団パラメータであり、計算がほぼ不可能であることが多いため、代わりにサンプル統計、つまり標準誤差を使用します。 これは次のように与えられます

ここで、p ^ =サンプルの比率、n =サンプルの数

SE =√(0.62。0.38/ 100)= 0.05

したがって、2xSE = 0.1

データの信頼区間は(0.62-0.1,0.62 + 0.1)または(0.52,0.72)です。 2xSEを使用したため、これは95%の信頼区間に相当します。

さて、問題は、92%の信頼区間を作成したい場合はどうなるかということです。 前の例では、2にSEを掛けて、95%の信頼区間を作成しました。この2は、95%の信頼区間(正確な値は1.96)のzスコアであり、この値はzテーブルから見つけることができます。 92%信頼区間のzの臨界値は1.75です。 参照する この zスコアとzテーブルをよりよく理解するための記事。

間隔は次の式で与えられます:(p ^ + z * .SE、p ^ -z * .SE)。

サンプル比率の代わりにサンプル平均が与えられた場合、標準誤差は次のようになります。 sigma / sqrt(n)。 ここにシグマ 代わりにサンプルの標準偏差を使用しないことが多いため、は母標準偏差です。 しかし、平均が与えられたこの種の推定では、結果が少し偏る傾向があることがよく見られます。 したがって、このような場合は、z統計の代わりにt統計を使用することをお勧めします。

z統計を使用した信頼区間の一般式は次の式で与えられます。

ここで、統計はサンプル平均またはサンプル比率のいずれかを指します。 シグマs 母標準偏差です。

信頼区間の解釈

信頼区間を正しく解釈することは非常に重要です。 95%信頼区間を(0.52,0.62)と計算した前の世論調査員の例を考えてみましょう。 どういう意味ですか? さて、95%の信頼区間は、母集団からn個のサンプルを抽出した場合、95%の確率で、導出された区間に真の母集団の比率が含まれることを意味します。 95%の信頼区間は、その区間に真の母比率が含まれる確率が95%であることを意味するわけではないことを覚えておいてください。 たとえば、90%の信頼区間の場合、母集団から10個のサンプルを抽出すると、その間隔の9倍のうち10個に真の母集団パラメーターが含まれます。 より良い理解のために下の写真を見てください。

信頼区間の解釈

                                                            画像は作者のものです

Z統計を使用した信頼区間の仮定

z統計を使用して有効な信頼区間を構築するために探す必要のある特定の仮定があります。

  1. ランダムサンプル:サンプルはランダムである必要があります。 層化サンプリング、単純ランダムサンプリング、ランダムサンプルを取得するためのクラスターサンプリングなど、さまざまなサンプリング方法があります。
  2. 通常の条件:データは、この条件np ^> = 10およびn。(1-p ^)> = 10を満たす必要があります。 つまり、基本的には、サンプル平均のサンプリング分布は、どちらの側にも偏っていない、正常である必要があるということです。
  3. 独立:サンプルは独立している必要があります。 サンプルの数は、総人口の10%以下である必要があります。または、サンプリングが置換で行われる場合。

T統計量の信頼区間

サンプルサイズが比較的小さく、母標準偏差が指定されていないか、想定できない場合はどうなりますか? 信頼区間をどのように構築しますか? そこで、t統計が出てきます。ここで信頼区間を見つけるための基本的な式は、z *をt *に置き換えただけで同じです。 一般式は次の式で与えられます。

ここで、S =サンプルの標準偏差、n =サンプルの数

パーティーを主催し、ゲストによるビールの平均消費量を見積もりたいとします。 したがって、20人の個人のランダムなサンプルを取得し、ビールの消費量を測定します。 サンプルデータは対称であり、平均値は0f 1200 ml、標準偏差は120mlです。 したがって、ここで95%の信頼区間を作成したいとします。

したがって、サンプルの標準偏差、サンプルの数、およびサンプルの平均があります。 必要なのはt *だけです。 したがって、自由度が95(n-19 = 1-20)の1%信頼区間のt *は2.093です。 したがって、必要な間隔は、計算後(1256.16、1143.83)で、許容誤差は56.16です。 参照する この Tテーブルの読み方を知るためのビデオ。

T統計量を使用したCIの仮定

ここでのz統計の場合と同様に、t統計の場合も、特定のデータで注意する必要のあるいくつかの条件があります。

  1. サンプルはランダムである必要があります
  2. サンプルは正常である必要があります。 正規であるためには、サンプルサイズは30以上であるか、親データセット、つまり母集団がほぼ正規である場合に必要です。 または、サンプルサイズが30未満の場合、分布はほぼ対称である必要があります。
  3. 個々の観察は独立している必要があります。 これは、10%のルールに従うか、サンプリングが置換で行われることを意味します。

ペアデータのT間隔を作成する

これまで、3サンプルのデータしか使用していませんでした。 次に、ペアのデータのt間隔を作成する方法を説明します。 ペアのデータでは、同じ個人についてXNUMXつの観測を行います。 たとえば、学生のテスト前とテスト後のマーク、または薬物とプラセボが人のグループに及ぼす影響に関するデータを比較します。 ペアのデータでは、XNUMX番目の列のXNUMXつの観測値の違いが見つかりました。 いつものように、この概念を理解するための例も見ていきます。

Q.教師が、新しいカリキュラムがテスト結果に与える影響を評価しようとしました。 以下は観察結果です。

ペアデータのT間隔

                                                      画像は作者のものです

平均差の間隔を見つけるつもりなので、差の統計のみが必要です。 以前に使用したのと同じ式を使用します

統計+-(臨界値またはt値)(統計の標準偏差)

xd =差の平均、Sd =サンプル標準偏差。自由度95t *の5%CIの場合、2.57で与えられます。 許容誤差= 0.97および信頼区間(4.18,6.13)。

解釈:信頼区間にゼロまたは負の値が含まれていないことがわかるように、上記の推定値から。 したがって、新しいカリキュラムは学生のテストパフォーマンスにプラスの影響を与えたと結論付けることができます。 マイナスの値しかない場合は、カリキュラムがマイナスの影響を与えたと言えます。 または、ゼロが含まれている場合は、差がゼロであるか、テスト結果に対するカリキュラムの影響がない可能性があります。

Z値とT値

いつ何を使うかについては、最初は多くの混乱があります。 経験則では、サンプルサイズが30以上で、母標準偏差がz統計を使用することがわかっている場合です。 サンプルサイズが30未満の場合は、t統計を使用します。 実生活では、母集団パラメーターがないため、サンプルサイズに基づいてzまたはtを使用します。

小さいサンプル(n <30)では、中心極限定理は適用されず、スチューデントのt分布と呼ばれる別の分布が使用されます。 t分布は正規分布に似ていますが、サンプルサイズに応じて異なる形状を取ります。 z値の代わりに、サンプルが小さいほど大きいt値が使用され、誤差が大きくなります。 サンプルサイズが小さいと、精度が低下します。

Pythonの信頼区間

Pythonには、あらゆる種類の統計計算をサポートする膨大なライブラリがあり、私たちの生活を少し楽にしてくれます。 このセクションでは、幼児の睡眠習慣に関するデータを見ていきます。 これらの観察の20人の参加者は健康で、正常に行動し、睡眠障害はありませんでした。 私たちの目標は、昼寝をしている幼児と昼寝をしていない幼児の就寝時間を分析することです。

参照:Akacem LD、Simpkin CT、Carskadon MA、Wright KP Jr、Jenni OG、Achermann P、etal。 (2015)概日時計と睡眠のタイミングは、昼寝をしている幼児と昼寝をしていない幼児で異なります。 PLoS ONE 10(4):e0125181。 https://doi.org/10.1371/journal.pone.0125181

必要なライブラリをインポートします

import numpy as np import pandas as pd from scipy.stats import t pd.set_option('display.max_columns', 30) # DataFrame import math のすべての列を表示できるように設定
df = pd.read_csv(nap_no_nap.csv)#データの読み取り
df.head()
Pythonの信頼区間

平均就寝時間に対して95つのXNUMX%信頼区間を作成します。XNUMXつは昼寝をする幼児用で、もうXNUMXつは昼寝をしない幼児用です。 まず、新しい変数に昼寝をした人と、別の新しい変数に昼寝をしなかった人の「夜の就寝時間」の列を分離します。 ここでの就寝時間はXNUMX進数です。

bedtime_nap = df['夜の就寝時間'].loc[df['昼寝'] == 1] bedtime_no_nap = df['夜の就寝時間'].loc[df['昼寝'] == 0]

print(len(bedtime_nap))

print(len(bedtime_no_nap))

出力:15 n 5


ここで、napとno_napのサンプル平均就寝時間を見つけます。

昼寝の平均就寝時間 = 就寝時間の昼寝.平均() #20.304 昼寝の平均就寝時間なし = 就寝時間の昼寝の平均() #19.59

ここで、Xのサンプル標準偏差を見つけます昼寝 とX昼寝なし 

昼寝時間 = np.std(昼寝時間,ddof=1) 昼寝時間なし = np.std(昼寝時間なし,ddof=1)

注:サンプル標準偏差の場合、ddofパラメーターは1に設定されます。そうでない場合、母標準偏差になります。

ここで、Xのサンプル標準誤差を見つけます昼寝 とX昼寝なし 

nap_se_mean_bedtime = nap_s_bedtime/math.sqrt(len(bedtime_nap)) #0.1526 no_nap_se_mean_bedtime = no_nap_s_bedtime/math.sqrt(len(bedtime_no_nap)) #0.2270

これまでのところ良好ですが、サンプルサイズが小さく、母比率の標準偏差がないため、t *値を使用します。 t *値を見つけるXNUMXつの方法は、次を使用することです。 scipy.stats t.ppf 関数。 t.ppf()の引数は、q =パーセンテージ、df =自由度、scale = std dev、loc = meanです。 t分布は95%の信頼区間で対称であるため、qは0.975になります。 参照する この t.ppf()の詳細については。

nap_t_star = t.ppf(0.975,df=14) #2.14 no_nap_t_star = t.ppf(0.975,df=5) #2.57

ここで、ピースを追加して、最終的に信頼区間を構築します。

nap_ci_plus = nap_mean_bedtime + nap_t_star * nap_se_bedtime

nap_ci_minus = nap_mean_bedtime – nap_t_star * nap_se_bedtime

print(nap_ci_minus、nap_ci_plus)

no_nap_ci_plus = no_nap_mean_bedtime + no_nap_t_star * nap_se_bedtime

no_nap_ci_minus = no_nap_mean_bedtime – no_nap_t_star * nap_se_bedtime

print(no_nap_ci_minus、no_nap_ci_plus)


出力: 19.976680775477412 20.631319224522585 18.95974084563192 20.220259154368087

解釈: 

上記の結果から、昼寝をしている幼児の平均就寝時間は95〜19.98(pm)であり、昼寝をしていない幼児の平均就寝時間は20.63〜18.96(pm)であると20.22%確信していると結論付けます。 これらの結果は、日中に昼寝をすると夜遅くまで眠るという私たちの予想通りです。

エンドノート

つまり、これはすべて、z値とt値を使用した単純な信頼区間に関するものでした。 統計的研究の場合に知ることは確かに重要な概念です。 サンプルデータから母集団パラメータを推定するための優れた推論統計手法。 信頼区間は、95%のCIの場合、異常のために5%のスペースを残すという仮説検定にもリンクされています。 帰無仮説が信頼区間内にある場合、p値は大きくなり、帰無仮説を棄却することはできません。 逆に、それを超える場合は、帰無仮説を棄却して対立仮説を受け入れるのに十分な証拠があります。

記事と明けましておめでとうございます(:

この記事に示されているメディアは Analytics Vidhya が所有するものではなく、著者の裁量で使用されています。

出典:https://www.analyticsvidhya.com/blog/2022/01/understanding-confidence-intervals-with-python/

タイムスタンプ:

より多くの 分析Vidhya