如何通过将 males/females 与数据框列分开来找到 95% 的置信区间?
How to find a 95% confidence interval by separating males/females from a dataframe column?
Give a 95% confidence interval for the average rating for male reviewers, and do the same for female
##reviewers.
group2 = bigdataframe[['rating']].groupby(bigdataframe['gender'])
group2.count()
FN = 25740
MN = 74260
group2.mean()
F = 3.531507
M = 3.529289
group2.std()
FS = 1.170951
MS = 1.109556
F - 1.96(FS/(np.sqrt(NF)))
F + 1.96(FS/(np.sqrt(NF)))
M - 1.96(MS/(np.sqrt(NM)))
M + 1.96(MS/(np.sqrt(NM)))
My error: 'float' object is not callable
首先,我使用groupby根据每个性别统计评论。然后我能够使用 mean/std 函数来获取公式所需的数字。非常感谢任何帮助!
像这样使用 agg
函数的东西可能更适合您的应用程序。您甚至可以编写一个用于聚合的自定义函数。但在这里我创建了置信区间上限值。在聚合结果中引用列时,需要使用元组。为我的小样本量违反正态性假设而道歉)!
import numpy as np
import pandas as pd
sx = np.array(['M','M','M','F','F','F'])
val = np.random.normal(0,1,6)
df = pd.DataFrame({'sex':sx, 'value':val})
gp = df.groupby('sex')
result = gp.agg(['mean','std','count'])
result[('value','upper_ci')] = result[('value', 'mean')] + 1.96*np.divide(result[('value','std')], np.sqrt(result[('value','count')]))
Give a 95% confidence interval for the average rating for male reviewers, and do the same for female
##reviewers.
group2 = bigdataframe[['rating']].groupby(bigdataframe['gender'])
group2.count()
FN = 25740
MN = 74260
group2.mean()
F = 3.531507
M = 3.529289
group2.std()
FS = 1.170951
MS = 1.109556
F - 1.96(FS/(np.sqrt(NF)))
F + 1.96(FS/(np.sqrt(NF)))
M - 1.96(MS/(np.sqrt(NM)))
M + 1.96(MS/(np.sqrt(NM)))
My error: 'float' object is not callable
首先,我使用groupby根据每个性别统计评论。然后我能够使用 mean/std 函数来获取公式所需的数字。非常感谢任何帮助!
像这样使用 agg
函数的东西可能更适合您的应用程序。您甚至可以编写一个用于聚合的自定义函数。但在这里我创建了置信区间上限值。在聚合结果中引用列时,需要使用元组。为我的小样本量违反正态性假设而道歉)!
import numpy as np
import pandas as pd
sx = np.array(['M','M','M','F','F','F'])
val = np.random.normal(0,1,6)
df = pd.DataFrame({'sex':sx, 'value':val})
gp = df.groupby('sex')
result = gp.agg(['mean','std','count'])
result[('value','upper_ci')] = result[('value', 'mean')] + 1.96*np.divide(result[('value','std')], np.sqrt(result[('value','count')]))