前提・実現したいこと
プログラム超初心者です。
ANACONDAをインストールしjupyter Notebookを用いて解析しています。
4群(A~D)での多重比較を行っています。
各群で4~6のサンプルがあります。
各群の正規性、分散までは求めることができました。
post-hocとして多重比較(Tukey法)を試みたところエラーがでました。
群間のサンプル数を同じにした場合プログラムは実行できましたが、サンプル数が異なる場合はエラーが生じるようです。
下記、各群のサンプル数が異なる場合でのプログラムについてご教授お願いします。
※下記にサンプルコードを記載してございますが、値については適当でかまいませんので、プログラムが実行できるコードをご教授お願い申し上げます。
例1:A~Cのサンプル数は5、Dのサンプル数は6の場合
例2:A、Bはサンプル数は5、Cは4、Dは6の場合
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last)
<ipython-input-16-aa8fb74b10ff> in <module>
11 D = np.array([10,7,3,5,7,2])
12
---> 13 tukey_hsd( (A,B,C,D), list('ABCD'), 6)
<ipython-input-16-aa8fb74b10ff> in tukey_hsd(lst, ind, n)
4 data_arr = np.hstack( lst )
5 ind_arr = np.repeat(ind, n)
----> 6 print(pairwise_tukeyhsd(data_arr,ind_arr))
7
8 A = np.array([15,9,18,14])
~\Anaconda3\lib\site-packages\statsmodels\stats\multicomp.py in pairwise_tukeyhsd(endog, groups, alpha)
42 """
43
---> 44 return MultiComparison(endog, groups).tukeyhsd(alpha=alpha)
~\Anaconda3\lib\site-packages\statsmodels\sandbox\stats\multicomp.py in init(self, data, groups, group_order)
818
819 if len(data) != len(groups):
--> 820 raise ValueError('data has %d elements and groups has %d' % (len(data), len(groups)))
821 self.data = np.asarray(data)
822 self.groups = groups = np.asarray(groups)
ValueError: data has 22 elements and groups has 24
該当のソースコード
from statsmodels.stats.multicomp import pairwise_tukeyhsd
import numpy as np
def tukey_hsd( lst, ind, n ):
data_arr = np.hstack( lst )
ind_arr = np.repeat(ind, n)
print(pairwise_tukeyhsd(data_arr,ind_arr))
A = np.array([15,9,18,14]) B = np.array([13,8,8,12,7,1]) C = np.array([10,6,11,7,12,3]) D = np.array([10,7,3,5,7,2]) tukey_hsd( (A,B,C,D), list('ABCD'), 6)
試したこと
●うまくいくコード
from statsmodels.stats.multicomp import pairwise_tukeyhsd
import numpy as np
def tukey_hsd( lst, ind, n ):
data_arr = np.hstack( lst )
ind_arr = np.repeat(ind, n)
print(pairwise_tukeyhsd(data_arr,ind_arr))
A = np.array([15,9,18,14,18])
B = np.array([13,8,8,12,7])
C = np.array([10,6,11,7,12])
D = np.array([10,7,3,5,7])
tukey_hsd( (A,B,C,D), list('ABCD'), 5)
サンプル数とプログラム最後の数字の数を一致させる(太字)と結果はでます。しかし、不一致である場合は上記のようなエラーがでてしまいます。
補足情報(FW/ツールのバージョンなど)
jupyter Notebook (ver.6.0.1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。