【问题标题】:Adding confidence intervals for population rates in a dataframe在数据框中添加人口率的置信区间
【发布时间】:2021-05-22 06:39:01
【问题描述】:

我有一个数据框,我在其中创建了一个新列,它将前三列(日期)与值相加。然后我根据人口列为每一行创建了一个比率。

我想为此数据集中每一行的“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

【问题讨论】:

    标签: python scipy statistics statsmodels confidence-interval


    【解决方案1】:

    要估计置信区间,您需要对数据、数据分布方式或相关误差做出某些假设。我不确定您的数据点是什么意思,为什么要总结它们等等。

    利率的常用分布是泊松分布,您可以在给定均值的情况下构建置信区间:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-30
      • 2018-10-30
      • 2012-02-28
      • 2014-09-18
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多