Невозможно выполнить двустороннюю анову с данными подсчета и двоичным ответом. То, что вы можете сделать, - это тест Чишка, чтобы проверить, что пропорции ссуды == 1 не равны во всех семьях:
import seaborn as sns
import pandas as pd
from scipy.stats import chi2_contingency
Мне нужно вернуть что-то вроде вашего исходного df:
df = pd.DataFrame({
'Family':np.repeat(np.arange(1,5),[1472,1296,1010,1222]),
'Personal Loan':np.repeat([0,1,0,1,0,1,0,1],
[1365,107,1190,106,877,133,1088,134]),
})
gp = df.groupby(["Family","Personal Loan"])["Personal Loan"].count()
gp
Family Personal Loan
1 0 1365
1 107
2 0 1190
1 106
3 0 877
1 133
4 0 1088
1 134
Name: Personal Loan, dtype: int64
Теперь мы выполняем chi-sq с использованием кросс-таблицы:
contingency = pd.crosstab(df['Family'],df['Personal Loan'])
test = chi2_contingency(contingency)
test
(29.676116414854746, 1.6144121228248757e-06, 3, array([[1330.688, 141.312],
[1171.584, 124.416],
[ 913.04 , 96.96 ],
[1104.688, 117.312]]))
2-е значение, 1.614e-06, представляет собой p-значение вашего теста, что весь кредит == 1 крыса ios равны