【问题标题】:Compare the annual rates between groups比较组间的年费率
【发布时间】:2021-11-02 09:45:27
【问题描述】:

我正在努力比较两个百分比在一段时间内的“死亡率”。我的目标是获得每组的年费率。

我的值已经以百分比表示(startend 值),表示几年来森林总覆盖率中 mych 森林的消失情况(干扰、烧毁、砍伐等)。例如,第一年是 1%,最后一年 20% 是森林总损失的累积值。

我按照Compound annual growth rateCARG)的计算,考虑了第一年、去年和总年数的值。

这是我的两组虚拟数据,例如。死亡率取决于树种:

df <- data.frame(group = c('pine', 'beech'),
                 start = c(1,2),
                 end = c(19, 30),
                 years = 18)

为了计算 CAGR,我使用了这个函数:

CAGR_formula <- function(end, start, yrs) {
  values <- ((end/start)^(1/yrs)-1)
  return(values)
}

给予:

df %>% 
 mutate(CARG = CAGR_formula(end, start, yrs)*100)

  group start end yrs     CARG
1  pine     1  19  18   17.8
2 beech     2  30  18   16.2

但是,16-17% 的 CARG 率似乎非常高!我预计每年大约 1-3%。请问,我的公式有什么问题?是因为原始值(开始,结束)已经是百分比吗?还是因为endstart的累积值?

感谢您的想法!

【问题讨论】:

    标签: r math rate fpgrowth


    【解决方案1】:

    如果我理解正确,也许这就是我们想要的:

    df %>% 
      mutate(CARG = CAGR_formula(1 - end/100, 1, yrs)*100)
    
    #>   group start end yrs      CARG
    #> 1  pine     1  19  18 -1.163847
    #> 2 beech     2  30  18 -1.962024
    

    其中startCARG() 的参数始终为1(在此计算中可以忽略第1 年的值),这意味着森林为100%,CARG()end 参数为@987654326 @,例如第一行 81% 的森林在 18 年后仍然存在。

    由此产生的年死亡率分别为 1.17% 和 1.96%。

    我们可以验证 1 * (1 - 0.0117)^18 大约是 81%,而 1 * (1 - 0.0196)^18 大约是 70%

    【讨论】:

    • 谢谢@Aurèle,这种从 1 号开始(100% 森林)而不是从伤害开始的改编很可能取得了成功,并导致了更多预期的计算率。再次感谢!
    【解决方案2】:

    为什么看起来很高?从 1% 到 19% 是一个很大的飞跃。还: 1 * 1.178^18 = 19.086

    我觉得不错

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2012-04-14
      • 2019-03-13
      相关资源
      最近更新 更多