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 検定のバージョンをエミュレートするにはどうすればよいかということです。