2016-07-13 135 views
2

私はPythonでSciPyを使用して、次何らかの理由nan値返しています:SciPyは、分散が0のサンプルでt検定のために `nan`を返すのはなぜですか?

>>>stats.ttest_ind([1, 1], [1, 1]) 
Ttest_indResult(statistic=nan, pvalue=nan) 

>>>stats.ttest_ind([1, 1], [1, 1, 1]) 
Ttest_indResult(statistic=nan, pvalue=nan). 

をしかし、私は別の要約統計量を持っているサンプルを使用するたびに、私は実際に妥当な値を取得:

stats.ttest_ind([1, 1], [1, 1, 1, 2]) 
Ttest_indResult(statistic=-0.66666666666666663, pvalue=0.54146973927558495). 

nanのp値を代わりに0と解釈することは妥当ですか?統計から、同じサマリー統計を持つサンプルに対して2サンプルのt検定を実行することは意味がありませんか?

+0

私は問題は、ttestsには標準偏差による除算が含まれていると思います。私は代わりに標準偏差が0であるかどうかを調べるでしょう。なぜなら、それがナノを返す他のケースがあるかもしれないからです(彼らが何であろうと確信していません)。 –

答えて

3

0で除算すると、NaN(=数字ではない)例外が発生します。または、慣習的にNaNと一致する浮動小数点表現を返します。 N除算とN除算1標準偏差の式に特に注意してください。

+2

そのコメントは "N [N]対N - **マイナス** - 一つ[...] " –

関連する問題