2017-10-11 6 views
2

これは、MATLABからのPython KSテストを呼び出すために簡単です:
コールPythonは

foo = py.scipy.stats.ks_2samp(rand(1,50),rand(1,70)); 

をしかし、私はアンダーソン・ダーリングK-サンプルテストをこのように呼ぶとき私は1つのエラーが表示されます。

別のエラーで
bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70)); 
"Python Error: AxisError: axis -1 is out of bounds for array of dimension 0" 

とこのような結果

bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),false); 
bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),'false'); 
bar = py.scipy.stats.anderson_ksamp(rand(1,50),rand(1,70),'midrank=false'); 
"Python Error: TypeError: anderson_ksamp() takes from 1 to 2 positional arguments but 3 were given" 
(ここでは、私は前のエラーの原因である可能性があります考えて、midrankが= falseを設定しようとしています)

私はhttps://docs.scipy.org/doc/scipy/reference/stats.htmlとMatlabからのPythonの呼び出しについての古い質問を読んだことがありますが、古い質問は現在のAPIには当てはまりません。

質問1:MATLABでanderson_ksampを呼び出すにはどうすればよいですか?
質問2:このテストの有意水準を変更するにはどうすればよいですか?

答えて

1

関数の引数が間違っています。

変数の2つのベクトルを受け取るため、そこには良いです。

anderson_ksampexpectsベクトルのシリーズ受け取るために:だから

scipy.stats.anderson_ksamp (samples, midrank=True)

samples : sequence of 1-D array_like

Array of sample data in arrays.

を、あなたは、各セルはサンプルのベクトルであるセル配列を作成しなければならない、とあなたのために、最初の引数として渡しますサンプルの寸法が異なる可能性があります。

2つのベクトルが同じ分布から来ているかどうかをテストする場合は、通常のanderson testを使用する必要があります。これはKolmogorov-Smirnov 2サンプルテストに非常に似ています。値を連結し、単一のベクトルとしてそれを送ります。

重要度は、変更できません。それらは予め定義され、10%、5%、2.5%、および1%レベルで計算されます(少なくとも)。実用的な目的には十分です。