Tableau - 计算和呈现流行病学的发病率和发病率10,000。

问题描述 投票:1回答:1

我想计算一种传染病的发病率(每天)、累计发病率(在一个较长的时间段内)、发病率10000(每天)和累计发病率10000(在一个较长的时间段内)。 这是针对整个美国、数量不等的州(后文简称 "i"),以及这些指定州中数量不等的县(后文简称 "j")的数据。 ("发病率 "是指在特定时间段内--在本例中是指一天--的病例数。)

数据在一个表格中,其栏目为 "日期"、"发病率"、"累计发病率"、"发病率10000"、"累计发病率10000"。 每个州和县的人口来自人口普查局的查询表,按 "州"、"县"、"人口 "组织(在程序上通过对 "州 "和 "县 "的JOIN完成)。

对于一个给定的衡量标准(例如,发病率10,000),计算如下 ('Incidence'/'Population') * 10,000.

在Tableau中做 "发生率 "和 "累积发生率 "是很直接的--使用SUM('发生率')与'日期'列的行和SUM('累积发生率')与'日期'列的行。

做 "发生率1,000 "和 "累计发生率10,000 "就不那么明显了。 对于美国来说,SUM('Cumulative Incidence')如预期的那样呈上升趋势;SUM('Cumulative Incidence Rate10,000')上升到一定程度,然后随着起伏而趋于平稳;SUM('Population')则渐进式上升,直到达到 "几乎 "美国的总人口。 我想我所看到的是,被测量的发病率从一个小的区域开始,并且一直在增长,直到几乎(但不是所有的州和县)都涉及到(有极少数的县不涉及,但所有的州都涉及到)。 我假设SUM('Population')实际上是某一天i=州和j=县的'Population'的Σij和某一天'Cumulative Incidence Rate10,000'的Σij。 它不是i = 州和j = 县在所有日子里的 "人口 "的Σij(也就是一个常数),它可以从查找表中获得。

有什么想法吗?我相信有一个简单的答案,但新的)。 使用Tableau Desktop 2020.1.3

我的感谢在前面。

tableau constants rate
1个回答
0
投票

听起来你可能需要一个汇总计算字段或一个详细程度(LOD)计算字段。

试着把汇总函数放入计算中,如 SUM([Incidence]) / SUM([Population]) 这种计算方式是先计算总和,然后在最后进行除法,而不是先计算每条记录的比率,然后再将比率相加。这在处理比率时往往是必要的。

此外,我希望你的Population值不是每天都在变化,所以如果你只是简单地使用Sum()来汇总它们,就会使分母膨胀。在这种情况下,你需要首先使用LOD计算在不同的细节层次上计算人口。在这种情况下,一个例子公式是这样的

SUM([Incidence]) / { FIXED [State], [County] : MAX([Population])}

在没有一些样本数据的情况下,很难说出正确的推荐公式,但很可能是类似上面的公式。


0
投票

亚历克斯--真是太感谢你了!!!。

你让我明白了90%的道理。 你的公式抛出了一个错误,抱怨说...。SUM([Incidence] 是聚合的,和 {FIXED [State], [County] : MAX([Population])} 不是。 这个修正是为了把这个变成 MAX({FIXED [State], [County] : MAX([Population])}) 是 Aggregated(是否使用 MAX(), MIN()AVG()既然你建议 MAX([Population] 首先,我就用了这个)。) 鉴于数字不大,在这种情况下,我选择了乘以10000,得出Incidence Rate10,000人(这在流行病学中很常见,比较不同人口数量的Incidence,以 "规范化 "相对风险)。 最后,公式变成了。

(SUM([Incidence]) * 10000) / MAX({FIXED [State], [County] : MAX([Population])})

这与表格中的数据相对应,计算公式为: ([Incidence] * 10000) / [Population] 每个州和县的。

© www.soinside.com 2019 - 2024. All rights reserved.