#python #pandas #anova #pingouin
Вопрос:
Я хотел выполнить повторное измерение anova с помощью pingouin rm_anova. Мои данные в длинном формате, с разными временными точками (временем), каждый идентификатор-это субъект, каждый субъект повторяется 3 раза в 3 разных временных точках. DV-это потеря веса, IV-это группа и время. Данные выглядят следующим образом:
id group time weight_loss
0 1083 NOPE b 0.000000
1 1146 Placebo b 0.000000
2 1214 Placebo b 0.000000
3 1317 Placebo b 0.000000
4 1318 NOPE b 0.000000
... ... ... ... ...
155 1805 NOPE pm 0.042579
156 1813 Placebo pm -0.084606
157 1819 Placebo pm -0.073008
158 1831 Placebo pm -0.018574
159 1837 NOPE pm -0.064956
Вот мой код:
import pingouin as pg
res = pg.rm_anova(dv = 'weight_loss', within = ['group', 'time'], data = sub, subject = 'id', detailed = True)
res
Но я получил сообщение об ошибке, подобное этому:
/python3.8/site-packages/numpy/lib/function_base.py:380: RuntimeWarning: Mean of empty slice.
avg = a.mean(axis)
/python3.8/site-packages/numpy/core/_methods.py:162: RuntimeWarning: invalid value encountered in true_divide
ret = um.true_divide(
/python3.8/site-packages/pandas/core/frame.py:8276: RuntimeWarning: Degrees of freedom <= 0 for slice
base_cov = np.cov(mat.T, ddof=ddof)
/python3.8/site-packages/numpy/lib/function_base.py:2480: RuntimeWarning: divide by zero encountered in true_divide
c *= np.true_divide(1, fact)
/python3.8/site-packages/numpy/lib/function_base.py:2480: RuntimeWarning: invalid value encountered in multiply
c *= np.true_divide(1, fact)
/python3.8/site-packages/numpy/lib/function_base.py:380: RuntimeWarning: Mean of empty slice.
avg = a.mean(axis)
/python3.8/site-packages/numpy/core/_methods.py:162: RuntimeWarning: invalid value encountered in true_divide
ret = um.true_divide(
/python3.8/site-packages/pandas/core/frame.py:8276: RuntimeWarning: Degrees of freedom <= 0 for slice
base_cov = np.cov(mat.T, ddof=ddof)
/python3.8/site-packages/numpy/lib/function_base.py:2480: RuntimeWarning: divide by zero encountered in true_divide
c *= np.true_divide(1, fact)
/python3.8/site-packages/numpy/lib/function_base.py:2480: RuntimeWarning: invalid value encountered in multiply
c *= np.true_divide(1, fact)
Я попробовал «внутри» переменной = [«время»], и это работает, но это не работает только для переменной [«группа»] или ее комбинации. Я также проверил NAs, и там нет ни NA, ни 0. Кто-нибудь знает, что случилось и как это исправить?
Заранее благодарю вас!