3

MS Excel の t-probe 関数を Python でエミュレートしようとしています。以前は Excel で行っていた計算の一部を自動化する必要があるため、これを行う必要があります。ここに私のテストプログラムがあります:

import scipy.stats
a = [5, 0.9,  -0.4, -0.9, 0.5, 0.8, 0.2, 0.2, 0, -0.8]
b = [1.1, 0.9, -0.5, -0.7, 0.6, 0.7, 0.3, 0.1, -0.1, -0.7]

print scipy.stats.ttest_ind(a,b, equal_var=True)

結果は次のとおりです。

(array(0.6661542796363409), 0.51376033318001801)

ただし、Excel は同じ入力に対して次の値を返します: 0.35844407

tail=2 パラメーターを使用していることに気付きました ( http://office.microsoft.com/en-us/excel-help/ttest-HP005209325.aspxを参照)。残念ながら、scipy で両側 t 検定を計算する方法がわかりません。(実際、それが何かはわかりません。)

もう 1 つの非常に奇妙な点は、scipy でサンプルの順序を変更すると、まったく異なる結果が得られることです。たとえば、-0.7 を b の先頭に移動すると、0.51376033318001801 ではなく 0.51376033318001824 が得られます。大きな違いはありませんが、それでも。

Excel の場合、これはまったく新しい話です。サンプルの順序が異なると、両側 t 検定の結果が大きく異なるように見えます。

問題は、scipy で Excel の両側 t 検定のバージョンをエミュレートするにはどうすればよいかということです。

4

1 に答える 1

5

Excel計算しているようですttest_rel

In [15]: import scipy.stats as stats

In [20]: stats.ttest_rel(a, b)
Out[20]: (array(0.9677712267394081), 0.35844406902161985)

とが関連しているstats.ttest_rel場合に使用します。ドキュメントは言う:ab

[of ttest_rel] の使用例は、異なる試験での同じ学生のセットのスコア、または同じユニットからの繰り返しサンプリングです。

とが独立している場合は、 stats.ttest_indを使用します。ab

[ttest_ind] は、同じ母集団または異なる母集団からの 2 つの独立したサンプルを観察する場合に使用できます。たとえば、男の子と女の子、または 2 つの民族グループの試験の点数です。

于 2013-07-19T18:45:38.683 に答える