51

ではR、単純に 2 標本の片側 t 検定を実行できます。

> A = c(0.19826790, 1.36836629, 1.37950911, 1.46951540, 1.48197798, 0.07532846)
> B = c(0.6383447, 0.5271385, 1.7721380, 1.7817880)
> t.test(A, B, alternative="greater")

    Welch Two Sample t-test

data:  A and B 
t = -0.4189, df = 6.409, p-value = 0.6555
alternative hypothesis: true difference in means is greater than 0 
95 percent confidence interval:
 -1.029916       Inf 
sample estimates:
mean of x mean of y 
0.9954942 1.1798523 

Python の世界では、scipy同様の関数ttest_indを提供しますが、これは両側 t 検定しか実行できません。私が見つけたトピックに最も近い情報はこのリンクですが、どちらかというと片側対両側の実装ポリシーの議論のようscipyです。

したがって、私の質問は、を使用してテストの片側バージョンを実行する方法の例または指示を誰かが知っているということnumpy/scipyです?

4

6 に答える 6

91

メーリング リストのリンクから:

片側検定は両側検定から取り消される可能性があるためです。(対称分布では、片側 p 値は両側 p 値のちょうど半分です)

scipy は常にテスト統計を署名済みとして提供すると言い続けます。これは、両側検定からの p 値と t 値が与えられた場合、 より大きい場合は検定の帰無仮説を棄却し、 の場合はより小さい検定の帰無仮説を棄却することを意味しp/2 < alpha and t > 0ますp/2 < alpha and t < 0

于 2013-04-13T04:39:07.277 に答える
4

帰無仮説が でHo: P1>=P2、対立仮説が の場合Ha: P1<P2。Python でテストするには、次のように記述しttest_ind(P2,P1)ます。(位置が最初に P2 であることに注意してください)。

first = np.random.normal(3,2,400)
second = np.random.normal(6,2,400)
stats.ttest_ind(first, second, axis=0, equal_var=True)

以下のような結果が得られます Ttest_indResult(statistic=-20.442436213923845,pvalue=5.0999336686332285e-75)

Python では、statstic <0実際の p 値がである場合real_pvalue = 1-output_pvalue/2= 1-5.0999336686332285e-75/2、これは約 0.99 です。p 値が 0.05 より大きいため、6>=3 という帰無仮説を棄却することはできません。の場合statstic >0、真の z スコアは実際には に等しく-statstic、真の p 値は pvalue/2 に等しくなります。

Ivc の答えは、次の場合(1-p/2) < alpha and t < 0である必要があります。より小さい仮説を棄却できます。

于 2017-09-14T22:29:18.767 に答える
-2

これを見ましたか: numpy を使用して統計 "t-test" を計算する方法

それがまさにこの質問が見ているものだと思います。

基本的:

import scipy.stats
x = [1,2,3,4]
scipy.stats.ttest_1samp(x, 0)

Ttest_1sampResult(statistic=3.872983346207417, pvalue=0.030466291662170977)

R のこの例と同じ結果です。https://stats.stackexchange.com/questions/51242/statistical-difference-from-zero

于 2018-12-14T16:52:08.203 に答える