t-testを実行するこの関数は、辞書と同じキーを使用するサンプルと集団で実行します。意図したとおりにうまく動作します。ブートストラップtメソッドPythonの実装
def ttest_(d):
result = {}
for k, (l, t) in d.items():
mean_sample = np.mean(t)
mean_population = np.mean(l)
sd_sample = np.std(t, ddof=1)
sd_population = np.std(l, ddof=1)
sample_size = len(t)
population_size = len(l)
result[k] = round(((mean_sample - mean_population)/
np.sqrt(((sd_sample/np.sqrt(sample_size))**2) +
((sd_population/np.sqrt(population_size))**2))), 2)
どのようにするために、この機能を変更することができます: - :
それはブートストラップでのようなものの線に沿ってX回それを行う、>の代わりに、一度、最終的な計算を行います
for _ in range(1000)
- >前の手順では、キーごとにTテストの分布を作成し、結果[k]はn番目の百分位数の値になります。パラメータで指定して値0.05と言う。
編集#1: 明確にするために、私は関数を使用する方法は以下の通りである:そして
pairs = {}
for (k, v), (k2, v2) in product(population.items(), samples.items()):
if k == k2:
pairs.update({k: (v, v2)})
この辞書上の式を適用:
ttest_ = ttest_(pairs)
編集#2 : 辞書の辞書にこの関数を適用するこの構造を維持して、differen t個のサンプルとキーを取得し、関連する結果[k]を得る。唯一の違いは、ブートストラップとパーセンタイルの選択を追加することです。
編集#3: ノーマン質問のおかげで。新しい公式では、同じ標本[k]を母集団[k]から抜粋したランダムなサブサンプル(x回)と比較すると、その分布が得られます。それらのサブサンプルは元のサンプル[k]のサイズである。
私は「信頼できるソースから回答の図を探しています」........私は必ずしもその必要はありません。ちょうどよい完全な良い答え。ありがとう – hernanavella
「キーごとにt検定の分布を作成する」方法は?ブートストラップは何回行うのですか?それは、サンプルからランダムなサブサンプルを引き出し、それらのt値を計算すべきか? – Norman
@Normanしたがって、サンプルは常に(キーごとに)同じで、母集団から取り出されたサブサンプルと比較されます(x回)ので、xの異なるt値が得られます。 – hernanavella