У меня есть фрейм данных с несколькими категориальными функциями, на котором я пытаюсь выполнить проверку гипотезы Крускала-Уоллиса. Прямо сейчас я передаю y
для каждого отдельного значения каждого из этих столбцов, собирая их сначала в dict:
# run h test on each categorical variable
alpha = 0.05
for c in X_categorical:
samples = {}
for s in set(d_test_data[c].tolist()):
samples[s] = d_test_data["SalePrice"][d_test_data[c] == s].copy()
stat, p = scipy.stats.kruskal(*samples)
print(f"{c}: t-stat: {stat}, p: {p}")
if p < alpha:
print("reject null hypothesis", "\n")
else:
print("unable to reject null hypothesis", "\n")
Но затем я получаю следующую ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-135-b25ef3aa14d5> in <module>
19 for s in set(d_test_data[c].tolist()):
20 samples[s] = d_test_data["SalePrice"][d_test_data[c] == s].copy()
---> 21 stat, p = scipy.stats.kruskal(*samples)
22 print(f"{c}: t-stat: {stat}, p: {p}", "\n")
23 if p < alpha:
c:\users\jpaul\appdata\local\programs\python\python37\lib\site-packages\scipy\stats\stats.py in kruskal(*args, **kwargs)
5838 if arg.size == 0:
5839 return KruskalResult(np.nan, np.nan)
-> 5840 n = np.asarray(list(map(len, args)))
5841
5842 if 'nan_policy' in kwargs.keys():
TypeError: len() of unsized object
Что я могу сделать, чтобы функция принимала мои данные? Я пытался использовать to_list()
, чтобы преобразовать их из pandas.Series
в списки, прежде чем сохранять их в моем файле. Я все еще получаю ту же ошибку.