为数据框中的人口比率添加置信区间
Adding confidence intervals for population rates in a dataframe
我有一个数据框,我在其中创建了一个新列,它将前三列(日期)与值相加。然后我根据人口列为每一行创建了一个比率。
我想为此数据集中每一行的“sum_of_days_rate”创建较低和较高的 95% 置信水平。
我可以创建前三列的平均值,但不确定如何为这三列的总和创建下限值和上限值 rate。
以下数据集示例:
data= {'09/01/2021': [74,84,38],
'10/11/2021': [43,35,35],
"12/01/2021": [35,37,16],
"population": [23000,69000,48000]}
df = pd.DataFrame (data, columns = ['09/01/2021','10/11/2021', "12/01/2021", "population"])
df['sum_of_days'] = df.loc[:, df.columns[0:3]].sum(1)
df['sum_of_days_rate'] = df['sum_of_days']/df['population'] * 100000
要估计置信区间,您需要对数据、数据分布方式或相关误差做出某些假设。我不确定你的数据点是什么意思,你为什么要总结它们等等
常用的比率分布是泊松分布,您可以构建置信区间,给定均值:
lb, ub = scipy.stats.poisson.interval(0.95,df.sum_of_days_rate)
df['lb'] = lb
df['ub'] = ub
数组ub 和lb 是95% 置信区间的上限和下限。最终数据框如下所示:
09/01/2021 10/11/2021 12/01/2021 population sum_of_days sum_of_days_rate lb ub
0 74 43 35 23000 152 660.869565 611.0 712.0
1 84 35 37 69000 156 226.086957 197.0 256.0
2 38 35 16 48000 89 185.416667 159.0 213.0
我有一个数据框,我在其中创建了一个新列,它将前三列(日期)与值相加。然后我根据人口列为每一行创建了一个比率。
我想为此数据集中每一行的“sum_of_days_rate”创建较低和较高的 95% 置信水平。
我可以创建前三列的平均值,但不确定如何为这三列的总和创建下限值和上限值 rate。
以下数据集示例:
data= {'09/01/2021': [74,84,38],
'10/11/2021': [43,35,35],
"12/01/2021": [35,37,16],
"population": [23000,69000,48000]}
df = pd.DataFrame (data, columns = ['09/01/2021','10/11/2021', "12/01/2021", "population"])
df['sum_of_days'] = df.loc[:, df.columns[0:3]].sum(1)
df['sum_of_days_rate'] = df['sum_of_days']/df['population'] * 100000
要估计置信区间,您需要对数据、数据分布方式或相关误差做出某些假设。我不确定你的数据点是什么意思,你为什么要总结它们等等
常用的比率分布是泊松分布,您可以构建置信区间,给定均值:
lb, ub = scipy.stats.poisson.interval(0.95,df.sum_of_days_rate)
df['lb'] = lb
df['ub'] = ub
数组ub 和lb 是95% 置信区间的上限和下限。最终数据框如下所示:
09/01/2021 10/11/2021 12/01/2021 population sum_of_days sum_of_days_rate lb ub
0 74 43 35 23000 152 660.869565 611.0 712.0
1 84 35 37 69000 156 226.086957 197.0 256.0
2 38 35 16 48000 89 185.416667 159.0 213.0