尝试与 groupby 和 Anova 一起工作
Trying to work together with groupby and Anova
我有一个数据集,其中包含家庭人数(1 到 4)和贷款(0 和 1)的分类值。我想知道家庭规模的平均值和贷款之间是否存在显着差异。
我做了 groupby 以按家庭规模计算贷款数量:
gp = df.groupby(["Family", "Personal Loan"])["Personal Loan"].count()
输出
Family Personal Loan
1 0 1365
1 107
2 0 1190
1 106
3 0 877
1 133
4 0 1088
1 134
现在我需要应用 f_two 方式方差分析来查看贷款和家庭人数之间是否存在显着差异。需要帮助如何去做。
您不能使用计数数据和二元响应进行双向方差分析。你可以做的是 chisq 测试,以测试 loan==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
现在我们使用交叉表进行卡方检验:
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]]))
第二个值 1.614e-06 是所有贷款 == 1 比率都相等的测试的 p 值
我有一个数据集,其中包含家庭人数(1 到 4)和贷款(0 和 1)的分类值。我想知道家庭规模的平均值和贷款之间是否存在显着差异。 我做了 groupby 以按家庭规模计算贷款数量:
gp = df.groupby(["Family", "Personal Loan"])["Personal Loan"].count()
输出
Family Personal Loan
1 0 1365
1 107
2 0 1190
1 106
3 0 877
1 133
4 0 1088
1 134
现在我需要应用 f_two 方式方差分析来查看贷款和家庭人数之间是否存在显着差异。需要帮助如何去做。
您不能使用计数数据和二元响应进行双向方差分析。你可以做的是 chisq 测试,以测试 loan==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
现在我们使用交叉表进行卡方检验:
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]]))
第二个值 1.614e-06 是所有贷款 == 1 比率都相等的测试的 p 值