TowardsDataScience 博客中文翻译 2020(三百四十七)

原文:TowardsDataScience Blog

协议:CC BY-NC-SA 4.0

使用 GARCH 估计货币波动

原文:https://towardsdatascience.com/estimating-currency-volatility-using-garch-e373cf82179d?source=collection_archive---------26-----------------------

GARCH 如何用于资产价格波动建模

免责声明:本文是在“原样”的基础上编写的,没有任何担保。它旨在提供数据科学概念的概述,不应被解释为投资建议或任何其他类型的专业建议。

资产价格在时间序列中具有高度的随机趋势。换句话说,价格波动受很大程度的随机性影响,因此很难使用传统的时间序列模型(如 ARIMA 模型)来预测资产价格。

此外,由于今天的大部分交易都是在算法的基础上进行的——价格会在这种预测的基础上不断调整——因此很难在市场中占据优势。

例如,假设我构建了一个时间序列模型来预测一个城市未来三个月的降雨量。我的时间序列模型可能有很高的精确度,因为预测不会影响未来的降雨量。然而,如果每个人都使用 ARIMA 模型来预测未来三个月的资产价格波动——那么基于这些预测的后续交易将直接影响之前的预测——从而在许多情况下使它们无效。

背景

因此,通常对金融市场中资产价格的预期波动率建模——而不是直接预测预期价格。

让我们看看如何使用 Python 来实现这一点。GARCH 模型用于预测欧元/美元和英镑/美元货币对的波动性,使用 2017 年 1 月至 2018 年 1 月的数据。

数据来源于 FRED 使用的 Quandl 库:

eurusd = quandl.get("FRED/DEXUSEU", start_date='2017-01-01', end_date='2018-01-01', api_key='enter_api_key')gbpusd = quandl.get("FRED/DEXUSUK", start_date='2017-01-01', end_date='2018-01-01', api_key='enter_api_key')

序列被转换为对数格式以平滑时间序列:

欧元/美元

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:Quandl

英镑/美元

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资料来源:Quandl

然后对数据进行一阶差分,以近似高斯分布。

Dickey-Fuller 检验显示两个序列的 p 值均为 0,表明我们拒绝了单位根存在于 5%显著性水平的零假设,即模型中存在平稳性或趋势平稳性。

欧元/美元:迪基-富勒测试结果

>>> result = ts.adfuller(data, 1)
>>> result(-16.26123019770431,
 3.564065405943774e-29,
 0,
 247,
 {'1%': -3.457105309726321,
  '5%': -2.873313676101283,
  '10%': -2.5730443824681606},
 -1959.704886024891)

英镑/美元:迪基-富勒测试结果

>>> result = ts.adfuller(data, 1)
>>> result(-12.380335699861567,
 5.045829408723097e-23,
 1,
 246,
 {'1%': -3.457215237265747,
  '5%': -2.873361841566324,
  '10%': -2.5730700760129555},
 -1892.8308007824835)

此外,对 QQ 图的视觉筛选显示,该系列现在基本上遵循正态分布:

欧元/美元:QQ 图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

英镑/美元:QQ 图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

GARCH 建模

构建 GARCH(1,1)模型来预测两种货币对的过去 30 天交易数据的波动性。以前的数据用作 GARCH 模型的训练集。

# split into train/test
n_test = 30
train, test = data[:-n_test], data[-n_test:]
# define model
model = arch_model(train, mean='Zero', vol='GARCH', p=1, q=1)

预测生成如下:

# fit model
model_fit = model.fit()
# forecast the test set
yhat = model_fit.forecast(horizon=n_test)

现在,让我们跨测试集比较预测的方差和实际的 5 天滚动方差。

欧元/美元

预测方差

test.rolling(window=5).var().plot(style='g')
pyplot.title("5-day Rolling Variance")

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

5 天滚动差异

pyplot.plot(yhat.variance.values[-1, :])
pyplot.title("Predicted Variance")
pyplot.show()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

我们看到,GARCH 模型预测了过去 30 天的波动性下降(以方差衡量)——这通过实际 5 天滚动方差的视觉检查得到了证实。

让我们来看看英镑/美元的对比。

英镑/美元

预测方差

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

5 天滚动差异

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源:Jupyter 笔记本输出

我们可以看到,虽然预测的方差比实际的 5 天滚动方差小得多,但两个实例都预测在 30 天的测试期间方差会减少。

这与我们实际观察到的情况相符-相对于交易年度的其他月份,2017 年 12 月欧元/美元和英镑/美元货币对的波动很小。

结论

这是 GARCH 如何用于时间序列波动建模的一个例子。

希望你觉得这篇文章有用,任何问题或反馈都非常感谢。

参考

从观测数据估计房室模型的参数

原文:https://towardsdatascience.com/estimating-parameters-of-compartmental-models-from-observed-data-62f87966bb2b?source=collection_archive---------20-----------------------

非线性最小二乘最小化估计 SEIR 和塞德模型的参数

在本文中,我们将定义 SEIR 和塞德模型,并最小化非线性最小二乘法,以从冠状病毒病例的观察数据中估计它们的参数。为了表现良好,非线性优化技术,如leven Berg–Marquardt(LM)算法需要良好的初始猜测来解决非线性最小二乘优化。我们将使用 SEIR 和塞德模型模拟来猜测参数估计值,并在优化中使用这些值。

请注意,这纯粹是一个编程和数据科学练习,因此不要根据模拟或参数估计得出结论。这最好留给流行病学和医学专家去做。

在我们深入研究之前,让我们先熟悉一下 SEIR 和塞德所属的模型类型。

但是,如果您想直接进入代码,在 SEIR 模型的仿真&参数估计和塞德模型仿真&参数估计中可以获得带有完整代码的 Jupyter 笔记本。

机械模型

机械模型用于模拟和预测疾病和感染的传播,如流感、埃博拉甚至冠状病毒。与机器学习模型相比,机械模型的一个显著特征是它们能够对疾病传播的假设因果性质进行编码。这通常涉及构建因果机制的数学公式,并使用分析工具用观测数据验证这些假设[R. Baker 等人,2018]。

简而言之,机械模型是可以解释的,而机器学习模型通常是不可以解释的。正因为如此,一个能够很好地解释这一现象的机械模型可以提供关于疾病如何传播以及可能如何应对的深刻信息。下面的表 1 列出了这两种模型提供的数据和信息类型的差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

表 1: Baker RE,pea J-M,Jayamohan J 和 Jérusalem A,2018 机械论模型对机器学习,一场值得为生物界而战的战斗?生物。信件。18866 . 688686868617

分室模型

房室模型是一种机械模型,它将种群分成称为房室的组。它们基于一个常微分方程系统,该系统表达了一个群体的不同流行病学状态之间的动态。它们有助于对一种现象(如疾病)的传播进行短期和长期预测,也可用于研究不同干预措施的效果[Chowell,2017]。

SEIRD 塞德公司

下面的图 1 和图 2 显示了 SEIR 和塞德模型中流行病学状态之间的间隔和进展。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1: SEIR 模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2: SEIRD 模型

要查看这些模型的动力系统以及如何用 python 模拟它们的更多细节,请参考使用 Python 模拟流行病学中的房室模型& Jupyter Widgets

估计参数

在这一节中,我们将讨论数据,模型和最小化非线性最小二乘参数估计。

数据

我们将使用印度新冠肺炎 REST API提供的印度冠状病毒病例数据。从 API 返回的 JSON 的结构如下,

{
'success': boolean, 
'data': [
         {'day': 'YYYY-MM-DD', 
          'summary': {
                     'total': int,
                     'confirmedCasesIndian': int,
                     'confirmedCasesForeign': int,
                     'discharged': int,
                     'deaths': int,
                     'confirmedButLocationUnidentified': int
                     }, 
          'regional': [
                       {
                       'loc': string,
                       'confirmedCasesIndian': int,
                       'discharged': int,
                       'deaths': int,
                       'confirmedCasesForeign': int,
                       'totalConfirmed': int
                       }                     
                      ]
          }
         ], 
'lastRefreshed': timestamp, 
'lastOriginUpdate': timestamp
}

数据示例如下所示,

{
 'success': True,
 'data': [
          {'day': '2020-03-10',
           'summary': {
                      'total': 47,
                      'confirmedCasesIndian': 31,
                      'confirmedCasesForeign': 16,
                      'discharged': 0,
                      'deaths': 0,
                      'confirmedButLocationUnidentified': 0
                      },
           'regional': [
                        {
                        'loc': 'Delhi',
                        'confirmedCasesIndian': 4,
                        'confirmedCasesForeign': 0,
                        'discharged': 0,
                        'deaths': 0,
                        'totalConfirmed': 4},
                        {
                        'loc': 'Haryana',
                        'confirmedCasesIndian': 0,
                        'confirmedCasesForeign': 14,
                        'discharged': 0,
                        ...
                        }
                        ...
                        ]
            }
            ...
           ],
 'lastRefreshed': '2020-04-27T04:30:02.090Z', 
 'lastOriginUpdate': '2020-04-27T02:30:00.000Z'
}

这些数据可以很容易地转换成 pandas 数据框,我们熟悉使用下面这段代码

让我们看看下面表 2 中熊猫数据帧的前 5 行,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

表 2:印度有新冠肺炎病例的数据帧样本

由于每天都有新的非零阳性病例,印度冠状病毒阳性病例总数仍在上升。案件趋势如下图 3 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3:印度的新冠肺炎病例

现在,让我们用 python 来定义模型。

定义 SEIR 和塞德模型

SEIR 和塞德模型是由一个常微分方程系统定义的。让我们看看这些 ode 是什么,以及如何用 python 编码和求解它们,

SEIR

数学模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4: SEIR 动力系统

Python 代码

塞德

数学模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5: SEIRD 动力系统

Python 代码

我们将使用 scipy 中的 odeint 模块来求解这些方程组。像 ODE 的系统一样,求解 ODE 的函数也非常相似。让我们看看如何用 Python 为 SEIRD 模型编码。

要解一个常微分方程系统,你需要初始条件和描述你的方程的参数。您可以在上面的 python 代码中观察到这些。

接下来,我们使用非线性最小二乘最小化来优化 ODE 的参数。

非线性最小二乘最小化

什么是非线性最小二乘法?

非线性模型是指输出和输入之间的关系在模型参数中不是线性的。例如

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6:米氏–门滕酶动力学模型

Michaelis–Menten 模型不能表示为两个β的线性组合。

现在,非线性最小二乘可以定义为,“非线性最小二乘是最小二乘分析的一种形式,用于将一组 m 个观测值与一个在 n 个未知参数(m ≥ n)中为非线性的模型进行拟合。”—维基百科

最小化非线性最小二乘的算法(例如 LM)需要更接近最优值的良好的初始参数估计。接下来,我们将使用模型的模拟来达到一个良好的初始估计。

模拟

我们将使用后中构建的 SEIR 和塞德模型的模拟器,使用 Python & Jupyter Widgets 模拟流行病学中的房室模型,并为此进行一些修改。

在尝试了各种参数组合后,beta(感染率)= 1.14,sigma(孵化率)= 0.02,gamma(恢复率)= 0.02,mu(死亡率)= 0.01,似乎是 SEIRD 模型的合理初始估计。模拟器设置可以在下面的图 7 中看到。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7:使用 SEIRD 模拟器直观拟合初始参数估计数据

类似的方法可以用于 SEIR 模型。现在,让我们使用初始猜测,使用 LM 算法进一步优化参数。

优化

在不涉及太多细节的情况下,在 leven Berg-Marquardt 算法(也称为阻尼最小二乘法(DLS ))中,连续时段中的权重变化由下式给出:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8:LM 算法中历元 m 的所有权重的权重变化的通用公式。应用科学与工程的神经网络。

我们将使用 python 中 lmfit 库中的 minimize 模块,使用 LM 算法实现非线性最小二乘的最小化。最小化需要残差以及模型的其他参数作为优化输入。让我们对残差进行编码,并将其传递给最小化,如下所示。

现在,用 LM 算法( leastsq )最小化非线性最小二乘非常简单,如下面的代码所示。

优化完成后,您可以打印优化的模型参数并可视化拟合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

表 3:优化的模型参数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 9:观察图与拟合图

指标

我们还可以通过使用优化的参数并调用上面定义的 ode_solver 来计算像 MAE 和 RMSE 这样的指标。在写这篇文章的时候,我发现这些价值观是,

Fitted MAE
Infected:  587.5587793520101
Recovered: 216.5347633701369
Dead:      21.532532235433454

Fitted RMSE
Infected:  702.1643902204037
Recovered: 284.9841911847741
Dead:      26.4463792416788

您还可以在模拟器中输入优化的参数值,以查看流行病学状态曲线,如图 9 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 10:具有优化参数的 SEIRD 模型模拟

完全码

在 SEIR 模型的仿真&参数估计和赛德模型仿真&参数估计中可以找到完整代码的 jupyter 笔记本。

结论

在这篇文章中,我们了解到,

  1. 机械模型、分室模型、SEIR 模型和塞德模型
  2. 用 Python 写颂歌并解决它们
  3. 非线性模型和非线性最小二乘法
  4. 利用 SEIRD 塞德模拟器和 lmfit 库中的最小化模块优化 ODE 参数
  5. 在模拟器中使用优化的参数来可视化流行病学状态曲线

*注意,同样的方法也可以用于编码和优化任何 ode 系统。

我们没有学到的东西(有意识的选择)

  1. 如何解读这些流行病学模型的结果?
  2. 曲线什么时候会变平?有多少人会感染、康复、死亡等?我们什么时候能重新启动经济?

让我们把这些重要的问题留给专家来回答。

参考

  1. Baker RE,pea J-M,Jayamohan J 和 Jérusalem A,2018,机械模型对机器学习,一场值得为生物界而战的战斗?生物。http://doi.org/10.1098/rsbl.2017.0660
  2. Chowell G,《用量化的不确定性拟合流行病爆发的动态模型:参数不确定性、可识别性和预测的初级读本》( 2017 年),《传染病建模》第 2 卷第 3 期,2017 年 8 月,第 379-398 页
  3. 非线性最小二乘法(维基百科)
  4. 非线性回归(维基百科)
  5. 萨马拉辛哈,2007,应用科学与工程的神经网络

估计可能未被发现的新冠肺炎感染病例

原文:https://towardsdatascience.com/estimating-possibly-undetected-covid-19-infection-cases-2b46a6cb8737?source=collection_archive---------12-----------------------

全国范围内未检出新冠肺炎病例的估计和加强检测设施的建议。

为什么估计未被发现的新冠肺炎病例至关重要?

对未被发现的新冠肺炎病例的估计对于当局规划经济政策、围绕封锁的不同阶段作出决策以及致力于生产重症监护病房是重要的。

Nikhel Gupta与参与 Omdena 冠状病毒 AI 挑战赛的人员合作完成的工作。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

新冠肺炎考试中心离你家有多远?(鸣谢:链接)

随着我们在全球范围内跨越了 100 万新冠肺炎患者的心理关口,关于我们的卫生保健系统遏制病毒的能力出现了更多的问题。最大的担忧之一是感染该病毒的公民数量的系统性不确定性。对这种不确定性的主要贡献可能是由于正在进行的新冠肺炎试验的一小部分。

确认某人是否患有新冠肺炎病毒的主要测试是从其鼻子或喉咙的拭子中寻找病毒遗传物质的迹象。这对于大多数人来说还不具备。医务工作者在道德上被限制为医院里的重病患者保留测试仪器。

在本文中,我将展示一个简单的贝叶斯方法来估计未被发现的新冠肺炎病例。贝叶斯定理可以写成:

P(A | B)=P(B | A)×P(A)/P(B)

其中 P (A)为事件 A 的概率, P (B)为事件 B 的概率, P (A|B)为 B 为真时观测到事件 A 的概率, P (B|A)为 A 为真时观测到事件 B 的概率。

我们感兴趣的数量是 P (已感染|未测试),即未测试的感染概率。这相当于感染新冠肺炎病毒但未检测的人口百分比,我们可以写成:

P (已感染|未检测)= P (未检测|已感染)× P (已感染)/ P (未检测)

这里的其他概率是:

  1. (未检测|已感染):未对已感染人群进行检测的概率或未检测但已感染人群的百分比。
  2. P (感染):感染的先验概率或感染人群的已知百分比。
  3. P (未测试):未被测试的人的概率或百分比。

下图显示了几个国家每百万人的新冠肺炎检测总数和每百万人的确诊病例总数。这表明新冠肺炎试验和确认的阳性检测之间有明显的联系。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1:截至 2020 年 3 月 20 日每百万人检测数与每百万人新冠肺炎阳性病例数的对比(数据来源)。

假设所有国家都遵循新冠肺炎检测和确诊病例之间的这种关系,我们可以粗略估计每个国家未检出病例的数量(我将在本文稍后回到这一假设)。

让我们以澳大利亚为例:

例如,该图显示了感染病例的先验知识

P (被感染)= 27.8/1⁰⁶,和

P (notTested) = (1⁰⁶ — 473)/1⁰⁶.)

为了估计 P*(未检测|感染),我使用了新冠肺炎检测和确诊病例之间的关系,如上图 1 所示。这是通过拟合以下形式的幂律来实现的:y = a * x**b,其中 a 是归一化,b 是该幂律的斜率。下图显示了与上图数据点的拟合,其中最佳拟合 a = 0.060±0.008,b = 0.966±0.014。*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2:新冠肺炎测试和确诊病例之间的关系以及幂律最佳拟合。

*使用最佳拟合参数, P (未检测|已感染)=(1⁰⁶—4473)/1⁰⁶/(a *(1⁰⁶—4473)*b)/1⁰⁶.

对于概率 1、2 和 3,我发现 P = 0.00073%的澳大利亚人口。将这个数字乘以澳大利亚的人口表明,澳大利亚有大约 18600 例未被发现的新冠肺炎病例的可能性。下图显示了截至 2020 年 3 月 20 日不同国家可能未检出的新冠肺炎病例与每百万检测数的函数关系。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3:未检出新冠肺炎病例的估计(见文中假设)。

请注意,为了估计这些未检测到的情况,我们做了一些假设和考虑。例如:

  1. 我假设所有国家都遵循相同的幂律关系来估计 P。然而,这不是一个非常好的假设,因为不同国家之间的这种关系有很大的差异。
  2. 我们之前对感染人数的了解可能会有偏差,因为 T21 感染人数取决于截至 2020 年 3 月 20 日的检测数量。
  3. 我还没有考虑一个国家的人口对新冠肺炎的易感性,以及发病率,即发病率的生物统计学测量值,新冠肺炎的发病率估计在 50-80%左右( Verity 等人,2020 )。
  4. 这些国家的政府政策在 3 月 20 日之前 14 天和之后 14 天的影响未被考虑。
  5. 我还没有考虑接下来几天在不同国家检测的对象是怎样的易感人群。

下图 4 显示了几个国家截至 2020 年 4 月 5 日的确诊病例总数与每百万检测数的对比(数据来源)。

在 4 月 5 日的 16 天后,乌克兰、印度和菲律宾等国家的确诊阳性病例与图 3 中的预测一致。截至 3 月 20 日,这些国家每百万人中进行了≤ 10 次检测。

请注意,截至 3 月 20 日和 4 月 5 日的估计数之间的一致性并不一定意味着截至 3 月 20 日所有未发现的病例现在都得到确认。由于 3 月 20 日至 4 月 5 日之间的传播(即使存在封锁),截至 4 月 5 日的几例确诊病例预计将是新病例。

与截至 4 月 5 日的确诊病例总数(即两国均为约 1,500 例)相比,哥伦比亚和南非等国家的估计未检出病例约为两倍(图 3)。这两个国家每百万人进行了大约 100 次检测。

另一方面,与图 3 中的估计数字相比,台湾、澳大利亚和冰岛等国家显示了数量级的少量确诊病例。

这表明,尚未将其检测效率提高到每百万人 1,000 次以上的国家,其目前确诊病例数的不确定性要大得多。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4:截至 2020 年 4 月 5 日,每百万人中确诊病例总数与检测数的对比。

根据图 4 中 2020 年 4 月 5 日的数据,我再次重复了整个过程,以估计这些国家、城市和州未被发现的新冠肺炎病例。下图显示了与图 2 相似的最佳拟合幂律和数据点,但数据截止日期为 2020 年 4 月 5 日。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5:截至 2020 年 4 月 5 日的数据的最佳拟合幂律。

图 5 中幂律关系的最佳拟合斜率(b = 1.281±0.009)与图 2 中 2- σ 置信水平下的斜率一致。这有助于我们从最佳拟合幂律关系(斜率不变)估计 P (未测试|感染)的假设,然而,其他警告与之前相同。

最后,下图显示了截至 2020 年 4 月 5 日不同国家未检测到的新冠肺炎病例的估计值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6:截至 2020 年 4 月 5 日估计未检出的新冠肺炎病例(见文中假设)。

由于截至 3 月 20 日的未检出估计数(图 3)与截至 4 月 5 日的确诊病例数(图 4)之间的比较表明,每百万人需要更多的检测才能发现可能的未检出病例,因此现在是当局提高检测效率以减少未检出新冠肺炎病例的系统性的时候了。这似乎是降低新冠肺炎患者死亡率的唯一好方法,德国和南韩的大量新冠肺炎检测表明了这一点。

要做到这一点,所有国家都需要至少一个半径 20 公里内的检测中心,并尽快安排更多的驱车通过检测设施。

这项工作是与致力于 Omdena 冠状病毒 AI 挑战的人员合作完成的。

估计真实的新冠肺炎死亡人数

原文:https://towardsdatascience.com/estimating-real-covid-19-death-toll-ef01a5eb9814?source=collection_archive---------35-----------------------

为什么病毒杀死的人数可能比官方数据显示的要多

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

毫无疑问:官方数据是错误的。无论是阳性病例、官方死亡人数、康复人数,大多数关于新冠肺炎的可用数据都具有误导性。众所周知,这只是一个数字相差多少的问题。

特别是,新冠肺炎死亡的官方数字通常来自医院。死在家中的人可能不会被计算在内,因为他们从未接受过冠状病毒检测。因此,死亡人数 可能被 低估了。然而,这种差异通常很难量化,因为政府数据往往是唯一可用的信息来源。

鉴于意大利有大量关于新冠肺炎疫情的一手和二手数据,我将研究重点放在意大利的情况上。跟踪任何流行病的演变并量化其进展是一项极具挑战性的工作,因此其他国家很可能面临同样的问题,导致巨大的低估。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就在两天前,5 月 4 日,意大利国家统计局(ISTAT) 发布了一个大型数据集报告了发生在该国的每一起死亡事件,死因各异,但不一定与新冠肺炎有关。死亡按日期、城市、性别和年龄组报告,包含 6,866 个城市的数据(覆盖范围为 7,904 - 87%)。数据集集中于 1 月 1 日至 3 月 31 日期间,并与最近 5 年的历史数据相关联。

本文的主要目的是比较正常时期的平均死亡率与新冠肺炎疫情期间登记的死亡人数。死亡人数超过无疫情年份的原因可以用新冠肺炎的直接和间接影响来解释。

我们将充分利用 Python 数据科学库的潜力来分析数据,识别死亡率的异常,将它们与新冠肺炎官方死亡人数进行比较,并最终绘制结果图。

主要发现

  1. 意大利(很可能是世界各地)受新冠肺炎影响的人数远远高于政府官方数字。
  2. 数据显示,与过去 5 年相比,2020 年 3 月总死亡人数出现异常增长:全国范围内 + 49.4%
  3. 在同一时期,一些地区(意大利的第一个行政级别)的死亡率急剧上升:仅举几个例子,如伦巴第**+186%,艾米利亚-罗马涅****+70%, + 65 %特伦蒂诺上阿迪杰 。**
  4. 在地方一级,一些特定省份(第二行政级别)的疫情极为严重:例如,3 月份,佛手省死亡人数增加了 567.6 %,克雷莫纳省增加了 391.8 %,罗提省增加了 370.6 %。****
  5. 官方数据只能解释 2020 年 3 月发生的异常死亡中的 50.2 %。其余的数字很可能是由于“隐藏的”新冠肺炎病例,或由于疫情的间接影响(医院饱和、卫生服务水平较低、难以或不愿及时进入医院……)
  6. ISTAT 提供的数据仅占 87%的城市。尽管这是一个统计上有代表性的样本,但我们可以假设现实情况更为戏剧性。事实上,第 5 点中提供的百分比是一个保守估计*,它代表总死亡数的下限。***
  7. 该国一些省份受到了病毒的严重打击,而另一些省份在整个危机期间相对未受影响。这可能是因为地区和国家当局实施了及时有效的封锁措施

导入和清理数据

这项工作是在 macOS 上用 Python-3.7.1 开发的,主要利用了开源数据科学库,如PandasGeopandasMatplotlib

你可以在这里找到整篇文章的 Python 代码

让我们开始导入必要的库。

现在,我们导入 ISTAT 出版的大表,报告按城市、年龄、性别和日期记录的死亡(大约 100 万个记录)。当缺少 2020 年 3 月的数据时(大约 13%的行),我们将字段名翻译成英文,并删除城市。然后,我们只保留二月和三月的数据。

下一步是计算在没有疫情的一年中每个城市登记的死亡人数。我们将这个变量命名为 baseline_deaths,,它是通过计算 2015 年至 2019 年间登记的死亡人数的平均值而创建的。基线 _ 死亡数与 2020 年 3 月的死亡数之差被称为超额 _ 死亡数,它存在于可归因于新冠肺炎疫情的异常。

国家级分析

我们现在可以直观的看到这三个关键变量在时间上的演变:基线 _ 死亡人数(最近 5 年的平均死亡人数),死亡人数 _2020超额 _ 死亡人数。下面的代码生成一个图表,显示国家层面的趋势

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图表清楚地告诉我们,2020 年 3 月发生了不寻常的戏剧性事件,在 3 月 21 日到 28 日之间的几天里,意大利每天的死亡人数几乎翻了一番。现在,想象一下 2020 年死亡人数相对于平均水平的百分比增长会很有趣。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这张图表中,峰值更加明显。事实上,2019-20 年的冬天异常温和,流感疫情导致的死亡人数低于往年的平均水平。然后,大约在 3 月 4 日,新冠肺炎疫情开始在全国范围内杀死第一批人。考虑到整个三月,意大利的死亡率上升了 49.36 %

现实 VS 官方数据

我们现在有了所有我们需要的来比较 2020 年 3 月登记的异常死亡人数和意大利公民保护局发布的官方新冠肺炎死亡人数。

下面的代码下载了平民保护 GitHub 账号的官方死亡人数,并与 2020 年登记的超额死亡人数进行对比。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传****外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

意大利民防组织提供的官方新冠肺炎死亡人数并不能完全解释三月份记录的峰值。2020 年 3 月 ISTAT 报告的死亡人数比非疫情年平均水平增加了 24668 人。同期,民防部门报告的新冠肺炎官方死亡人数仅为 12399 人,仅为超额死亡人数的 50.26 %。剩下的数字最有可能是由于“隐藏”的新冠肺炎病例(没有进行病毒检测就在家中死亡的人)或疫情的间接影响(医院饱和、医疗服务水平较低、难以或不愿及时进入医院……)。此外,我们知道 ISTAT 只报告了 87%的城市的数字。因此,现实可能比我们保守估计的还要糟糕。

区域层面分析

我们知道病毒并没有以同样的强度袭击整个国家。这场流行病使意大利北部陷入困境,而南部地区相对来说没有受到危机的影响。ISTAT 发布的数据集提供了与非常高的空间分辨率相关的信息,也有可能在区域和省一级检查死亡异常情况。

首先,让我们关注 6 个受影响最严重的地区,将它们的基线 _ 死亡与 2020 年登记的死亡人数进行比较。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

同样,我们注意到 2020 年死亡的常规趋势,直到三月初。但是伦巴第地区比其他地区受到的影响要大得多。现在让我们想象一下超额死亡的趋势以及与五年平均值相比的百分比增长。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上图显示,2020 年 3 月 23 日左右,皮埃蒙特、利古里亚马尔凯艾米利亚-罗马涅的日均死亡人数是过去 5 年的两倍。但是同样,最严重的情况发生在伦巴第,在 3 月 18 日和 28 日之间登记的死亡人数是平均每天死亡人数的 3 倍。

绘制地区超额死亡人数图

现在可以按地区绘制 2020 年 3 月整个月份登记的死亡增加地图。意大利地区的边界可以从意大利国家统计局网站下载 shapefile

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该地图清楚地显示了该国相对两侧的不同情况:虽然意大利北部的死亡率急剧上升,但有趣的是,与过去五年的平均水平相比,南部一些地区的死亡率有所下降。这可能是由于严格的封锁措施(道路和工作事故减少,季节性流感疫情减少……)和异常温和的冬季的影响,但这一假设应通过专门的分析进一步验证。

省级分析

ISTAT 数据集让我们可以更深入地分析,并在省级基础上比较基线 _ 死亡人数死亡人数 _2020* 。在下面的图表中,我们将重点关注六个受影响最严重的省份。*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在 6 个受影响最严重的省份中,4 个在伦巴第区,2 个在艾米利亚-罗马涅区。特别是,图表显示了贝加莫省的一个极端峰值:三月份报告的死亡人数甚至比米兰多,米兰的总人口是它的三倍。现在让我们检查各省的超额死亡人数和死亡增加的百分比。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发生在贝加莫省的灾难程度现在更加清楚了。在本月的某些日子里(16 日至 26 日),该省的平均死亡人数是非流行年份的 10 倍。其他省份(皮亚琴察布雷西亚克雷莫纳)也受到了严重影响,一些高峰达到了正常死亡率的 600%。

绘制各省超额死亡人数图

这项分析的最后一步是创建 2020 年 3 月死亡增长的省级地图。意大利各省的边界在 ISTAT 网站上以 shapefile 的形式提供。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下表总结了受影响最严重省份的分析结果。

上表所载信息可以被视为对意大利总体死亡率的流行病影响的最准确分析。

结论

  • 在这篇文章中,我提供了意大利官方每天公布的死亡人数比实际数字低得多的证据。
  • 在全国范围内,真实的死亡人数可能被低估了 12000 人,大约是官方总数的两倍。
  • 上述估计包括了新冠肺炎病毒直接和间接导致的死亡:其中一些死亡人数的增加可能与卫生系统没有适当治疗的其他疾病有关,或者是因为危机导致他们找不到医院床位。
  • 在一些南部地区和省份,死亡率与平均水平相比已经大幅下降。部分原因是由于意大利的封锁,道路死亡人数和工作事故减少,以及异常温和的冬季。

致谢

本文中进行的一些分析受到了费德里科·里奇-特尔森吉教授发表的工作的启发,他设法量化了新冠肺炎对额外死亡的直接和间接影响之间的比率。我还要感谢格雷格·奥卡拉汉、罗希尼·斯瓦米纳森和弗吉尼亚·埃特诺审阅了本文的草稿,并提出了编辑和改进的建议。

我为本文中显示的分析和地图开发的所有代码都可以在我的 GitHub 库中找到

感谢您的阅读!如果你喜欢这篇文章,不要犹豫,评论或分享它。

我每天都在学习,如果你发现任何错误,请随时纠正我,并在评论区写下你的建议。

作者注:我不是流行病学家,本文中的分析仅基于应用于公开数据的纯数学。

编者注: 迈向数据科学 是一份以数据科学和机器学习研究为主的中型刊物。我们不是健康专家或流行病学家,本文的观点不应被解释为专业建议。想了解更多关于疫情冠状病毒的信息,可以点击 这里

使用 Python 通过统计和模拟来评估任务

原文:https://towardsdatascience.com/estimating-tasks-with-statistics-and-simulations-using-python-ddd1df3c7ce1?source=collection_archive---------16-----------------------

用 PERT 和蒙特卡罗模拟模拟任务估算

几个月前,当世界还是一个非常不同的地方时,我写了关于待办事项列表任务的战略。我想知道,给定你的待办事项列表中的一堆任务,你应该使用什么策略来选择首先处理的任务?根据我实际想要达到的目标,我的做法可能会大不相同。

我的假设是,任务的复杂性是固定的,也就是说,完成任务所需的时间是预先确定的。这通常是不正确的(统计笑话提醒!).即使在疫情带来不确定性之前,大多数任务的复杂性和持续时间也很难准确预测。

如果我们关注待办事项清单之外的任务,例如项目任务,情况会变得更糟。项目任务的复杂性不仅影响持续时间,还影响工作和成本,因此能够确定复杂性是非常重要的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

威廉·沃比Unsplash 上拍摄的照片

然而,众所周知,项目任务很难估计,这可能意味着延迟和成本上升。

柏林的新勃兰登堡机场在 2006 年开工前规划了 15 年,预计于 2011 年 10 月开放。然而,该项目仍在进行中,也面临着预算暴涨。最近的开放日期是 2020 年 11 月,但鉴于目前的形势,它似乎有可能再次移动。

美国宇航局的太空发射系统(SLS)是一种发射火箭,将为载人月球飞行和人类火星任务提供基础,始于 2010 年,截至 2020 年已耗资 186 亿美元。2020 年初宣布成本将超支 20 亿美元,并至少推迟 2 年

这不是什么新鲜事,NASA 因过分乐观和低估项目而臭名昭著。詹姆斯·韦伯太空望远镜(JWST)原本应该在 2007 年发射,耗资 5 亿美元,但截至今天,已经推迟到 2021 年,预计耗资 100 亿美元。它的前身哈勃太空望远镜原本应该在 1983 年发射,但最终在 1990 年发射,成本从最初的 4 亿美元下滑到最终的 47 亿美元。然而,国际空间站是最棒的——它以 367.5 亿美元的预算开始,推迟了 6 年才完工,最终耗资 1050 亿美元。

建筑项目并不是唯一被延迟的项目类型,软件开发项目通常也是罪魁祸首。在一个相当臭名昭著的开发昆士兰州健康工资系统的案例中,该项目于 2007 年 12 月被 IBM 招标并以 9800 万美元中标,本应于 2008 年 7 月推出。最终于 2010 年交付,有 bug,耗资 12 亿美元。

估计项目任务

当然,项目失败的原因有很多。由于各种无法预测的原因,完全正确估计的项目可能遭受灾难性的结果。你可以肯定的是,无论项目任务估计得有多好,都不会增加我们现在面临的疫情,也不会增加它的后果。尽管如此,良好的评估对于保持项目顺利进行是至关重要的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由著名的西班牙/加泰罗尼亚建筑师安东尼·高迪设计的圣家族大教堂于 1882 年动工,预计在高迪于 1926 年去世 100 年后的今天于 2026 年完工

有多种方法可以进行评估。在敏捷方法中(大部分是软件开发项目),我们有计划 pokers,affinity groups,t-shirt sizing,bucketing 等等。在估算单位方面,有 t 恤尺寸(S,M,L,XL 等),斐波那契故事点,点投票和许多其他非常有创意的方式来表示工作的大小。

对于更传统的项目管理方法,评估技术包括自下而上、自上而下、参数化、类比、三分法等等。有许多其他类型的评估技术,尤其是在软件开发中,包括 COCOMO、SEER-SEM、Putnam、PERT 和许多其他技术。我们绝对不缺乏评估技术。

无论我们使用哪种技术和单位,项目最终关心的是按时交付(时间),在成本范围内交付(预算),以及做它应该做的事情(质量),无论是太空望远镜还是医疗工资系统。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SpaceXUnsplash 拍摄的照片

任务估计很难。它主要是基于判断,利用评估者(通常是做任务的人)的经验。此外,大多数估计往往过于乐观。事实上,有一个由心理学家丹尼尔·卡内曼和阿莫斯·特沃斯基在 1979 年创造的术语,叫做计划谬误,准确地描述了这个。卡尼曼和特沃斯基发现,我们倾向于忽视过去在类似任务中所学到的东西,并且对潜在问题甚至我们自己完成任务的能力过于乐观(乐观偏见)。这个主题非常吸引人,如果你想了解更多,你可以多读读他们的书,《思考的、快与慢的、。

三点估计

其中一个方法是使用三点估算法。诀窍是为每个估计产生 3 个数据点(因此得名):

  • a —最佳情况估计
  • b —最有可能的估计
  • c —最坏的情况估计

这迫使评估者每次都要考虑最好、最坏和最有可能的情况。虽然这不是克服规划谬误的灵丹妙药,但它给了我们一些有趣的数据。

活泼性感的

项目评估和评审技术(PERT) 是项目管理中用来分析和表示项目任务的工具。它是在 1957 年为美国海军开发的,用于管理美国海军北极星核潜艇导弹项目,但它也有许多其他用途,包括早期用于规划 1968 年格勒诺布尔冬季奥运会。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

潜艇首次发射北极星(部分视频片段)(公共领域来自https://commons . wikimedia . org/wiki/File:1960-07-21 _ First _ Polaris _ fireing _ By _ Submerged _ U-boat . ogv)

PERT 是一种大规模、一次性计划和安排的工具,关注事件和时间。PERT 本身产生了相关的工具和概念,如工作分解结构、关键路径和关键路径分析(CPA)。

PERT 也引起了做三点估计,事实上它给了一个连续概率分布族的名字,叫做 PERT 分布。

PERT 分布

PERT 分布是由最小值(a)、最大可能值(b)和最大值(c)定义的连续概率分布,其平均值(或期望值)为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PERT 分布实际上是一个转换的四参数贝塔分布。贝塔分布有两个定义在区间[0,1]上的参数 αβ ,这使得它对概率和随机变量建模很有用。贝塔分布的四参数版本使区间为[a,c],其中 a 是最小值,c 是最大值。

你可以看到这是怎么回事。通过使用 PERT 分布来绘制估计值,我们可以近似估计值本身的概率!

也就是说,当我们要求评估者提供乐观、悲观和最有可能的评估值时,实际的期望值可能与最有可能的值不同,我们可以计算出任务在持续时间或预算内完成的可能性有多大。

然而,这实际上只是一个单一的任务。当然,在一个项目中,我们有很多很多任务,每个任务可能有不同的分布参数 a、b 和 c。如果你是项目经理,你如何计算出总体估计值和概率?

嗯,我们也可以尝试做数学,但我们是程序员,不是数学家(我这么说是出于好意),所以我们寄希望于我们的老朋友蒙特卡洛。

蒙特卡洛

当然,我说的蒙特卡洛指的是蒙特卡洛模拟,而不是赌场。蒙特卡罗是一种流行的模拟技术,它使用许多重复的随机抽样来产生数字数据。这就像进行大量的实验,并从所有的数据中找出真知灼见。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

摩纳哥蒙特卡洛赌场(图片来自https://Commons . wikimedia . org/wiki/File % 3a casin % C3 % B2 - panoramio . jpg)

1947 年,斯坦尼斯劳·乌拉姆(Stanislaw Ulam)在疾病康复期间想出了这个主意。当时他正在洛斯阿拉莫斯国家实验室从事一个核武器项目,并把这个想法告诉了约翰·冯·诺依曼,他看到了这个想法的重要性,并编写了第一个蒙特卡罗模拟程序。由于他们工作的秘密性,他们必须想出一个代号。他们的一个同事建议,蒙特卡洛,摩纳哥著名的赌场乌兰的叔叔曾经在那里向亲戚借钱赌博,剩下的就是历史了。(你可能会从我之前写的一篇**)中认出乌兰和冯·诺依曼,他们都是才华横溢的数学家、科学家,也是计算机科学的早期先驱*。*

蒙特卡罗模拟可以用来解决任何概率问题。使用大数定律,我们可以通过自己创造的经验数据来近似计算结果。当然,没有计算机我们无法理智地做到这一点,因为这项技术需要运行大量的重复实验。蒙特卡洛字面蛮力的结果!

那么,我们究竟如何使用蒙特卡罗来计算出许多项目任务的总体估计呢?其实很简单。对于每个任务,我们使用给定的a(悲观)、b(最有可能)和c(乐观)值创建一个 PERT 分布,并从该分布中提取一个值。我们得到的是对每项任务的模拟评估。当我们把这些评估加在一起时,我们得到了整个项目的模拟评估。

冲洗,重复。

我们最终会得到很多很多的项目评估,这也是某种概率分布。实际上,我们将会以另一个 PERT 分布结束,但是让我们稍后看看如何证明它。一旦我们有了数据,我们就可以计算出我们估计的各种概率。

让我们试一试!为此,我将在 Jupyter Notebook 上使用 Python3,使用常见的怀疑对象——numpy、pandas、scipy 和 matplotlib。

估计单个任务

我们从一个单一的任务开始,对它进行 1000 万次实验。这并不像听起来那么疯狂,运行这个脚本只需要 2 秒钟。

让我们看一下剧本。no_of_experimentsnum_bins是我们想要运行的实验的数量,以及我们用于直方图的箱的数量。

tasks是一个只有 1 个键值对的字典。我用这个是因为很自然地我们以后会有更多的任务,所以提前做好准备。关键是任务的名称,而值是 3 个元素的列表,第一个是乐观值a,第二个是最可能值b,最后一个是悲观值c

*还记得我之前说过的 PERT 分布是一种变形的四参数 beta 分布吗?我这么说是因为numpyscipy都没有 PERT 分布,相反它们有 beta 分布。因此,要使用 PERT 分布,我们需要将 a、b 和 c 转换为 α 和 *β。转换公式非常简单,如果你不想自己算,你可以从维基百科关于 PERT 分布的条目中找到。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一旦我们有了 αβ ,我们就可以使用numpy(或者scipy,随便你选,但我在这里使用了numpy)从分布中随机抽取一些随机变量。这里我们画了 1000 万个随机变量。

接下来我们需要将随机变量转换回我们想要的实际值,它在ac之间。最后,我们有一个额外的步骤,将它添加到一个全 0 的points列表中,这对于一个单一的任务来说并不真正有用,但是当我们有更多的任务时,就需要它了。points列表现在是从 PERT 分布中随机抽取的 1000 万个数字的列表。

现在我们有了数据,我们将使用matplotlibhist函数来绘制它。我们稍微改变一下 x 轴,从 0 开始,也改变点来表示一个概率。

运行它,这就是我们得到的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

任务[4,7,12]的概率分布

这是一个很好的曲线,但它意味着什么呢?让我们使用scipy.stats对其进行一些统计分析。

我们做的第一件事是简单地显示任务,如果我们有一个以上的任务,我们把乐观的,最有可能的和悲观的值加起来。

然后使用stats.describe函数,我们得到最小值、最大值、平均值、方差、偏度、峰度以及标准偏差值。仅仅几行代码就包含了大量内容!

最后,我们打印出标准差为 0.5、1、2 和 3 的概率。

现在让我们来看看结果。

*Tasks
-----
        optimistic  likely  pessimistic
Task 1           4       7           12
Total            4       7           12

Statistics
----------
minimum: 4.0 maximum: 12.0
mean: 7.3
standard deviation: 1.5
skewness: 0.22
kurtosis: -0.60

Probabilities
-------------
* between 7.0 and 7.7 : 36.0% (within 0.5σ)
* between 6.6 and 8.1 : 64.7% (within 1σ)
* between 5.8 and 8.8 : 97.3% (within 2σ)
* between 5.1 and 9.6 : 100.0% (within 3σ)*

这些任务非常简单明了,包括最小值和最大值。平均值很有意思,如果我们用前面的等式计算 PERT 分布的平均值,我们得到 7.333,这证明了我们的答案。使用 PERT 分布的方差,即:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们将得到方差 2.222,标准差,即方差的平方根,将是 1.49,这再次验证了我们的答案。

对于概率,我们简单地取均值和均值两侧标准差σ的倍数之间的曲线下面积,这就是概率(因为曲线下面积的总和为 1.0 或 100%)。

我们说这项任务在 5.1 到 9.6 之间结束的概率是 100%,这似乎令人吃惊,也是错误的,但这是因为我将结果截断到了小数点后 1 位。如果我们允许更多的小数点,它将是 99.9994%。尽管如此,让我们看看几个有趣的点。

期望值或平均值和最可能值(由估计器提供)接近但不相同。

偏斜度 为 0.22,这意味着估计倾向于更乐观。如果它是一个负数,这意味着它倾向于更加悲观。对称分布的偏斜度为 0。

峰度 为-0.6 表示峰值有点平坦,更分散。一般来说,数字越低(正态分布的峰度为 0),曲线越平坦,数字越高,曲线越多峰。较平坦的曲线意味着乐观值和悲观值彼此远离,而峰值曲线意味着乐观值和悲观值彼此靠近。

这个任务有 99.9994%的可能性在 5.1 到 9.6 之间。现在比较一下乐观值 4 和悲观值 12。如果你乐观地认为任务是 4,悲观地认为是 12,然后被统计数据告知这两个值的概率只有 0.0006%,这似乎是错误的!

从数字上看,这似乎违反直觉,但你可以从不同的角度来解释它。如果悲观值的概率只有 0.0006%,那么悲观值估计可能是错误的,应该更大。您可以快速尝试一下,并将任务更改为:

*tasks = {
    "Task 1": [4,7, 24],
}*

再次运行它将得到以下结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

任务[4,7,24]的概率分布

*Tasks
-----
        optimistic  likely  pessimistic
Task 1           4       7           24
Total            4       7           24

Statistics
----------
minimum: 4.0 maximum: 23.5
mean: 9.3
standard deviation: 3.3
skewness: 0.70
kurtosis: -0.02

Probabilities
-------------
* between 8.5 and 10.2 : 33.7% (within 0.5σ)
* between 7.7 and 11.0 : 65.0% (within 1σ)
* between 6.0 and 12.7 : 96.3% (within 2σ)
* between 4.3 and 14.3 : 99.6% (within 3σ)*

您可以立即看到,对于值 12,它落在 2σ范围内。你可能会想——这是不对的,统计数据告诉你现在它是一个更大的值,但是它是怎么知道的呢?

答案是没有。作为估计者,你更清楚值 12 的可能性。如果你认为这是极不可能的,并且有非常非常小的可能是正确的,那么值 12 可能是正确的。如果你认为它不太可能是 12,但它很可能会大于 0.0006%,那么你应该选择一个更大的值。

换句话说,数字就是数字,但是对乐观值、最可能值和悲观值的判断取决于估计者。

评估多项任务

我们之前做的只是热身。我们真正想要的是估计多个任务。虽然我们可以根据 PERT 分布或多或少地计算出单个任务的值,但是如果你有 100 个任务,那么这样做就很麻烦了。

几乎所有的代码都是一样的,除了我们有更多的任务,所以我不会在这里重复。

*tasks = {
    "Task 1": [4,7, 12],
    "Task 2": [2, 3, 9],
    "Task 3": [3, 5, 16],
    "Task 4": [6, 7, 23],
    "Task 5": [10, 12, 28],
}*

有了这个任务列表,让我们再次运行脚本。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5 项任务的概率分布

现在我们再做一次统计分析。

*Tasks
-----
        optimistic  likely  pessimistic
Task 1           4       7           12
Task 2           2       3            9
Task 3           3       5           16
Task 4           6       7           23
Task 5          10      12           28
Total           25      34           88

Statistics
----------
minimum: 26.3 maximum: 69.7
mean: 41.5
standard deviation: 4.8
skewness: 0.40
kurtosis: 0.06

Probabilities
-------------
* between 40.3 and 42.7 : 32.2% (within 0.5σ)
* between 39.1 and 43.9 : 67.6% (within 1σ)
* between 36.6 and 46.3 : 96.1% (within 2σ)
* between 34.2 and 48.8 : 99.7% (within 3σ)*

因为我们现在有多个任务,所以不能看单个任务的乐观、最有可能、悲观值。我们还需要考虑任务是否相互依赖。简单来说,任务都是相互依赖的,也就是说任务 5 依赖于任务 4,任务 4 依赖于任务 3,如此循环直到任务 1。

所以从逻辑上来说,对于项目来说,任务估计应该是乐观、可能和悲观三栏的总和。作为一个项目,我们看到乐观的总数是 25,最可能的总数是 34,悲观的总数是 88。但是有多准确呢?让我们深入了解一下。

从数字中,我们看到平均值 41.5 与最可能的值相差甚远,而平均值实际上是该分布的最可能值!这意味着通过把最有可能的值加起来,我们最终会有一个更乐观的观点,正如数字所显示的那样。

最小值仅略高于乐观值,而最大值比悲观值小很多。这再次意味着,通过累加悲观值,我们确实太悲观了,而我们只是比数字显示的稍微乐观一些。

分布的偏斜度非常正,因此 over 项目往往更乐观,而峰度稍微为正(实际上非常接近 0),因此该项目在乐观值和悲观值之间的范围内相当平衡。

现在让我们看看概率。您会注意到一些有趣的事情——大约有 67%的可能性项目值在平均值的 1σ以内,96%的可能性在 2σ以内,99.7%的可能性在 3σ以内。这些数字看起来熟悉吗?

如果是的话,那么恭喜你,你在统计学课上没有睡觉,至少在你的讲师给你讲正态分布的时候没有。经验法则指出,对于正态分布,68%的值在平均值的 1σ以内,95%在 2σ以内,99%在 3σ以内。虽然经验法则适用于正态分布,但大多数钟形分布(就像我们得到的这个)多少都遵循这个法则,尽管数字略有不同(这也被称为三西格马法则*)。这也是为什么单个任务的早期运行也遵循大致相同的数字的原因。*

现在再来看一看概率。数字显示,项目价值有 99.7%的可能性在 34.2 到 48.8 之间。请记住,如果我们将各个列中的所有值相加,乐观值是 25,该项目的最可能值是 34,悲观值是 88!乐观和悲观的价值都不是真实的,最有可能的价值也可能是错误的。

把这些列加起来终究不能说明真实的情况。如果你思考它的含义,它实际上应该是这样的。对于悲观值或乐观值相加,这意味着每个任务都需要全部悲观或全部乐观,这是极不可能的。

那么统计数字实际上意味着什么呢?我们在这里得出的统计数据基本上意味着,如果我们所有的估计都是准确的,那么项目值将有 99.7%可能在 34.2 和 48.8 之间。

理解评估

项目任务的评估是困难的,所有之前显示的统计分析并没有减少对专家判断的需求。最终,无论技术多么强大,如果评估数据完全错误,没有什么能够使它正确。

然而,通过这样的技术分析数据允许我们检测任务估计的潜在问题。它还将帮助我们理解评估,不仅从个人的基础上(正如你从上面看到的,这是有帮助的),而且从项目或其他方面的群体上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

米卡·鲍梅斯特在 Unsplash 上的照片

我们之前所做的练习中,一个任务与前一个任务之间存在简单的依赖关系,但是在更现实的场景中,我们会有多个依赖关系的任务,相互依赖甚至交叉依赖的任务组。

一旦复杂性增加,将项目作为一个整体来看就变得更加困难,并且它的评估很容易出错。使用统计工具可以帮助我们发现潜在的问题,并指导我们做出更好的估计。

这种统计分析还有助于我们更好地指导成本和及时性的预测。随着任务的完成,我们还可以使用分析来与实际值进行比较,然后更新和修改未来任务的估计,以获得更高的准确性。

度量单位

在前面的练习中,我讨论了任务价值和项目价值,但是我对度量单位本身并不清楚。我指的是持续时间吗?我指的是完成任务和项目所需的时间吗?是几天、几周还是几个月?或者我看的是工作量,以人工日或人工周或人工月计算?成本如何,以美元和美分计算?还是复杂?

实际上,我们可以用这个来衡量上面的任何一个,只要我们想要衡量的东西有数值。如前所述,在一些敏捷方法中,团队提出了他们自己的任务度量单位(有人提出了坚果或模糊的时间单位,scrum 甚至完全取消了单位),这很好。

然而,我们也应该明白,在一天结束时,项目成功通常是根据它是否按时、在成本范围内和高质量来衡量的。

用微软 Excel?

我在这里用 Python 和 Jupyter Notebook 做了所有的工作。对于许多项目经理来说,这不是一个自然的使用工具——大多数人更喜欢用 Microsoft Excel 来做所有这些计算。

好消息是,Excel 是一个优秀的工具,拥有所有必要的统计计算功能。坏消息是 Excel 每张工作表最多有 1,048,576 行和 16,384 列。所以,如果你想做 1000 万次蒙特卡洛模拟,你可能无法做到每行一次模拟。

事实上,我们每个任务做了 1000 万次模拟,如果你有大量的任务,你就要倒霉了。此外,即使这不是问题,处理 100 万行对于 Excel 来说也需要相当长的时间,而我们在 Jupyter Notebook 中运行的 Python 脚本对于单个任务只需要 2 秒,对于 5 个任务大约需要 7 秒。

一些最后的想法

Ulam 和 von Neumann 在曼哈顿项目工作时,他们提出了蒙特卡罗模拟的想法,PERT 是为了支持美国海军的潜艇核导弹项目北极星而创建的。具有讽刺意味的是,这两种技术都是出于军事需要而发明的,都与核武器研究有关。

战争和军事野心一直是历史上创新的最强驱动力之一。虽然这些野心给数百万人带来了痛苦,但令人欣慰的是,从这种恐惧中诞生了如此出色的工具,也可以帮助我们的生活变得更加轻松。

估计社会距离的影响

原文:https://towardsdatascience.com/estimating-the-effect-of-social-distancing-in-sweden-c6c1e606c8f9?source=collection_archive---------43-----------------------

估计疫情动力学参数的贝叶斯方法

在我的上一篇帖子中,我创建了一个 GUI,使用确定性 SIR 模型来模拟新冠肺炎疫情的动态。然后我提到了一些关于创建一个奇特的方法来估计模型中随着时间推移的感染率*β**。*今天我将 *β,*作为一种状态添加到 SIR 模型中,将其建模为随机过程,从而创建了一个随机 SIR 模型。然后,我使用了一种名为无迹卡尔曼滤波的奇特方法,以及一种更为奇特的叫做无迹 Rauch-Tung-Striebel 平滑法的方法,来估计整个过程的状态,特别是 β 来看看数据中是否有任何证据表明社交距离确实有效。

那些对数学不感兴趣的人可以跳过技术细节,看看漂亮的图片。如果你对数学感兴趣,尤其是贝叶斯估计,请原谅我所做的任何愚蠢的近似。每次我假装某个东西是高斯的或者近似线性的,那只是我想应付过去。但是如果你有更好的近似或方法,请在这里加入进来。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安东Unsplash 上拍摄

在我的上一篇文章中,我使用了报告的病例数,因为当时瑞典的死亡人数并不多。现在看一下数据,报告的病例似乎不是一个非常可靠的指标,因为它会受到政策和行为变化的影响。不幸的是,现在每天都有相当多的死亡人数,而这些数据并不受制于相同的时间环境,因此我选择使用这些数据进行这项研究。

上次我还忽略了 SIR 模型背后的实际数学运算,这实际上非常简单。三个组 S 可接收、 I 感染和 R 不可接收按照下面的微分方程描述进行耦合:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

另外值得一提的是,N ≡ S + I + R 是常数。因此,目前我们有一个确定性模型,其中感染率β回收率γ 是常数。我也将坚持我的可疑主张,γ=0.2,但现在我们将β放入模型状态,并添加两个方程:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以我们说,我们不能确定性地模拟β,但我们说,它随着某个速度而变化,该速度的时间导数是白色通常分布在零附近,有一些标准偏差 q 。与我们所说的β及其时间导数 马尔可夫 相反,术语“白色”在此上下文中意味着过程 v(t) 没有记忆,意味着在预测任何未来状态时,关于某一时刻状态的任何知识都不会添加任何信息。这意味着该过程具有记忆,并且当前状态足以描述前进的过程,关于该过程的任何先前信息都是多余的。

好了,现在我们有了一个随机 SIR 模型,非常酷。但是我们该拿它怎么办呢?嗯,这个模型为我们提供了一些关于疫情动态的信息,现在我们想要融合这些数据来估计疫情当前的状态。也就是说,人群中目前有多少易感者、感染者和耐药者,以及感染率是多少。最终,我们也希望回到过去,回顾疫情爆发的情况。

事实证明,假设您有一个带有白高斯过程噪声线性过程模型,并且我们可以用一个带有白高斯测量误差的线性模型来描述测量结果,那么就有一种使用测量数据来估计过程状态的经典方法。高斯意味着正态分布,正态分布的白色过程噪声我们有-检查。我们的模型并不完全是线性的,但是我们将不得不在以后解决它。首先,我们必须提出一个测量模型。现在有一个:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以第 k 天的死亡人数是泊松分布,其比率与感染人数成比例,乘以λ,即死亡率。如果死亡人数足够多,比如说> 30,那么正态分布就是一个相当好的近似值。对于死亡人数为 < 30 的情况,我们只需假设近似值是可以的。虽然这个模型中的测量误差是白色的,但如果你使用任何随时间聚合的数字,这是开始玩卡尔曼滤波器时常见的错误。

现在,如果我们的模型是线性的,我们基本上已经使用了卡尔曼滤波器,但情况并非如此,所以我们必须做些什么。如果模型是相当线性的,可以选择每次使用估计值将其线性化(这被称为扩展卡尔曼滤波器),但这个模型并不那么好,事实证明。对于所有好奇想知道我是怎么知道的数学书呆子来说,这是因为时间导数的雅可比不是幂零的。🤓

因此,我们使用一种叫做无迹变换的东西,这实质上意味着将分布离散化成许多点。这些点然后可以使用非线性模型传播,然后可以用于计算预测的分布和称为卡尔曼增益的非常重要的矩阵。这个版本的卡尔曼滤波器被称为 无迹卡尔曼滤波器 ,由于许多其他原因,它非常好。它不需要大量的分析计算,该模型的工作原理非常简单。它通常还具有比扩展卡尔曼滤波器更好的数值稳定性。

现在,我们所要做的就是为我们的零日爆发参数制定一个无信息先验分布。这意味着我们将状态参数的知识描述为多元正态分布,其中一些初始猜测为平均值,一些非常夸张的方差反映出我们在这一点上对系统了解不多。然后,我们可以预测第一天的先验分布,使用卡尔曼增益更新数据,预测第二天的先验分布,等等。在某一点上,我们到了我们拥有数据的最后一天 N ,在这一点上,我们将有一个那天的无偏最优估计…假设我们不记得我们在这一过程中所做的任何欺骗和近似。🤔

现在的问题是,所有早期的估计都已经过时,但是我们希望利用所有信息来估计由于政府法规和建议的增加而发生的β变化。幸运的是,洛克希德导弹公司的三名聪明的德裔美国火箭科学家想出了卡尔曼滤波器的扩展,可以回到过去,并解释“来自未来”的信息。这些家伙被称为 Rauch,Tung 和 Striebel,因此这种方法被称为 Rauch-Tung-Striebel 平滑

然而,另一个问题是,这种方法并不适用于无迹卡尔曼滤波器。但是不到十年前,一位名叫 Simo srkk 的芬兰研究人员提出了一个解决方案。现在我们有了模型,有了数据,我们可以断言一些初始猜测,使用无迹卡尔曼滤波器估计每天的状态,当我们到达终点时,我们使用无迹 Rauch-Tung-Striebel 平滑器返回。👌

在得出结果之前,我还应该提到,我对数据做了一些预平滑处理,原因有两个。主要是为了缓解由于卫生保健当局报告死亡日期的方式存在缺陷,一些工作日的死亡人数一直较低或较高,以及总体而言较高的可变性。还因为高斯假设对低死亡率数字并不完全适用。有更好的方法来处理这个问题,但现在必须这样做。

我还应该提到,我实际上通过在 SIR 模型中添加另一组感染者,使事情变得有点复杂。被感染的个体被转移到第一组,在那里他们可以影响其他人,之后他们转移到第二组,在那里他们为死亡预测做出贡献。我做了这个选择,因为在报告的病例和死亡之间似乎存在延迟,这在标准 SIR 模型中没有反映出来。此外,我工作了一段时间,将报告的病例和死亡的数据结合起来,在这种情况下,这是必要的,然后碰巧我没有从模型中删除它。这些组之间的转换率与示例中的回收率γ相同。

此外,死亡率λ未知,也没有可靠的估计值,因此我将提供死亡率为 0.5%、0.2%和 1%的例子。死亡率λ可以从总死亡率和假定的恢复率γ计算出来。这些示例包含β随时间变化的标准偏差估计值,以及从 4 月 10 日开始的预测值,其中最佳猜测显示为实线和虚线,代表β估计值的一个标准偏差。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

死亡率= 0.5%

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

死亡率= 0.2%

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

死亡率= 1%

这些结果至少表明,社会距离政策对感染率β产生了影响,在一个月的时间里,感染率β似乎从 0.5 下降到 0.27±0.03。鉴于实际死亡率约为 0.2% ,感染率保持在接近0.2%,在这种情况下,只有大约 8.000 瑞典人将失去生命,死亡高峰似乎将在 4 月到来。

另一方面,如果实际死亡率接近 1%,高峰将出现在从 5 月到 6 月的转折时期30.000 到 60.000之间,瑞典人将失去他们的生命,这取决于社会距离的持续成功。

这是一个微妙的平衡之举,当局必须用有限的数据和生硬的工具进行干预。而且赌注显然很高。

估计美国未来冠状病毒病例的数量

原文:https://towardsdatascience.com/estimating-the-number-of-future-coronavirus-cases-in-the-united-states-a0ce17df029a?source=collection_archive---------4-----------------------

更新 3/14/2020 :本文底部的模型预测在 3/11 到 3/14 之间的平均绝对误差(MAE)为 86。这意味着到目前为止,本文中概述的 AR-X(1)模型在平均 86 个冠状病毒确认中是准确的。 2020 年 3 月 18 日 :更新统计数据见 后续文章 2020 年 4 月 10 日更新 : 最近的数据表明 美国正走在一条悲惨的道路上,比地球上任何其他发达国家都要经历更多的冠状病毒感染和死亡。

[## 太少,太晚。在美国,新冠肺炎将变得更加严厉

仍然大部分是坏消息,但是隧道的尽头有一线光明。

medium.com](https://medium.com/@quinterojs/too-little-too-late-covid-19-is-on-track-to-be-more-severe-in-the-united-states-4fc90c659e82)

随着疾病预防控制中心和美国当局争先恐后地为公众准备足够多的冠状病毒测试,如果我们能够每天估计美国未来的新冠肺炎病例数量,将会有所帮助。我们可以通过评估该疾病在其他国家的传播速度来做到这一点。虽然这篇文章的标题指定美国为目标受众,但下面概述的模型可能适用于大多数确诊冠状病毒感染超过 500 例的国家。

这项工作建立在我上一篇文章的背景之上,在这篇文章中,我评估了冠状病毒的全球死亡率的可变性,研究了滞后死亡率,并使用一些简单的数学方法估计了当时美国未确认的新冠肺炎病例总数。

[## 新冠肺炎感染增长率、滞后死亡率和其他有趣的统计数据

约翰·霍普斯金大学系统科学与工程中心最近发布了一个非常有用的仪表板…

link.medium.com](https://link.medium.com/aPNhU635C4)

和以前一样——如果你在寻找关于新型冠状病毒的最新指导和新闻,请参考疾病控制中心或你的国家公共卫生研究所。以下是对约翰·霍普斯金·CSSE 截至 2020 年 3 月 10 日收集的冠状病毒数据的分析,并严格出于教育和研究目的向公众提供。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这种疾病传播有多快?

上图显示了自约翰·霍普斯金数据的第一个追踪日期以来,各个国家的新冠肺炎确诊病例数是如何增长的。初始追踪日期要么是第一个输入的可用数据点,如中国的情况,要么是该国记录的第一个感染病例。在图表中,我们看到新型冠状病毒在对数尺度上以大体一致的方式传播。

在国家达到 500 例确诊病例后评估数据,我们看到这一趋势持续到数千例。这些数据描绘了一幅相当黯淡的画面。这表明,美国正在经历与那些报告称医院不堪重负的国家相同的感染水平,例如意大利、T2、南韩和 T4。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面的皮尔森相关矩阵和时间序列图表明,在 500 例确诊病例后,疾病在世界各地的传播惊人地相似。几乎在所有情况下,我们都看到感染人数开始缓慢增长,然后迅速呈指数增长。根据我们目前掌握的数据,很明显,这个问题的估算方法既不复杂也不复杂。

新冠肺炎汇总统计

我们可以利用上述数据的四分位数范围来创建一个参考表,该表概述了一个国家出现 500 例确诊感染病例后几天内预计的新增病例数。这可能是最简单但也是最天真的方法,我们可以用它来估算感染人数如何在各国间增长。然而,由于它不是特定于任何一个国家,这也意味着任何阅读本文的人都可以将其应用于自己的国家,以模拟该疾病在自己国家内的传播。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从 3 月 8 日到 3 月 10 日,我们看到美国确诊病例数量的增长与其他国家超过 500 例确诊感染病例的数据一致。如果这种疾病继续以类似的方式在美国传播,那么到 3 月 20 日,可能会有 6975 至 14270 例确诊冠状病毒病例,到 3 月 25 日,可能会有 8125 至 33463 例确诊病例。也就是说,应该注意的是,随着时间的推移,观测值会减少-中国、日本、意大利和韩国是数据中仅有的拥有超过 15 天数据的国家-因此,预期误差会随着未来的推移而增加。

还有一个额外的缺点——上表假设了测试中的等价性,我们知道这不是真的。鉴于缺乏测试,美国的官方统计数据可能会长期漏报,因此我们需要更具体的东西来模拟美国确诊的冠状病毒感染。

参数估计

用技术术语来说,我们建立了一个自回归外生模型(AR-X(1)),其中我们根据前一天的值以及来自外生但统计上相关的趋势的输入来估计每一天新增病例的平均值。在这种情况下,我们的外生变量是该组中其他国家确诊病例数的中位数。我通过以下方式计算模型:( 1)选取所有至少有 100 例确诊感染的国家,( 2)使用样本中每天的病例数中位数,( 3)估计美国到目前为止的预期病例数。该模型符合 Python 的 statsmodels 包(|AIC|: 3.70,|BIC|: 3.66,RSS: 0.43),看起来如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上述自回归模型目前预测未来 7 天美国确诊病例数如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

鉴于美国缺乏测试,目前的模型有可能是向下偏的。一旦测试增加,我们可能会看到案例数量的显著变化,这将需要我们重新训练模型。

美国的结果会有什么不同呢?据推测,美国人民可以通过在局势失控之前主动采取措施来实践社交距离来改变他们的未来。

取消一切

估计任意选择地区的人口

原文:https://towardsdatascience.com/estimating-the-population-of-arbitrarily-chosen-areas-533e81c2104e?source=collection_archive---------51-----------------------

仅使用 OpenStreetMap (OSM)功能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用本帖中描述的模型进行人口估计的例子

介绍

自古以来,人们就一直在寻找关于一个特定地方或国家人口数量的信息。旧帝国和国家会不遗余力地粗略估计其领域的居民人数,以确定可以招募的军事力量或可以征税的人数。

在近代,估计人口的方法有了很大的改进,变得更加精确,现在大多数政府都定期进行人口普查,并辅以出生、死亡和移民记录,以及上学人数、税收清单、选民登记册等。尽管如此,许多国家和地区仍然缺乏关于其人口的准确信息,即使在这些信息已知的地方,也缺乏细粒度的公开可用信息,通常只有相对较大的行政级别(如村庄、议会等)的数据是已知的或可访问的。

记住这一点,在这篇文章中,我们将研究一种通用的方法来估计世界上任何给定地区的人口,只使用世界上最大和最容易访问的公共数据集之一的要素:OpenStreetMap【OSM】

OSM 是一个主要由志愿者构建和维护的大规模协作世界地图,它拥有关于各种事物的丰富信息,如道路(高速公路、小学、住宅等)建筑(住宿、商业、宗教等)便利设施(餐馆、酒吧、娱乐、交通等)商店****休闲区运动场所, 以及大量的其他特性,这些特性可以通过使用 API(例如overAPI)提取,或者像本项目中的情况一样,通过使用工具(例如 PyOsmium )直接从 OSM 文件中提取。

我们在该项目中使用的人口训练数据(间接)来自脸书的高分辨率定居层,它使用卫星图像估计给定区域的人口。虽然也许所述模型可以实现更高的精度,但是对新的用户定义的区域执行预测可能意味着能够使用首先使用的图像处理算法,这很可能不是公开可用的,更不用说该任务所需的可能很高的计算资源了。

因此,拥有一个仅基于公开可用数据、使用相对较少的特征集进行同类预测的模型有明显的优势(OSM)。这个项目的主要目标是提供这样一个模型作为最终结果。

方法学

这个项目由三个不同但密切相关的主要步骤组成:数据收集、数据分析模型训练

注意:正如您将看到的,执行了两个有些独立的工作流,一个使用一组更基本的 OSM 要素(是原始源数据集的一部分),另一个使用一组扩展的 OSM 要素(添加到原始数据中)。后者将是本次分析的主要焦点,但我们也将讨论前者。

数据收集

我们从一个现有的数据集**【1】**开始,它由多个六边形组成,边长 400 米,横跨整个地球(减去一些阴影区域)。其中包含来自脸书高分辨率定居图层的关于人口数据的聚合数据,并结合了一些 OSM 要素,如 OSM 对象的数量、建筑物的数量、绘制该区域地图的 OSM 用户的数量、道路的总长度等。

从这个庞大的数据集中,选择了包含大不列颠(英格兰、苏格兰和威尔士)的一个较小的子集区域,并对该模型进行了过滤,结果得到了一个由大约 300k 个六边形组成的数据集。选择该地区是因为其在高密度城市地区和低密度农村地区之间相对较大的分布,以及相对较好的地图绘制。生成的数据集的快照如下所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

红色区域表示人口较多的区域

由于该数据中存在的 OSM 要素不足以解释足够的差异(正如我们将在结果部分中看到的),我们投入了大量精力来构建一个应用程序,该应用程序在给定一个基本 OSM 文件和一个定义研究区域的 GeoJSON 多边形的情况下,可以自动检索多个要素并将这些要素映射到所提供的多边形。

OSM 数据模型是这样的,有节点。节点是所有其他更复杂结构的基本构建块,当它们具有相关联的标签时,它们被包括在计数中。路代表表示线的节点的集合,例如用于绘制道路。因此,它们被映射为一个长度。最后,区域是在相同位置开始和结束的节点的集合,用于绘制建筑物或任何其他结构,因此,被绘制为区域。

因此,最终这相当于大约 120 个提取的特征,这基本上对应于可以从 OSM 地图中提取的大部分信息。例如,在下图中,所有紫色标签对应于商店,然后按类别划分(如食品、服装、美容等),而暗黄色标签对应于娱乐设施,再按类别划分(食物、娱乐、交通等)。

要深入了解特性集合背后的基本原理,请访问相应的 项目 OSM 维基

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OSM 标签示例

收集完数据后,执行了一些数据清理,包括删除只有一个值的列和离群值。因为没有分类变量,所以不需要一次性编码。在此之后,数据就可以进行分析并构建模型了。

数据分析

在数据收集和准备步骤之后,进行探索性分析,以便了解数据以及目标变量群体和其他独立变量之间的关系。因为我们在构建回归模型,所以数据最重要的特征之一是因变量(目标变量)和自变量(特征变量)之间的相关性。也许不出所料,发现变量highway_residential_length landuse_residential_areahighway_bus_stop_count具有最高的相关性,因为这些变量与住宅区相关联,因此与人口密集的地方相关联。相反,负相关性最高的变量是natural_arealanduse_agricultural_area,这也是意料之中的,因为这些类型的特征与低人口密度相关。下图显示了完整的关联结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所有特征和总体之间的相关性

仔细看看这些变量之间的关系*,highway_residential_length之间的相关性很强,但building_accommodation_count,*,population之间的相关性较弱。对于负相关的变量,我们可以观察到关系不是线性的,而是抛物线的,这已经给了我们一个指示,或许变量的多项式项将提供更好的数据拟合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对数据进行空间可视化也带来了一个有趣的视角,证实了我们在散点图中看到的相关性。不出所料,城市中心的住宅道路、铁路和建筑较为集中,而农业用地较多的地区或标记为自然的地区在远离城市中心的地方较为集中。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所选要素的空间分布。较红的区域表示较高的值

模特培训

在分析数据后,将机器学习管道放在一起,以便对数据执行一些预处理和转换,然后将训练数据拟合到模型中,测试-训练分为 20-80%。

管道中的一个转换是通过与每个训练示例相对应的区域来标准化所有特征和目标变量,因为这被证明是使结果对更大的区域更通用的更好的解决方案。下面简要描述流水线的步骤:

  1. 计算面积:该步骤计算输入数据的面积,如果还没有计算的话。
  2. 特征选择器:该步骤选择模型特征+区域*,后者将在下一步使用。*
  3. 面积归一化器:该步骤通过对应于该训练示例的面积来归一化每个特征。
  4. 删除列:该步骤删除不需要的列;在本例中为*区域。*
  5. 特征映射:该步骤将输入特征的多项式项添加到指定次数(如果为 1,则不添加多项式项)。可以选择只包含指数项,也可以包含变量之间的相互作用项。
  6. 特性缩放:该步骤通过减去平均值并除以标准偏差,使特性值都处于同一比例。
  7. 回归器:这一步是实际应用回归算法,将数据拟合到模型中。

结果

如前所述,构建了两种不同的模型:第一种方法使用包含少量 OSM 要素的源数据集,第二种方法使用通过定制的应用增加了更多要素的数据集。为了测试模型的性能,选择了两个不同的指标:rr得分,它为我们提供了模型所解释的数据中方差比率的度量,以及平均绝对误差*,它为我们提供了模型在可测量的数量上表现如何的指示,在我们的情况下是*居民/公里。**

对于建立模型的第一种方法,尝试了线性(套索山脊和集合(随机 森林梯度 推进)回归器的组合。在执行超参数调整后,可以看到使用高达三次多项式项和梯度 提升回归量的组合获得了最佳结果,相应的 r 得分约为 0.67,而平均绝对误差*约为 158 *居民/ km。为了了解我们在偏差-方差方面的表现,我们分析了学习曲线,正如我们所怀疑的那样,我们可以观察到,即使使用多项式来构建变量之间更复杂的关系,模型也存在高偏差,其中训练和交叉验证误差都收敛于相对较高的值。因此,为了建立一个性能更好的模型,我们不需要添加更多的训练数据,但要包括一个更大的特征集,一个可以解释目标变量中更多变化的特征集。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因此,在这些学习的激励下,获得了更多的数据(详见数据收集*),使我们准备好将机器学习管道应用于这个丰富的数据集。与前面的方法一样,再次尝试了线性(套索山脊)和集合(随机 森林梯度 推进)回归元的组合。在超参数优化之后,高达二次多项式项和梯度 提升回归量的组合再次获得了最佳结果,其 r 得分约为 0.9,而平均绝对误差约为 91.8 居民/公里。与第一种方法相比,这是一个巨大的进步!这证明了获取更多功能的努力是值得的。再看一下学习曲线,我们看到训练和交叉验证误差仍在收敛(表明模型中存在一定的偏差),但其值要小得多。*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

不过,在这种情况下,对一些地方/城市的实际人口值和估计人口值进行了比较。完成后,可以看到使用正则化值为 1 的套索回归变量获得了最佳结果(实际和预测之间的平均误差较低),这表明当使用梯度推进回归变量时,我们可能在某种程度上过度拟合了数据。*

** 为了计算自定义地点的人口,首先需要使用osm-feature-extractor并绘制所提供区域的 osm 特征。然后,可以将这个中间步骤输入模型,该模型将输出人口密度(居民/公里)。最后,将结果乘以面积,就得到总人口。*

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Lasso(左)和梯度增强(右)模型在几个地方的模型结果比较

进一步检查模型,该模型的特征重要性表明,实际上迄今为止最重要的特征是highway_residential_length,而不是 Lasso 回归的更为分散的系数值。这表明了这样一个事实,即 Lasso 回归模型可能更善于概括未知的情况,因为它考虑了更多的特征,因此不容易过度拟合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Lasso(左)和梯度增强(右)模型之间的系数/特征重要性比较

结论

在这个项目中,我们着手建立一个模型,仅基于从 OSM 数据中提取的特征,该模型可以准确预测给定区域的人口。为此,我们首先从取自*【1】*的数据集开始,该数据集的特点是特征很少,因此产生了高偏差模型。基于此,我们使用定制的应用程序从 OSM 文件中提取特征来扩展基础数据。

我们看到,添加更多的特征,尽管有给模型增加一些噪声的风险,但提供了更好的预测能力,并使我们能够大大降低平均绝对误差。此外,通过这种方法,我们可以从 OSM 文件中确定性地提取所有需要的模型输入特征,而不是仅使用初始数据,我们没有现成的方法来确定新区域的特征,而不必执行某种逆向工程。

我们看到,尽管梯度推进回归器模型在测试数据上表现更好,但拉索回归器在几个地方/城市的实际人口估计上表现更好,实现了 26%的最大差异。

在这个模型中,我们使用了遍布英国的数据点,这些数据点跨越了人口密度非常高的地区(如伦敦),以及人口密度较低的地区和农田。这应该使模型能够很好地扩展到大多数情况,虽然如果我们在人口密度非常高的地区使用它,可能不是那么好。此外,该模型还取决于研究中该区域的地图绘制程度。在西方世界的大部分地区,OSM 提取的地图绘制得相当好,但在欠发达地区就不那么好了——尽管总的来说,主要的人口中心往往都绘制得很好。

尽管存在这些事实,但我们看到该模型对实际地点和城市人口的估计误差相对较低,并且我们现在有了一个模型,可以仅根据 OSM 特征对任何给定区域的人口进行粗略估计。

查看更详细的分析请查看 Github 资源库**

参考

****【1】-Kontur 人口:全球人口密度为 4 亿 H3 六边形

****【2】-巴斯特,汉娜,2015。精细的人口估计

用有限混合模型和 EM 算法估计经济状态

原文:https://towardsdatascience.com/estimating-the-state-of-the-economy-with-finite-mixture-models-and-the-em-algorithm-d975d280dbc6?source=collection_archive---------48-----------------------

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

有限混合模型假设存在一个潜在的、不可观察的变量,该变量会影响生成数据的分布。这个想法有许多实际应用:例如,股票价格可能根据一些假设的模型而变化,但是这个模型的参数在牛市和熊市期间可能是不同的。在这种情况下,潜在变量是经济状况,这是一个有点不确定的术语,但却非常有影响力。

将有限混合物拟合到数据包括估计数据可能来自的分布的参数,以及来自每个分布的概率。**这使我们能够量化和估计重要但未定义和不可观察的变量,例如已经提到的经济状况!**然而,使用标准的最大似然法并不容易。幸运的是,聪明的期望最大化(EM)算法拯救了我们。

本文分为三个部分,讨论以下主题:

  1. EM 算法是什么,它是如何工作的,以及如何用 Python 实现它。
  2. 如何在实践中应用它来估计经济状况。
  3. 附录:为好奇的读者提供 EM 算法背后的数学知识。

让我们直入主题吧!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

期望值最大化算法

我们将首先使用一些随机生成的数据来讨论 EM 算法。让我们从数据生成过程开始。假设我们的数据可能来自两个不同的正态分布。一个用平均值-4 和标准差 2 来描述。对于另一个,参数分别是 11 和 3。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们实际观察到的数据是上述两者的混合,定义为

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中δ∑{ 0,1},概率𝑝为 1。在我们的例子中,让我们设置𝑝为 0.65。因此,如果对于给定的数据点δ= 1,它来自分布𝑑𝑎𝑡𝑎1,如果δ= 0,它来自𝑑𝑎𝑡𝑎2.这里,δ是我们在现实中不会观察到的影响数据生成过程的潜在变量。让我们根据这个过程生成一些数据,并绘制它们的直方图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

快速浏览该图表明,数据可能是在两条法线混合的情况下产生的。因此,两个高斯函数的有限混合似乎是这些数据的合适模型。请记住:我们观察的只是数据,我们需要估计的是参数:𝜇1、𝜎1、𝜇2、𝜎2 和𝑝,称为混合概率,是数据来自其中一个分布的概率——比如第一个。

这种数据的可能性很难通过分析最大化。如果你想知道为什么会这样,向下滚动到数学附录。但是还有另一种方法——EM 算法。这是一种使用迭代两步程序提供对数似然函数最大值(可能是局部最大值)的方法:

  • 期望(E)步骤,
  • 最大化(M)步骤。

在 E 步骤中,我们基于数据和潜在变量δ的联合密度计算所谓的完全数据似然函数。在 M 步中,我们最大化这个函数的期望值。我们迭代地重复这两个步骤,直到参数估计不再改变。所有的数学推导都归入下面的附录中;现在,让我给你提供现成的公式。

在我们的两个高斯混合的情况下,e 步骤包括计算𝑝=1 给出其他参数的概率,表示为𝑝𝑝1:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

𝜙(𝑑𝑎𝑡𝑎在哪里;𝜇1,𝜎1)是第一个分布下数据的概率密度,一个具有均值𝜇1 和标准差𝜎1.的高斯分布让我们把它编码下来:

M 步骤中应用的最大化公式如下(滚动到底部查看推导过程):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

𝜇2 和𝜎2 的公式是相同的,只是它们用(1−𝑝𝑝1)代替了𝑝𝑝1.让我们把它翻译成 Python:

如您所见,E-step 对参数𝜇1、𝜎1、𝜇2、𝜎2 和𝑝进行条件化,M-step 对其进行更新。为了开始,我们需要在运行第一个 E-step 迭代之前初始化这些参数。一个普遍的选择是将均值𝜇设置为从数据中抽取的任意随机数据点,将标准差𝜎设置为数据的标准差,将𝑝设置为 0.5:

我们现在已经编码了整个 EM 算法!让我们将所有这些代码放入一个名为TwoGaussiansMixture()的类中,使用一个fit()方法,该方法将datanum_iter作为参数,初始化参数,并通过 E 和 M 步骤迭代num_iter迭代。该类还将有其他三个实用程序方法:

  • predict(),它获取一些数据x,并为这些数据生成我们拟合的高斯混合的预测 PDF,
  • get_mixing_probability(),它获取一些数据x,并返回每个数据点来自其中一个分布的概率,
  • plot_predictions_on_data(),将predict()生成的 PDF 绘制在原始数据直方图的顶部。

现在,让我们用 100 次迭代来拟合我们的模型,并绘制预测的 PDF。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

蓝色直方图和上面的一模一样,描绘的是原始数据。橙色线是我们拟合的高斯混合的概率密度,或 PDF。它非常符合数据!我们也可以在上面的图上画出混合概率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在图的左侧,混合概率接近于零,这意味着模型确定 x 轴上的值来自左侧分布。我们越向右走,模型就越确定数据来自另一个模型。

最后,我们来看参数。他们正确估计了。

print(model.mu_1, model.mu_2, model.sigma_1, model.sigma_2, p)11.263067573735341 -3.893589091692746 2.5184757384087786 2.162510874493102 0.2999296508820708

回想一下,真实均值是-4 和 11,标准差是 2 和 3,𝑝是 0.65(因此 1−𝑝是 0.35,该模型不关心哪个分布是哪个)。参数估计值似乎接近真实值!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评估经济状况

现在我们已经看到了 EM 算法如何处理一些随机生成的数据,让我们将这些知识付诸实践吧!下图显示了美国从 1967 年到 2019 年的季度 GDP 增长率。红色条纹是美联储宣布为衰退的时间段。我们可以看到,衰退与 GDP 增长率的大幅下降相关联。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据来源:弗雷德

让我们比较一下衰退时期和非衰退时期的 GDP 增长率直方图。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看起来像两个高斯人?这是我们TwoGaussiansMixture()模型的一个很好的用例!在这种情况下,我们假设 GPD 增长率具有正态分布,参数取决于潜在变量δ,δ要么为 1,要么为 0:衰退或不衰退。在这种情况下,参数𝑝可以被解读为衰退的概率,对经济状况的一个很好的估计。

我们将重用我们的TwoGaussiansMixture()类,并使用get_mixing_probability()方法来计算每个原始数据点的𝑝。由于原始概率𝑝非常嘈杂,我们将使用滚动平均来平滑它们。

现在,让我们画出我们估计的衰退概率和美联储宣布的衰退概率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在过去的三次衰退中:2007 年的房地产泡沫、21 世纪初的互联网泡沫和 1990 年的油价冲击,我们的估计都达到了峰值,表明衰退的概率很高,而事实也确实发生了。一些早期的衰退也被很好地捕捉到了,尽管模型显示 1983 年有 90%的可能性出现衰退,但实际上并没有出现。

也许这个模型并不完美,但请记住,它能看到的唯一数据是 GPD 增长率,并且它输出了对经济状况的概率估计——可能是 1983 年预测的峰值捕捉到了经济几乎崩溃的危险吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

感谢阅读!如果你对 EM 方程的来源感到好奇,请随意阅读下面的数学附录。不然就自己抓点数据建个有限混合模型!所有的代码,包括产生情节的代码,都可以在这里找到。

如果你喜欢这篇文章,试试我的其他文章。不能选择?从这些中选择一个:

[## 增强你对助推的把握

揭秘著名的竞赛获奖算法。

towardsdatascience.com](/boost-your-grasp-on-boosting-acf239694b1) [## 线性回归中收缩法和选择法的比较

详细介绍 7 种流行的收缩和选择方法。

towardsdatascience.com](/a-comparison-of-shrinkage-and-selection-methods-for-linear-regression-ee4dd3a71f16) [## 模型选择和评估

超越火车价值测试分裂

towardsdatascience.com](/model-selection-assessment-bb2d74229172) 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

附录:EM 算法的数学

在这个可选部分,我们将展示为什么我们必须使用 EM 算法来估计混合模型。我们还将推导出之前应用过的公式。

回想一下数据生成过程如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们将所有的模型参数共同表示为𝜃={𝜇1,𝜎1,𝜇2,𝜎2,𝑝}.

由于数据是两个高斯混合,并且数据点是独立的,因此数据的似然函数是每个数据点的高斯混合的乘积:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中𝜙表示高斯分布的 PDF。如果我们取似然性的对数,以便更容易地最大化它,请注意,高斯 pdf 上的和将出现在对数内,这一点也不容易。我们可以尝试数值方法,但这对于更多的高斯混合来说很难。最后,我们还想知道在给定参数(即概率𝑃(δ=1|𝜃).)的情况下,哪个分布与每个数据点相关

可能性

这是电磁魔法的切入点!即使δ未被观察到,我们也可以认为它是数据集的一部分。这被称为数据增强(不要与这个术语的机器学习含义混淆,它表示基于真实的观察人为地创建更多的数据)。然后我们考虑所谓的完全数据似然函数,基于数据和δ的联合密度。

根据条件概率定律,我们可以推导出数据和δ的联合密度:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中,𝐼是指示函数,如果其自变量为真,则为 1,否则为 0。完全数据似然函数是上述跨观察的产物:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当我们对其取对数时,乘积的对数变成对数的和,我们得到下面的对数完全数据似然函数:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

电子步骤

上面的对数似然是需要最大化的。然而,我们没有观察到它的𝐼(δ𝑛=1 部分。因此,我们简单地取δ的期望值。这需要我们计算期望𝐸[𝐼(δ𝑛=1],这就是𝑃(δ=1|𝜃).在上面的代码中,这个量被表示为𝑝𝑝1,可以计算如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

完成后,我们可以将上述内容代入𝑙𝑜𝑔𝐿的公式,计算出预期对数似然:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

m 步

艰苦的工作完成了!最大化上述内容实际上很简单,因为有三个独立的相加部分,它们中的每一个都可以单独最大化。第一部分提供了𝑝作为𝑝𝑝1.平均值的新估计第二个可以使用普通的 PDF 公式重写为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其在将一阶导数设置为零并求解最大值后,提供了用于更新𝜇1 和𝜎1:的公式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以相应地推导出更新𝜇2 和𝜎2 的公式。这些是我们在前面的代码中使用的精确公式。

新冠肺炎在个别年份的特定年龄风险

原文:https://towardsdatascience.com/estimating-year-of-age-specific-risks-for-covid-19-328ceba7cd4d?source=collection_archive---------30-----------------------

据报道,10-20 岁年龄段人群中存在新冠肺炎的年龄风险因素。我们可以做得更好。很容易估计特定年龄的个体年风险,这使得人们能够更准确地评估他们的个人风险水平。

TL;速度三角形定位法(dead reckoning)

我们现在已经有了相当好的关于新冠肺炎相关风险的数据,但这些数据并没有以让人们容易理解或使用的方式呈现出来。这一系列的目的是帮助人们更清楚地评估新冠肺炎对他们自己和他们所关心的人的风险。

查看文章底部的图 8,了解特定年龄的风险水平。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

裘德·贝克在 Unsplash 上的照片

谁会以 10 年为一个年龄段来描述自己的年龄?

你可能见过许多类似图 1 所示的图表,它显示了年龄如何影响新冠肺炎风险。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1-新冠肺炎基于年龄的死亡率。具体数字摘自本系列第二部

这些图表有助于传达风险随年龄增长的一般概念。但是他们不太擅长传达任何特定年龄的风险水平。如图 2 所示,我 70 岁那天会发生什么?我的风险是否在一天内从 0.9%增加到 2.4%?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2——像这样的图表不能精确地传达特定年龄的风险。

你的风险当然不会在一天内增加。在你 60 多岁的时候,它一直在增加,在你 70 多岁的时候,它还会继续增加。图 1 和图 2 中的图表实际上是稳步增长的风险水平的粗略近似值,如图 3 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3——显示风险的条形图实际上显示了年龄段中点的风险水平。

条形图上的每一条实际上显示了每个年龄段的平均风险水平。或者,换句话说,它显示了每个年龄段中点的风险。

在每个年龄段的低端,你的风险比显示的要低,在每个年龄段的高端,你的风险比显示的要高。61 岁时,你的风险低于 0.9%。69 岁时,你的风险高于 0.9%。只有当你接近年龄段的中间值,也就是接近 65 岁时,你的风险才是 0.9%。

使用内插法估计年龄风险因素

据我所知,没有政府机构或研究人员发表过新冠肺炎的年龄特异性风险。然而,使用插值的数学技术,更具体的风险水平很容易从可用数据中估算出来。

让我们看一个例子。假设我们想估计 69 岁老人的死亡率。我们从我们知道的开始。如图 4 所示,我们知道 65 岁时的死亡率为 0.9%,75 岁时的死亡率为 2.4%。我们想知道的是 69 岁时的死亡率是多少。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 4

我们知道另外一个可能不太明显的事实,那就是 69 是 65 到 75 的 40%。

插值是这样的假设,如果你有两个相关的标度,并且其中一个标度上的一个因子是从一端到另一端的 40%,那么相关标度上的相关因子也必须是从一端到另一端的 40%。这种假设不一定 100%正确,但除非我们相信一个人的风险因素确实在他们的生日那天突然增加,否则这是一个合理的近似值。

如图 5 所示,当我们计算时,这意味着 69 岁的人的死亡率为 1.6%。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 5

一个小问题

图 3-5 中使用的中点是年龄组的直接算术中点。例如,我显示 65 岁是 60-69 岁年龄段的中点,因为它是 60-69.999 的中点。(真正的年龄段不是 60–69,是 60–69.999。)

每个年龄段更准确的中点应该使用每个年龄段实际人数的加权平均值来计算。直到 60 岁,这种人口加权中点和算术中点之间的差异是最小的*,但对于 60-69 岁年龄段,这种差异是一年的四分之一,而对于 70-79 岁年龄段,这种差异是一年的三分之二。*

每个年龄段的具体差异如图 6 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 6-每个年龄段的算术和人口中点。80 岁以上年龄段的中间点是以不同的方式确定的,将在本文后面解释。

现在我们有了更准确的年龄组中点,我们应该修改图 5 所示的插值,以使用更准确的中点。该修订如图 7 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 7

从图 7 中可以看出,在这种特殊情况下,69 岁的风险系数 1.6%保持不变。然而,其他年龄段的风险因素确实会发生变化。

真正的特定年龄风险因素

我们可以对所有其他年龄进行与图 7 中相同的过程,使用年龄组的人口加权中点,并为每隔一个年龄创建一个特定年龄的风险因素表。这些计算的结果如图 8 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 8

限制和注意事项

以这种方式插值是一种近似的练习。图 8 中的数字并非基于死亡数据本身;它们相当于可以从粗略数据中近似推断出的额外精度。

这种方法还有一些额外的限制。

第一个限制是,我们不能插值超过最年轻和最年长年龄带的中点。

在低年龄方面,我们知道年龄范围的中点是 10.15,我们知道风险系数是 0.0012%。但是由于我们没有 10.15 岁以下人群的风险数据,我们没有在更年轻的年龄插入风险因素的基础。这意味着 10.15 岁以下的所有因素都是一样的。由于四舍五入,11 岁和 12 岁的附加因素看起来是一样的。

在高年龄方面,死亡率数据停留在 80+。我们知道下面年龄段的中点是 74.35,我们知道它的风险系数是 2.4%。我们知道下一个年龄段的风险系数是 4.4%,但我们不知道它的中点,因为它被描述为“80+”。对于这个最高范围,我将中点定义为 85 岁。美国人口普查数据显示,80-84 岁的人口有 610 万,85 岁以上的人口有 650 万。根据这些数据,真正的中点一定在 85 岁以内。

由于我们没有 85 岁以上人群的死亡率数据,我们无法对 85 岁以上人群进行插值,因此每个更大的年龄都有相同的风险因素。

为什么特定年龄的危险因素很重要?

图 8 中的风险因素允许一个人比 10 年年龄段的人更准确地评估他们的个人风险。如果你快 50 岁了,感觉非常好,因为从 50 岁到 59 岁的平均风险系数只有 0.30%,查一下表格。58 岁时,你的风险系数是 0.50%,当你 59 岁时,它攀升至 0.56%,这几乎是你年龄段中点风险系数的两倍。

在文章的开始,我指出一个 70 岁的人在他们 70 岁的那天死亡风险不会从 0.9%增加到 2.4%。事实上,从表中可以看出,他们的风险从 1.6%增加到 1.7%,当然这也不是一天之内发生的。

尽管这篇文章比其他地方更准确地介绍了新冠肺炎风险,但仍然缺少一点,即有无共病。我将在本系列的下一篇文章中展示共病是如何影响个人风险的。

这是关于新冠肺炎死亡率的 5 集系列报道的第 4 集:

  • 第一部分 :为美国建立一个总体基础 IFR
  • 第二部分 :基于年龄的 IFRs
  • 第 3 部分 :基于人口统计的各州和各国 IFRs 的变化
  • 第 4 部分:按个别年份分列的 IFRs
  • 第 5 部分:有无共病的 IFRs】

更多详情请访问新冠肺炎信息网站

更多美国和州级数据,请查看我的新冠肺炎信息网站。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我的背景

20 年来,我一直专注于理解软件开发的数据分析,包括质量、生产率和评估。我从处理噪音数据、坏数据、不确定性和预测中学到的技术都适用于新冠肺炎。

估计、预测和预报

原文:https://towardsdatascience.com/estimation-prediction-and-forecasting-40c56a5be0c9?source=collection_archive---------15-----------------------

估计与预测。预测对预测。请跟着读,以便快速区分

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

马库斯·温克勒在 Unsplash 上的照片

估计意味着使用历史数据找到最佳的参数,而预测使用这些数据来计算未知数据的随机值

在我们继续下一步之前,上面陈述中突出显示的单词需要一些上下文设置:

我们需要大量的历史数据来学习机器学习和建模的依赖性。数据通常涉及多个观察值,其中每个观察值由多个变量组成。这个多变量观察值 X 属于随机变量 X,其分布位于被称为**‘自然状态’**的可能分布的有限集合的范围内。

估算是优化自然界真实状态的过程。粗略地说,估计与模型构建有关,即找到最合适的参数,该参数最好地描述了历史数据的多元分布,例如,如果我们有五个独立变量,X1、X2……X5 和 Y 作为目标变量。然后,估计包括寻找 f(x)的过程,f(x)是由 g(θ)表示的自然的真实状态的最接近的近似值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

训练数据的参数估计

然而,预测利用已经建立的模型来计算样本外的值。它是计算另一个随机变量 Z 的值的过程,这个随机变量的分布与自然界的真实状态有关(这个性质在任何机器学习算法中都起着举足轻重的作用)。平均而言,当所有可能的 Z 值都一致时,预测被认为是好的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对未知数据的预测

有多种方法可以解释这两者的区别,让我们也来探索一下贝叶斯直觉:

估计是在事件发生之后,即后验概率。预测是事件发生前的一种估计,即先验概率。

让我们总结一下我们对估计和预测的理解:为了对看不见的数据进行预测,我们在训练数据集上拟合一个模型,该模型学习估计器 f(x),该估计器用于对新数据进行预测。

现在,我们了解了预测是什么,让我们看看它与预测有什么不同。

预测问题是预测问题的子集,其中两者都使用历史数据并谈论未来事件。预测和预报的唯一区别是在预报中明确增加了时间维度。

预测是基于时间的预测,即在处理时间序列数据时更合适。另一方面,预测不需要仅仅基于时间,它可以基于影响目标变量的多个因果因素。

我偶然发现了一个非常新鲜的视角,用单词本身的起源来解释预测和预报之间的差异。

我将在本帖中简要介绍这个创新的插图,但是你可以在原帖这里阅读更多关于它的内容。

预测更多的是面向过程,遵循一定的做事方法论。在某种程度上,它假设过去的行为是未来将要发生的事情的足够好的指示器。

预测考虑所有的历史过程,影响变量和相互作用来揭示未来。

总之,所有预测都是预测,但并非所有预测都是预测。

希望你现在已经清楚了估计和预测之间的区别。这篇文章还强调了预测和预报之间的区别。

快乐阅读!!!

参考资料:https://stats . stack exchange . com/questions/17773/what ’ s-difference-of-estimation-and-prediction/17789 # 17789

对抗带有种族偏见的警察算法的伦理障碍

原文:https://towardsdatascience.com/ethical-hurdles-of-combating-racially-biased-police-algorithms-5d8fc454b15a?source=collection_archive---------37-----------------------

调整用于刑事司法的算法的变量权重可能是有希望的,也可能是有问题的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

辛辛那提市议员杰夫·帕斯托尔*(摄影:卡里姆·埃尔加扎/The Enquirer,原载于 cincinnati.com)*

在 2019 年日历年结束时,俄亥俄州辛辛那提市议员杰夫·帕斯托尔(Jeff Pastor)呼吁对该市警务工作中的种族差异进行全面审查。斯坦福开放警务项目进行了一次广泛宣传的报告后,帕斯特恳求纽约市进行评估。该报告发现了该市交通拦截的显著差异,包括一项发现“辛辛那提警察在黑人占主导地位的社区比白人多拦截了 120%的居民。”

要求进行审查的呼吁重新激起了警察问责活动家和公共政策界的辩论。随着预测性警务其他数据驱动策略变得越来越普遍,一个持续发展的主要问题是潜在的有偏见的警察数据会变成什么样?如果警方的互动有偏差,这些数据一旦输入预测模型,就可能导致有偏差的输出,引导警方采取有偏差的行为,即使在警官不知情或不服从的情况下。正如现在的老话所说,“垃圾进来,垃圾出去”。

修复并不简单

学者、活动家和爱好者已经在将算法公平性问题带到主流关注的前沿方面取得了长足的进步。面部识别扩散已经在多个地方被停止,直到可以开发出合理的安全措施。这发生在种族差异被公开之后,部分原因是人工智能在同质数据集上接受训练,该数据集不包括肤色较深的人。

但是,创建包容性数据集作为一种解决方案并不总是适用的,特别是当涉及到基于历史警方数据的预测性警务时。创建一个道德框架是困难的。有了预测性政策,就不是数据科学家创建数据集了。这不仅仅是一个过于同质的集合的问题,而是可用的历史数据在被输入任何预测模型之前可能被污染。一个统计模型可以遵循科学审查的最高标准,但当地面上的个人可以引入有偏见的数据时,这可能无关紧要。

内建预期

这就产生了一个问题:可以说,科学家应该用多少数据来进行“先发制人的防御”。

几个月前,公共政策中的有色人种学生研讨会在加州大学伯克利分校高盛公共政策学院举行,人工智能中的种族问题是其中一个主题。该小组由政策专家组成,调查算法不公平的潜在危害,以及活动人士为使政府系统更加透明而正在进行的努力。

该小组讨论了 2017 年斯坦福大学关于奥克兰警官使用语言的种族差异的研究。这项研究中的研究人员使用计算语言学模型来识别语音模式。关键的一点是,该模型可以相当准确地检测出一名官员是否在与一名黑人或白人居民交谈,完全基于对话的文字记录。

小组中的一位数据科学家表示,这样的研究是乐观的理由。她的论点是,如果我们能够确定种族偏见的比率,就像这项研究似乎做的那样,那么你就可以使用调整函数来降低受歧视人口统计数据的得分。

个缺点,但是统计奇偶性、真阳性率比较和其他“公平指标”中的流行技术在识别偏倚方面显示出希望。然而在实践中,这是有问题的。

引入体重是种族主义的借口吗?

想象一下,警察正在使用一个给定的“热点”软件,该软件使用犯罪的时间、位置和历史报告作为变量来预测未来犯罪的风险。一个可能的策略是首先确定有偏见的政策倾向。假设确定了某个城市的特定网格具有相对高密度的少数种族,并且被过度政策化。因此,人们可能会低估与城市网格相关的变量,这表明数据集中的这些观察结果“不太可信”。

在使用许多预测变量的场景中,类似于当代风险地形预测(与“什么?在哪里?什么时候?”热点模型),可以给变量分配不同的权重。虽然目前没有犯罪前预测性警务的例子旨在为特定人口统计的成员建立预测,但像调整可变权重这样的想法似乎在解决累犯分数的偏见方面受到欢迎。

多年来,美国越来越多的司法管辖区采用“风险评估分数”来帮助确定再次犯罪的可能性。主要用于假释或保释听证会,2016 年 ProPublica 调查发现:

在预测谁会再次犯罪时,[风险评估]算法对黑人和白人被告犯错误的几率大致相同,但方式非常不同。

这个公式很可能错误地将黑人被告标记为未来的罪犯,错误地将他们标记为白人被告的比例几乎是白人被告的两倍。

白人被告比黑人被告更容易被误贴上低风险的标签。

当看到这一点时,从上述小组成员的证词中可以推断出一个巨大的诱惑:“如果人口统计 X以已知的偏差率 Y受到歧视,并且我们有一个包括人口统计信息的预测模型,我们可以调整 T10 人口统计 X 的变量权重,以补偿已知的 T12 偏差率 Y。”

尽管初衷是好的,但这种改革很有可能隐含着接受一定程度的种族主义。在这两种情况下,城市网格的权重或特定人口统计数据的权重都有所降低,一定程度的偏差被接受并纳入模型中。

这可能会造成偏见问题已经“解决”的错觉。这可能会导致不太重视偏见训练。执法部门或州政府可能觉得有必要纠正模型中的问题。如果参与司法系统的个人认为,最终,该模型会纠正他们的行为,他们可能会感到不那么负责。

此外,这带来了新的伦理问题。在犯罪前预测警务的情况下,如果执法中的情绪变化超过了预测算法的能力,该怎么办?预测模型可能不擅长解释剧烈的新变化。假设在一个特定的例子中,执法比分配的权重更有偏向性。在这种情况下,趋势是不是会因为不符合规范而低估这种程度的偏差?假设执法比体重偏差小。在这种情况下,对偏见的内在补偿会成为特定人群的不道德特权吗?

简单地说,偏差率也可能是错误的。这些算法使用历史数据,在某些情况下可以追溯到十年前。偏差率在时间和地点上是静态的吗?这似乎令人怀疑。这是否要求每个在司法事务中使用算法的司法管辖区也量化他们的数据有多大的偏差?如果是,应该多久审计一次这个数字?

我们应该还是不应该包括人口统计信息?

作为对延续种族偏见指控的回应,PredPol,预测警务软件的最大供应商之一,强调他们不使用某些人口统计信息,如种族(尽管这并不能满足因其他原因潜在种族差异的投诉)。这可能是更好的,但陪审团仍然没有出来。

用数据来识别种族差异已经被证明是有用的。但是,正如许多活动家和学者所争论的那样,福柯关于政府统治工作传统的那些人其中最重要的是,人口统计数据也有将个人放入历史盒子并将他们归入官僚类别的风险。例如,人口普查数据在美国被用于拘留日本人,在纳粹德国,它被用于追踪犹太人口。即使没有明显的恶意目的,人口统计数据仍然可以加强分离。它巩固了“他者”的存在。

接下来的问题是,如果偏见持续存在,即使没有人口统计数据,通过消除这些数据,我们已经不可挽回地损害了我们识别偏见的集体能力,该怎么办?

结论

在执法中使用算法似乎不是一种衰落的时尚。随着犯罪前和风险评估中的预测性警务持续增长,数据科学和社会科学领域必须保持警惕。不能忘记,模型的另一边也有人类。应该查询数据,遵循最佳做法,分享对话。

从道德角度收集与认知障碍患者的对话

原文:https://towardsdatascience.com/ethically-collecting-conversations-with-people-that-have-cognitive-impairments-9ad0d2714bdd?source=collection_archive---------55-----------------------

提高语音助手的可访问性:正确做事

这是我与 T2 的论文的精简节略,发表在 2020 年人类语言技术的法律和伦理问题研讨会上。如果您在研究中使用了本指南的任何内容,请务必引用我们题为“道德地收集与认知障碍患者的多模态自发对话”的论文:

**Harvard:**
Addlesee, A. and Albert, P., 2020\. Ethically Collecting Multi-Modal Spontaneous Conversations with People that have Cognitive Impairments. LREC Workshop on Legal and Ethical Issues in Human Language Technologies.**BibTeX:**
@inproceedings{addlesee2020ethically,
  title={Ethically Collecting Multi-Modal Spontaneous Conversations with People that have Cognitive Impairments},
  author={Addlesee, Angus and Albert, Pierre},
  journal={LREC Workshop on Legal and Ethical Issues in Human Language Technologies},
  year={2020}
}

我花了一年多的时间才获得伦理上的批准来收集重要的语料。这是一个相对新鲜的领域,但我希望其他研究人员能够致力于为各种认知障碍患者提供语音助手。这本实用指南旨在帮助像我一样的未来研究人员快速收集这些有价值的数据集,而不损害任何伦理考虑或数据安全。

介绍

一年多前,我决定致力于让痴呆症患者更容易使用语音助手(Siri、Alexa 等)。为了开始这个项目,我(和我的两名主管)首先详细列出了一些关键挑战,如果我们要朝着这个目标前进的话。一个巨大的障碍是缺乏合适的数据…所以让我们收集它?

我首先决定需要哪些数据,并着手组织这项任务、录制地点、录制设备等。我计划录制与痴呆症患者的友好、即兴对话的音频和视频。作为一名数学家/计算机科学家,有一项重要的工作我没有足够的经验在没有帮助的情况下无法完成——伦理审批。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

来源

我花了一年多的时间与来自英国国民医疗服务体系、慈善机构、痴呆症研究中心、心理学部门、伦理委员会(名单还在继续)的专家交谈,以确保数据收集既符合伦理又安全。

这篇文章包括我从这些专家那里学到的实用指南和 Pierre Albert 开发的设备“T2”CUSCO 的细节,以尽可能安全地捕获和存储这些数据。

数据

我之前已经讨论了 为什么这些数据很重要,但是在本指南的上下文中,我将在简要描述我们正在收集的哪些数据之前对此进行扩展。

自然语言

虽然我们和其他人有自然的日常对话,但我们说话并不干净,因为我们的言语中充斥着美丽的对话现象:

  • 犹豫&停顿——“我去了那家很棒的咖啡店 Peppers!”
  • 充满停顿——“我去了那家很棒的咖啡店…………辣椒!”
  • 修——”然后向左走……不不,向右!
  • 重复-“这是如此如此好!”
  • 背道而驰——(电话中有人)是的……嗯……嗯……

然而,当我们对语音助手说话时,我们从我们的语音中消除了所有这些现象,称为 计算机对话 。为了说明这一点,你会对一个语音助手(叫做 Jacob)说什么:

  • “雅各布,我的手是湿的,所以你能设置一个计时器吗……嗯……我不知道……请给我几分钟。”
  • “雅各布,设置两分钟的计时器”

我们都知道是哪一个,因为…

我们适应系统的能力!我们了解哪些功能是可用的,以及如何最好地使用这些功能。对于老年人(缺乏使用语音助手的经验)和有认知障碍的人来说,这些“智能设备”可能会非常令人沮丧。这是因为语音助手不懂自然交流,有以上所有现象(还有更多),这正是人们一直以来的交流方式。

自然视觉传达

我们也不仅仅用语言交流,我们在每一次面对面的谈话中都使用视觉线索。例如:

  • “那是什么?”-没有观点或眼神,不可能回答。
  • “哈”——他们可能看起来困惑或惊讶(“哈,有意思!”)
  • 沉默——点头表示同意或摇头表示不同意。

你很有希望想到更多的例子,并意识到我们在视觉上呈现了多少精彩纷呈的有价值的信息。大多数语音助手完全忽略了这种材料(公平地说,他们没有摄像头),但它可能对解释某些用户群极其有益。

例如,痴呆症患者在想一个单词时停顿的时间可能比预期的要长。如果语音助手可以看到这个用户显然在想一个词,它可以耐心等待。或者,就像我和一群理科硕士学生一起工作一样,它可以给出最有可能的答案

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

胡椒- 来源

利用视觉反馈的语音助手变得越来越常见,因为它们适用于盲人用户(就像我对另一组理学硕士学生所做的那样)和嵌入辅助机器人的语音助手。如果这些视觉提示被证明对老年人和有认知障碍的人有益,那么我们必须探索如何做到这一点。

进入细节

为了研究有认知障碍的人如何自然互动,我们需要分析与有相关认知障碍的人的自然对话。

以痴呆症为例,有两个常用的数据集:

  • 皮特文集 :-参与者描述一幅图片,因此没有对话,这只是一段独白。也没有视频。
  • 卡罗莱纳对话集——该集合非常大,但在搜索痴呆症患者时却很有限(鲁兹等人报告 21)。对话是基于记忆的问题的采访,所以不完全是自然的对话。最后,音频质量不是很高,痴呆症的例子没有视频。

因此,我们希望捕捉一个参与者患有痴呆症的自然、无计划对话的高质量音频和视频记录。这些对话不是采访,也不会询问任何个人信息。只是一个有趣的聊天!

为了做到这一点,我们正在与一个任务的创建者一起工作。 Sofia de la Fuente Garcia 创造了一种地图任务的变体来引发与痴呆症患者的自发对话。

使用这项任务,一个健康的参与者将坐在一个痴呆症患者的对面进行随意的交谈。两个参与者都有一张位置相同的地图,但是只有患有痴呆症的人才能看到穿过虚拟土地的可能路线:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显示路线的地图- de la Fuente Garcia 等人,2019

健康的参与者是唯一知道两人需要去哪些地方的人。因此,他们需要通过对话合作,一起踏上旅程

这种对话是我们想要捕捉的,但是我们如何道德安全地做到这一点呢?

道德考量

现在我们进入了这篇文章的核心部分——如何从伦理的角度实际收集有认知障碍的人的这些有价值的数据。

在这一节中,我将介绍:同意、参与者舒适(确保参与者不会感到不安)、参与者招募和可选的认知评估。然后,我将在最后一节讨论数据安全性(包括新设备)。

同意

有认知障碍的人被视为弱势参与者,因此需要一名证人监督同意过程。见证人应该是家庭成员或看护人,并且必须在弱势参与者同意参与研究后签署“见证人同意书”

在数据收集前至少一周,每位参与者都会收到一份“参与者信息表(PIS)”,其中包含有关研究的所有信息(将涉及的内容、参与的益处、将存储的数据等)。提前提供 PIS 给每个参与者阅读、消化、提问、、和理解信息的机会。你应该强调欢迎所有问题,参与完全是自愿的。这里需要注意的是,除了研究团队成员之外,还可以向家庭成员、护理人员或全科医生提问。

在我看来,尽早提供 PIS 是这一过程中最关键的步骤之一。如果你不愿意提前提供 PIS,为什么?你的程序中有什么让你不舒服,为什么你不希望人们注意到它?这一步本质上是最后的检查,你会知道什么时候你乐意回答问题并认为你的研究是“道德的”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所需文件的分发

在收集当天,参与者和同意见证人都会收到各自的同意书(如上图所示)。参与者同意书总结了 PIS 的要点,并确认参与者已经阅读并理解。然后,证人签署他们的“同意书证人”,确认认知障碍参与者理解 PIS,回答了他们的所有问题,并自愿同意参加研究。

不道德的研究人员可能试图欺骗一个有认知障碍的人(例如,在他们“签署一份快速表格”后主动给他们一杯茶)或获取个人信息(例如,询问他们以前的病史)。为了确保这种情况不会发生,证人还签字确认研究人员没有试图获取个人信息、误导或欺骗参与者。

参与者舒适度

参与者将宝贵的时间花在帮助研究上,但可能会对参与感到压力,尤其是那些有认知障碍的人。因此,确保人们拥有舒适的体验至关重要。

甚至在参与之前,PIS 应该包含尽可能多的信息,以防止不必要的压力。例如,它可以突出显示任务的以下内容:

  • 它不需要准备。
  • 这不是医学检查。
  • 我们想录制一段自然的对话,所以它是为了好玩。
  • 可以随时停止(或暂停)录制,而无需给出原因。
  • 答案没有对错之分。
  • 没有时间限制。

有些人可能会对停止研究感到不舒服,即使他们感到苦恼。因此,家庭成员或护理人员应见证该任务(通常是见证同意阶段的同一名证人)。证人也可以在任何时候停止或暂停录音,而无需给出理由。作为一个研究者,理解这个证人的重要性是至关重要的。不同的认知障碍,甚至同一认知障碍的不同人,都有截然不同的信号来表示苦恼。家庭成员和护理人员在确定某个人是否不舒服方面比任何研究人员都更有经验,因为他们了解那个人。

在参与者舒适度方面,位置是另一个需要考虑的非常重要的因素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

资源中心的一家老年痴呆症苏格兰咖啡馆,旨在成为一个无障碍的社区中心。这是我住过的最迷人的房间之一。它看起来和感觉上都像一个时尚的现代咖啡馆,但是每一个单品都是经过深思熟虑的,并且被设计成容易接近的!包容性设计的完美范例。

一个合适的地点相对容易找到,因为自发的对话几乎可以在任何地方进行。然而,为了参与者的舒适和证人的可用性,最好与关注认知障碍的企业或慈善机构合作。为了参与他们的社区,这些组织通常都有活动中心,人们可以去那里参加社交活动、获得支持和上课(例如,上图)。

这些中心是运行任务的完美地点,因为人们在里面非常舒适。工作人员也认识潜在的参与者,因此可以成为证人并帮助招聘工作(下文讨论)。

大多数可到达的地点都是合适的,但如果可能的话,与慈善机构合作,在他们的中心之一进行研究,是参与者舒适的最佳选择。

参与者招募

在招募弱势参与者时,与相关组织合作至关重要,这是对参与者舒适度的补充。这些组织可以接触他们的社区,并以安全友好的方式协助招募合适的参与者。然而,协作耗费了组织宝贵的时间,因此解释数据收集背后的动机以及它如何使人们受益是很重要的。

健康的参与者也需要以正确的方式招募。向研究参与者提供小额奖励(如礼品卡)很常见,但在这种情况下不建议这样做。有认知障碍的人将利用他们的时间通过参与这项任务来为研究做出贡献。健康的参与者的理想动机是对社会的贡献,而不是某种最终的回报。

一些不关心研究背后动机的人可能会为了一张礼品卡而匆忙完成任务,使脆弱的参与者的时间贬值。如果没有金钱奖励,这个例子就不会发生。

可选认知评估

收集这些对话的多模态录音极其耗时。因此,分享这些数据是值得的(我们将在数据安全一节中详细介绍)。

对于某些领域的其他研究人员来说,如心理学,认知评估结果有巨大的好处。执行相同认知评估的另一个语料库(例如,基于空间导航或记忆的研究)可以被合并以揭示未知的联系。

然而,在包含这样的任务之前,也有一些担心需要考虑。例如,一个适合我们收集数据的任务是 Addenbrooke 的认知检查 (ACE-III),因为它是常用的、低技术含量的、快速执行的。下面是一个问题示例:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ACE-III 中的一个示例问题

在英国,需要通过 NHS 培训才能进行这项测试,与其他测试类似,所有培训必须在收集前完成。这一部分不能以视听方式记录,只应记录对话任务。

需要强调的一个缺点是,ACE-III 被全科医生用于在诊断痴呆症时筛查人群。因此,参与者可能会回忆起做过这项任务,并被提醒他们诊断时的紧张时期。这可能会让参与者感到不安,此外,重新进行测试可能会突显出他们自首次完成测试以来认知能力的下降。

每种认知障碍都有一系列的测试来检查,包括认知评估是非常有价值的。然而,一个人的健康应该是优先考虑的,所以只有在仔细考虑和相关培训后才进行测试。

数据安全

选择任务,招募参与者并了解研究,设置舒适的位置,准备好证人,完成同意程序,可选的认知评估结束,现在终于是按下记录的时候了。

安全地记录对话

一般来说,涉及弱势人群或医务人员的谈话充满了敏感数据。人们经常在交谈中透露个人身份信息(例如,提及他们孩子的名字或病史)。对于有认知障碍的人来说,这种担忧更加强烈,他们更不容易控制自己透露的信息。

标准记录系统(如录音机和摄像机)不是安全设备,它们不能用于捕捉敏感数据。此外,记录的数据可以在标准系统上轻松访问,因此它们不能用于存储敏感数据。如果标准设备丢失或被盗,必须考虑数据泄露的道德和法律后果,这凸显了对安全方法的需求。

Pierre Albert 开发了一个新系统——“CUSCO”,以满足有关敏感材料数据收集的道德评估要求。

该设备通过实时加密记录的数据流来确保记录数据的安全性,并允许收集一系列模态,包括音频和视频。数据使用 Veracrypt 加密,Veracrypt 是一种经过安全审计的专用开源软件,保证加密算法的正确实施。收集的数据只能使用为每个项目生成的密钥进行访问,确保语料库在其生命周期的所有阶段的安全性:收集、运输、交换和存储

CUSCO 设备的开发具有更广泛的用途,捕捉任何敏感的原位对话(例如全科医生会诊)。

因此,风险预防和缓解至关重要,因此,即使设备在记录过程中遭到破坏或被盗**,之前记录的对话和任何正在进行的记录的整个数据集也是安全的。**

设备本身的软件是围绕模块化设计组织的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

CUSCO 设备的主要组件。

对应于一种模态(视频、音频、3D)或一种功能(语音活动检测)的每个流都由一个专用模块控制,该模块负责设置配置、检查所需元素的状态(适当设备的存在)以及管理记录。

对于我们的用例,分析多模态对话,我们使用两个深度摄像头、一个高质量的桌面麦克风和一个麦克风阵列来促进后处理中的说话者日记化(音频分段和每个说话者的归属)。

这是我们设置的早期试运行:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我和 Arash Eshghi 用 CUSCO 设备测试这个任务(由 Pierre Albert 友好地强调)。

我们使用桌面麦克风,因为需要将翻领麦克风连接到参与者身上,这可能会造成伤害,并有可能导致痛苦。

该设备的硬件使用常见的现成元件,而软件是开源的(这里是设计方案和软件)。对这种设备的需求超出了我们在本文中详述的对话,延伸到了任何应该实时加密的敏感记录。这样的用例包括记录:全科医生咨询,与儿童的互动,以及与私营公司的讨论。在更严格的数据收集中,即使是研究人员也不允许访问原始数据,该设备提供了收集匿名音频和视觉特征的功能。因此,研究人员只能获得不能用于重建原始信号的交互作用的抽象间接描述。

安全处理和共享数据

一旦对话被安全地记录下来,它们在 CUSCO 上保持加密状态(如上所述),因此可以被传输。

然后,研究团队需要删除谈话过程中可能泄露的任何个人信息。为了做到这一点,每当说出敏感信息时,音频被静音,视频被模糊(嘴周围)。模糊视频降低了视觉行为注释的准确性,但是隐私优先以避免可能的参与者识别。因此,转录不能包含任何敏感信息(并且不应从原始记录转录以确保这一点)。不会共享个人信息,请务必在参与者信息表中强调这一点(PIS)。这些经过处理的记录现在被认为是匿名的,因为参与者只能通过个人联系来识别(因此,未知的研究人员无法识别参与者)。

研究团队成员的详细联系信息应包含在 PIS 中,以便请求删除和随后移除参与者的数据。匿名记录和相关转录可以通过集中的档案与其他相关研究人员共享,以控制其使用,如果在 PIS 中声明,结果将发表在研究论文中。

例如,我们已经决定将我们的语料库存储在痴呆症数据库中,因为它是一个多媒体交互的共享数据库,用于研究痴呆症中的交流。对 DementiaBank 中数据的访问受密码保护,仅限于 DementiaBank 财团成员。将从访问这些数据中受益的研究人员可以请求加入这个组(在审查过程之后),从而从语料库中受益。

结论

从有认知障碍的人那里收集这些对话是创造更易接近和自然的语音助手的重要一步。为了确保这是合乎伦理的,有许多因素需要考虑,我希望这份实用的伦理指南可以帮助那些想要应对许多伦理挑战的研究人员,以便收集和发布类似的数据集。CUSCO 还可用于在需要时安全地捕获、传输和交换这些数据。

我花了一年多的时间才到达收集点(然后被冠状病毒延迟),但我希望这个指南能帮助下一个研究人员更快地捕捉到类似的对话,而不会牺牲道德考虑或数据安全。对话式人工智能中的可访问性将有望流行起来,我真的希望这有所帮助!

承认

这项工作由 Wallscope数据实验室赞助。

感谢苏格兰阿尔茨海默氏症花时间陪我,支持这个项目,总的来说棒极了!尽管因 Covid 而延期,但我会在安全的时候来完成这项研究,不会浪费您的时间。

再次衷心感谢过去一年里我就这个项目与所有人交谈过的人。有无数(象征性的)你!我记下了你对本指南的每一条建议,我相信如果这能帮助到另外一个人,我们都会很高兴:)

点击查看安格斯·阿德勒斯的所有文章

道德和大数据

原文:https://towardsdatascience.com/ethics-and-big-data-8dd52fe6e9b2?source=collection_archive---------53-----------------------

确定大数据的使用是否符合道德

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

evUnsplash 上的照片

在结论“目的限制和大数据的原则”中,作者写道:

应该指出的是,包括目的限制原则在内的数据保护法规寻求实现的隐私可能不仅被视为经济和科学的阻碍因素……相关利益攸关方应共同努力应对挑战,并强调隐私是大数据的核心价值和必要性(Forgó 40)

换句话说,我们不应该将隐私问题视为阻碍我们如何使用数据的创新的东西,但隐私和人们对它的权利应该是我们如何使用大数据的核心问题。事实上,Paganoni 在《构建大数据》中写道:

企业责任应被指定为企业运营中的一种内在道德立场,例如,通过启用从一开始就保护隐私的技术(数据保护“设计”)来实施,而不是追溯性的(Paganoni 95)

这两句话传达的重要信息是,隐私不应该是事后才想到的,而是我们如何开发获取和使用数据的技术的核心价值。然而,如果你读了我最近的帖子关于我们对死亡的恐惧如何被操纵成让组织侵犯我们的隐私,或者观察了几年前发生的剑桥分析公司丑闻,你会看到这是一个如何有待完全实现的价值观。

构建大数据的最后一章是“大数据辩论中的道德问题和法律框架”,并讨论了欧盟通用数据保护法规(GDPR)中使用的语言。如果你看到任何关于个人数据在互联网上被使用的报道,你可能会看到这个首字母缩略词到处流传。Paganoni 用了整整一章来研究这组法律中的语言,而你几乎肯定会看到 GDPR 的某种提及的原因是因为它标志着解决大数据使用问题的新时代,并决定什么是大数据的道德使用,什么不是。

GDPR 是对 1995 年制定的数据保护指令的替代,当时互联网是一个非常不同的地方。正如 z solt zdi 所说,“大数据根本不是一个问题,或者至少在最近的叙述框架中不是”(第。76).相比之下,GDPR 非常重视大数据的收集和使用带来的问题,因为它“沉浸在大数据生态系统中”(Paganoni 84)。

围绕 GDPR 的一个主要担忧是,它正在导致互联网的“巴尔干化”。正如奥斯曼帝国分裂成许多不同的国家一样,人们担心互联网也会分裂成自己的国家。从本质上讲,一个人对互联网的体验会随着地理位置的不同而改变。这种变化,尤其是欧洲 GDPR 带来的变化,在诸如这种的文章中被框定为负面。然而,我相信这是一句相对能说明问题的话:

然而,欧洲正在建立自己的壁垒,新的数据保护和隐私规则可能会阻碍机器学习的应用。

在这篇文章的开始,我引用了两句关于隐私和大数据的话。这些引用的核心是,保护用户隐私不应该被视为一种障碍或事后想法,但它应该是任何类型的机器学习技术开发的核心。GDPR 是一套相对复杂的法规,但它们实际上可以归结为两个概念:隐私和透明。支持这两项权利的法规被视为进步的障碍,这一事实表明作者关心什么样的进步,不关心什么样的进步。

此外,许多将网络巴尔干化视为负面因素的人特别指出,人们对互联网的体验会因所处位置的不同而不同。他们担心这会导致一些国家变得像中国一样,很多网站都被屏蔽了。然而,这篇文章指出,那种情况已经发生了:

换句话说,网络的一点点割据可能是民主权力和多元化的健康行使。问题是决定在哪里停下来。在不久的将来,居住在蓝色州的美国人会有一个互联网,而居住在红色州的美国人会有另一个互联网吗?(唉,鉴于脸书和 Twitter 等网站如何创造所谓的“过滤泡沫”,提供我们已经同意的新闻和观点,这在许多方面已经是这样的情况了)。

你甚至可以在网飞看到这一点,不同的国家有不同的电影选择。事实上,你可以上这个网站看看哪些电影在哪些国家上映。因此,这种不同互联网体验的特殊问题是我们在其他地区已经经历过的,这些地区收到的投诉比 GDPR 少得多。

没有 GDPR 和类似的法规,真的没有什么可以阻止大公司不道德的数据使用。如前所述,隐私并没有被视为机器学习中数据收集和使用的核心支柱,公司关心的是底线,而不是道德。尽管 Paganoni 在她关于 GDPR 的那一章的结尾说它远非完美,但它无疑是向在一个相对新的、快速发展的领域引入具体的伦理规则迈出的一步。

[1]福尔戈、尼古拉、斯蒂芬妮·诺尔德和本杰明·舒茨。目的限制和大数据原则。”载于新技术、大数据与法律,第 17–42 页。2017 年,新加坡施普林格。

[2]玛丽亚·克里斯蒂娜·帕戈诺尼。构建大数据:语言和话语方法。斯普林格,2019。

[3]佐迪,佐尔特。“大数据时代的法律和法律科学。”路口。东欧社会与政治杂志 3,第 2 期(2017):69–87。

[4]斯宾塞,迈克尔。“防止互联网的巴尔干化。”外交关系委员会。外交关系委员会,2018 年 3 月 28 日。https://www.cfr.org/blog/preventing-balkanization-internet.

[5]罗伯特,杰夫·约翰。" GDPR 和我们分裂的互联网:我们失去了什么."财富。财富 2018 年 5 月 29 日。https://fortune.com/2018/05/26/gdpr-internet/.

伦理和(可解释的)人工智能

原文:https://towardsdatascience.com/ethics-and-explainable-ai-e13664d50b4e?source=collection_archive---------78-----------------------

基于 AI 的系统必须负责任。直到现在,它们中的许多都是黑匣子。道德和无偏见的训练数据比以往任何时候都更重要。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

马库斯·温克勒在 Unsplash 上的照片

大多数人更信任计算机算法,而不是其他人。不幸的是,与算法相比,当专家做出有充分根据的陈述时,情况也是如此。大多数人不知道计算机做出决定的依据是什么。许多人认为他们是无条件的。但这只是部分真实。算法是人类开发的。有些人可能会说,有了机器学习,人类开发人员的偏见被消除了。让我们简单看一下机器学习和深度神经网络。

好的机器学习模型需要好的数据。在监督学习中,你需要一组好的分类训练数据。如果你的训练集有偏差,模型也会有偏差。那是什么意思?让我们来看看一些有偏差的训练数据的案例以及使用它们的后果。

你会得到这份工作吗?

如果在招聘过程中消除人类的偏见,那不是很好吗?如果某人来自外国,种族背景和性别并不重要。只有技能很重要。算法的完美工作,不是吗?这是亚马逊在 2014 年的想法。使用了一种算法来预筛选空缺职位的候选人。2015 年,他们意识到他们的算法偏好男性。即使女性候选人有更好的资格,系统也不会推荐她们。原因:训练集有偏差!在一个男性主导的领域,该模型得出的结论是,女性相当不适合。2015 年,亚马逊停止使用其算法

我知道你会做什么,你会再做一次!

一个名为 COMPAS 的 AI 承诺预测犯罪的累犯率。美国的许多州都在使用 COMPAS。通过一组约 137 个问题,这些算法计算出某人是否会再次犯罪。基于此,人们将面临更高的刑期。后果是,法官不看犯罪记录。他们正在使用 COMPAS 返回的分数。这导致了一个危险的反馈循环,因为 COMPAS 没有得到关于错误指控的反馈。训练集可能会有偏差,因为它是基于过去的案例。准确性值得怀疑。你可以从 Pro Publica 获得更深刻的见解,包括一个 GitHub 知识库和一个漂亮的 Jupyter 笔记本。

拉屎进去,拉屎出来。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

由来源(WP:NFCC#4),合理使用,https://en.wikipedia.org/w/index.php?curid=49953711

这是泰。微软在 2016 年创建的聊天机器人。这个想法是创造一个机器人,从 Twitter 上与其他用户的互动中学习。Tay 学得很快。不到 24 小时(确切地说是 16 小时), Tay 变成了一个种族主义者、法西斯主义者和歧视者。微软试图修复他们的机器人,但没有成功:Tay 离线了。问题是:用户已经明确地将与 Tay 的对话引向这个方向。拉屎进去——拉屎出来。

上面的每个故事都有一个共同点:有偏见的数据被用来训练模型。在模型中,一个黑盒决定如何对一些输入做出反应。想想亚马逊的雇佣人工智能。没有一个申请者知道什么参数是重要的。我怀疑人力资源部的员工不知道他们是如何被评估的。这同样适用于 COMPAS 和 Tay。为了理解黑盒,我们对深度神经网络进行一点小小的探索。

简而言之,深度神经网络

免责声明:这是一个高层的解释。整个话题比较复杂,但是你会明白的。

让我们从一个简单的感知器开始:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

简单的感知器。(图片由卡斯滕·桑德特纳提供)

一些输入被加权,放入一个函数,一个激活函数决定感知器是否激活。你的任务是调整权重并定义一个偏差(当输入为 0 时会发生什么?)对训练集中的每个输入数据进行处理,直到它最适合为止。

机器学习的意思是:使用训练数据来确定最适合所有数据的权重。对于简单的感知器,它可以是一个如下的等式

y = mx + b

在大多数情况下,输入更复杂,我们得到某种线性回归。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个简单的神经元—(图片由卡斯滕·桑德纳提供)

同样,我们必须找出我们的线性回归最适合所有训练数据的最佳参数。

今天,我们已经有足够的计算能力来毫不费力地训练一个拥有数百万个数据点的模型。而且这么简单的模型,人类还是可以理解的。

现在让我们来看看一个神经网络。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个简单神经网络的结构(图片由 Carsten Sandtner 提供)

神经网络有一个输入层、几个隐藏层和一个输出层。如你所见,神经元的每一个输出都可以成为下一层中每一个神经元的输入。为每个神经元确定权重和偏差。它变得越来越复杂,人类将有更多的问题来解释这个网络中发生的事情。深度神经网络可以有两个以上的隐藏层。想象一个有 50-100 个输入和 5 个隐藏层的神经网络。经过训练的模型正在成为人类的黑匣子。

想想 COMPAS 案例:没有人知道使用了什么参数,模型是如何被训练的?训练集来自哪里?这同样适用于亚马逊案例。神经网络变得越来越复杂。

可解释的 AI 解决这些问题?

这就是为什么可解释 AI 被要求和鼓励的原因。想法:它描述了神经网络做什么,它如何被训练等。2017 年 DARPA 资助了几项可解释人工智能的努力。埃森哲正在宣传负责任的人工智能,可解释的人工智能是其中的一个主要部分。

但是这不仅仅是神经网络可以解释的。基于人工智能的系统不能产生负反馈循环。一个基于数据的算法需要更多的数据才能更好。如果像 COMPAS 这样的系统预测累犯率很高,有人因此被判处更长的刑期,重新融入社会就变得更加困难。这里开始了负反馈循环。找工作的机会更差,绝望并可能为了生存而再次犯罪。人工智能系统知道!还是体制造成的?很难回答。

即使不是罪犯,人工智能也能让你深陷困境。例如,斯蒂夫·泰利被错误地指控为罪犯,并被残酷逮捕。他的错?图像识别错误地将他与犯罪联系在一起。

使用的训练数据集必须对所有人开放。如果一个训练集有偏差,人们应该知道。大多数系统,无论是招聘人员还是维持治安,都是作为黑箱工作的。他们也没有一个好的反馈回路。人们仍然更相信计算机算法而不是专家。我们都必须对基于人工智能的系统负责。数据科学家负责负责。由于种族和性别偏见的批评,IBM 最近退出了面部识别业务。这是朝着负责任行动的正确方向迈出的一步。亚马逊微软也采取了类似的举措。

AI 很棒。我喜欢这项技术的可能性。有很多很好的例子。但是我们需要负责任地使用它。并不是每个问题都可以用人工智能来解决。我们需要时刻牢记这一点。

cs 和机器人专家的伦理

原文:https://towardsdatascience.com/ethics-for-computer-scientists-roboticists-e0f335d92739?source=collection_archive---------46-----------------------

抽象&尺度&伦理系统。

成为机器人专家意味着什么?这个标题有点老生常谈的性质,体现在许多初创公司高管的副标题为“机器人博士”的员工身上,这导致了一个更具挑战性的问题,即如何定义道德指南。我有责任为人们应该从广义上考虑的事情制定有序的指导方针,并在其中接受教育。应用这些原则的实际问题本质上是灵活的,因此这些原则应该重新排序。在这篇文章中,我希望定义一个向量,它可以成为未来发展的指导原则,随着时间的推移,随着问题空间的变得更加清晰,它将被修改。

最终,自主代理影响每个人的生活,并且在未来几十年中,这种影响的幅度将继续增加。我的主要目标是找出如何最好地设计系统,a)不伤害个人,b)不引起下游多系统相互作用的任何社会重组。

数据导致的个人错误

由人工智能系统造成的个人困难的想法主要属于“公平机器学习”的范畴,这个领域在新闻中获得了很多关注,如自动警察对人进行分析,搜索结果伤害少数群体,或雇佣算法出于不公平的原因过滤人们(这里是跟踪此类失败的流行列表,或参见 FAccT 会议并从那里开始)。构建自主系统将包括这种类型的风险,但它也将扩展得更广。就我个人而言,我希望在机器人真正完成每一项人际任务之前,这些问题将远离我们(如果 ML 在十年内不公平,我们有更大的鱼要炸)。

简而言之:机器人伦理需要利用人工智能伦理作为基础,并在其上建立更具体的东西。在完成了与人工智能伦理相关的不同研究领域的比较研究的初稿后,这里是我们提出的框架。最终,这三个子领域是试图触及社会技术系统(STS)主题的研究孤岛:

  1. AI 安全:值对齐和证明灭绝概率去 0。
  2. 公平 ML:最小化伤害个人用户或个人群体的决策算法的误用。
  3. 人在回路中的自主性(人-机器人交互 HRI /信息物理系统 CPS):避免事故,并找出如何在物理自主系统中最好地模拟人的意图(从这些领域可以得出一个有趣的论点,一个主要来自 CS 端— HRI,一个来自 EE 端— CPS,其中目标采取弹性的形式,如何在意外事件后恢复正常操作,以及鲁棒性,处理意外事件的能力)。

我们论文的关键是找出如何避免阻碍 CS 研究与 STS 主题有益结合的陷阱,以及研究生如何成为潜在的干预点。这个争论的其余部分留待以后,我可能会在以后的文章中包括人工智能伦理学这些子领域的历史片段,它们相当有启发性。我把我们写的关于人在回路中的自主性的几个段落包括进来,因为它在这里看起来非常相关,并且很好地过渡到下一节的思想:

由于许多最早的机器人系统是由技术人员远程操作的,机器人领域的核心一直是人机交互(HRI)问题。早期的工作与人的因素的研究密切相关,这是一种跨学科的努力,借鉴了工程心理学、人类工程学和事故分析。随着机器人能力的提高和自主性的增加,交互范例从仅仅远程操作发展到监督控制。随着 IEEE 机器人与人类互动交流国际研讨会的成立,HRI 在 20 世纪 90 年代成为一个独特的多学科领域。这一领域的现代工作包括从自主代理(即机器人)的角度建模交互,而不仅仅是人类监督者的角度。通过结合社会科学和认知心理学的原理,HRI 使用人类行为的预测和模型来优化和规划。这项工作通过使模型对其条件具有鲁棒性,减轻了事故的社会技术风险,事故具体定义为物理困难或灾难发生的状态。

数字技术已经发展到许多系统被赋予了超越机器人代理传统概念的自主性,包括电网的交通信号网络。因此,我们认为 HIL 自主的子领域是将人类行为纳入机器人和信息物理系统的前沿研究。这个子领域有两个方向:1)通过感知和行为预测的物理交互的创新;2)为复杂或不稳定环境中的系统弹性进行设计。面对越来越多的计算方法和新技术的潜在市场渗透,这些界限正在变得模糊。例如,自动车辆(AVs)的设计在许多方面都提出了挑战。对于更流畅和适应性更强的行为,如合并,算法 HRI 试图形式化一对一交互的模型。与此同时,反车辆地雷造成了身体伤害的风险,因此进一步的工作将整合这些人体模型,以确保安全,尽管可能会出现难以预测的行动。最后,人口层面的影响(如 AV 路由对交通吞吐量和诱导需求的影响)需要更深入地调查与社会层面的互动。

回到机器人。如果某个东西在物理上被搞乱了,它可能会更容易被注意到,但也可能会出现代理交互数量呈指数增长的现象(如果每个代理都与其他代理交互,5 个代理有 20 个成对的交互,100 个代理有近 10,000 个交互)。自治系统之间的这些交互可能会更难建模、预测和预防(就像我在谈论推荐系统时所得到的)。

社会重组

随着自主性的采用加速,机器人平台的影响从个人影响扩大到社会影响。例如,如今,对于大多数行人来说,一辆自动驾驶汽车代表着一件危险的现代艺术品,但当这一比例达到更可观的水平时,比如说 10%,自动驾驶汽车的车队及其相互作用可能会定义作为行人意味着什么——人类不再是什么时候穿过道路的驾驶座。我所遇到的最常见的车队互动模式是更有效的交通流量,但真的没有什么可以防止有害的突发现象。

自动驾驶汽车是的第一个孩子从现代自动驾驶的角度来看,它们是每个人都在关注的应用程序,并且有巨大的支持来实现它,但这并不意味着它会产生巨大的影响。

规模伦理

在现代数字(即将具体化)系统中,有许多伦理因素在起作用:有相互竞争的政治和经济利益,自动化取代工作的问题,人与人之间伦理的抽象效应,等等。我认为制定伦理指南的关键是关于尺度的推理。计算机科学家以他们在抽象中工作的能力而闻名,但我担心很多人抽象出道德决策——一旦它超出了你的边界框,那就是别人的问题了。老实说,道德应该从第一个用户开始就发挥作用,但大多数初创企业可能不会考虑它,直到他们需要这样做(谁能责怪他们)。

机器人的物理性质和自主性可能会引发对技术中不良道德判断的更直接、更进化的反应。我认为这是我的安慰,也是为什么它值得追求——总的来说,我对我的人类同胞更有信心,能很好地应对屏幕外的挑战事件。

工程涉及低层次的设计决策,机器学习也是如此:在不确定的假设下做出具体的决策。由于设计原则没有考虑复杂的系统交互,我不认为自治工程师应该遵循陈词滥调的管理原则。我认为这是关于在创造产品时,能够转换抽象框架,博览群书,并在植入堆栈中垂直地进行讨论。

特定的、建立的指导方针是自治伦理的实施方式。从业者有责任更早地做出更好的决定,这样他们就可以对系统如何运行有发言权,而不是全国范围内相对无知的决策者。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由塞尔吉奥索萨从 Pexels

特别指导方针制定

我被迫在我的博士项目之外辅修了一门课,在这个过程中,我学到了很多关于治疗学发展过程和 FDA 的知识(课程是这个的早期版本)。最终,美国食品药品监督管理局(FDA)的简史是:人们搞砸了,我们用创可贴来防止未来发生这种情况。为了避免深刻的经济和哲学争论,我认为这种方法是自由市场的先决条件——修补所有令人担忧的领域可能会扼杀创新。这就是技术政策是如何产生的,并且很可能会继续下去。

计算机科学正处于一个转折点,监管机构并不完全存在他们的问题空间,但人们开始提出问题。延迟的全面监管的替代方案:造就更好的演员。这就是我试图为自己和那些与我一起解决机器人问题的人所做的——让世界变得更好。我们将看到每个人的决定在 10 年或 20 年的时间滞后后会如何。

当前课程

为了比较起见,我想说明大多数专业领域是如何在培训和实践中包含一些道德成分的。

  1. 医学:医学院的课程中有伦理内容,资格考试中有问题,还有对每个医院的监督。
  2. 法律:律师通过了律师考试中粗略的道德部分。
  3. 金融:在众多内幕交易和其他避光法律中,约 10%的特许金融分析师课程是道德培训(金融管理机构非常常见的认证项目)。
  4. 心理学:他们有自己定义的道德准则基于四个原则:有益与无害、忠诚与责任、正直与公正。

显然,计算领域落后了。当你做研究时,每个其他领域都有道德准则,计算正在成为每个领域的幕后玩家(可悲的是,当你把你的才华带到不同的应用空间时,没有道德准则的继承)。加州大学伯克利分校的数据科学项目开设了首批必修的道德课程之一https://data.berkeley.edu/hce(加油熊)。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Pexels 的 Sebastian Voortman 拍摄

因此,通读这些,你可能会想“怎么能指望任何人跟上所有这些,并且仍然创造突破性的创新?”我同意,这是很多。我希望继续找出需要解决的核心挑战和问题。这是一个更大的项目的一部分,我想把这个草图设计成一个课程,继续关注这个方向的更多工作,如果你想参与进来,就联系我们。面对日益增多的计算方法和新技术的潜在市场渗透,这些界限正在变得模糊

你认为从事自动化工作的人的道德指南应该增加哪些内容?

这是我一期关于机器人学的免费时事通讯的巅峰之作&自动化, 民主化自动化。

[## 自动化大众化

一个关于机器人和人工智能的博客,让它们对每个人都有益,以及即将到来的自动化浪潮…

robotic.substack.com](https://robotic.substack.com/)

欧洲金融监管数据

原文:https://towardsdatascience.com/european-financial-regulatory-data-7b85144f5191?source=collection_archive---------35-----------------------

关于如何访问与欧盟金融市场相关的公共数据源的指南

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

芬恩·普罗茨曼在 Unsplash 上的照片

来自《走向数据科学》编辑的提示: 虽然我们允许独立作者根据我们的 规则和指导方针 发表文章,但我们并不认可每个作者的贡献。你不应该在没有寻求专业建议的情况下依赖一个作者的作品。详见我们的 读者术语

简介

在欧盟,金融市场的参与者——包括银行、保险公司、投资基金、贸易公司和证券化特殊目的载体(SPV)——都受到广泛的规则和监管。许多法规要求市场参与者向监管者提供关于他们自己及其活动的数据,如欧洲中央银行或欧洲证券和市场管理局(ESMA)。监管机构主要使用这些数据来监控金融系统,并(有希望)检测和应对可能导致问题的事态发展。然而,这些数据的一个子集也向公众开放,可能会引起希望更清晰地描绘欧洲金融市场图景的数据侦探的兴趣。

在本文中,我将概述一些公共数据源,解释它们是什么以及如何访问和使用它们。我将使用 Python 编程语言提供几个说明性的代码示例来获取和解析数据,但除此之外,不需要了解任何编程语言。对 API 和 XML,当然还有金融市场本身有一个基本的了解会很有帮助。所有示例代码都可以在下面的 GitHub 资源库中找到:

[## bunburya/eu_finreg_data

此时您不能执行该操作。您已使用另一个标签页或窗口登录。您已在另一个选项卡中注销,或者…

github.com](https://github.com/bunburya/eu_finreg_data)

我将在本文中引用(并链接)各种法规,但值得注意的是,这些法规中的许多(如果不是全部的话)自最初发布以来已经过修改。我在这里提到的大多数法规都由欧盟和国家监管机构的各种监管技术标准、实施标准和指南进行补充,在许多情况下,这些标准和指南将规定主要法规所规定义务的实施细节。最后,当然,你在这里读到的任何东西都不应该被认为是法律建议!

金融工具参考数据

根据金融工具市场条例 (MiFIR)和市场滥用条例 (MAR),交易场所(如证券交易所)和系统内部机构(如在内部结算客户提交的交易,而不是在交易所结算这些交易的投资公司)必须向 ESMA 提交有关相关金融工具(股票、债券等)的参考数据。然后,ESMA 在其网站上公布这些数据。该数据库被称为金融工具参考数据系统(FIRDS),可通过 ESMA 注册网站访问。

FIRDS 数据集的大小和它包含的信息使它可能非常有趣,因此值得花一些时间讨论如何使用它。数据可以通过用户界面访问,但对我们的目的来说更重要的是,它也可以通过 API 批量下载。

ESMA 发布的下载说明中规定了下载 FIRDS 文件的流程。首先,您需要查询给定的 URL,指定您想要的数据的日期(以 ISO 8601 格式)。然后,您将获得一个 XML 对象(或者一个 JSON 对象,如果您在请求中指定了该格式的话),其中包含相关文件的下载链接。例如,以下 URL 查询将返回一个 XML 对象,其中包含 2020 年 9 月 11 日到 2020 年 9 月 18 日之间发布的所有文件的链接:

[https://registers.esma.europa.eu/solr/esma_registers_firds_files/select?q=*&fq=publication_date:%5B2020-09-11T00:00:00Z+TO+2020-09-18T23:59:59Z%5D&wt=xml&indent=true&start=0&rows=100](https://registers.esma.europa.eu/solr/esma_registers_firds_files/select?q=*&fq=publication_date:%5B2017-08-25T00:00:00Z+TO+2017-08-25T23:59:59Z%5D&wt=xml&indent=true&start=0&rows=100)

上面链接的下载说明告诉你如何根据日期和数据类型找出你要找的文件的名称。例如,文件FULINS_D_20200912_02of03.zip包含与 2020 年 9 月 12 日发布的债务证券相关的数据(并且是三个此类文件中的第二个)。每个download_link元素指定了下载相关文件(作为 zip 存档文件)所需查询的 URL。

zip 存档应包含一个 XML 文件,其内容在 ESMA 出版的报告说明中有描述。简而言之,XML 树的根元素是一个BizData元素,它应该有两个直接子元素;报头(Hdr)元素和有效载荷(Pyld)元素。Pyld元素有一个名为Document的子元素,它又有一个名为FinInstrmRptgRefDataRpt的子元素。FinInstrmRptgRefDataRpt的第一个子节点是表头RptHdr;其余的子元素是RefData元素,每个描述一种安全。RefData元素的各个子元素包含您正在寻找的信息。

到底存在什么样的子元素将取决于您正在查看的安全性类型,为了完全理解您正在查看的内容,您应该结合上面链接的报告说明自己探索 XML。举例来说,下面是 RefData 元素的一些子元素,它们包含一些关于债务证券的有用信息:

  • Issr :债务证券发行人的 LEI 代码(见下文“法人实体标识符”一节)。
  • DebtInstrmAttrbts->TtlIssdNmnlAmt:债务证券的总发行票面金额。
  • DebtInstrmAttrbts->MtrtyDt:债务证券的到期日(格式为 YYYYMMDD)。
  • DebtInstrmAttrbts->-intrstrade:适用于债务证券的利率(如果证券支付浮动利率,此元素将有描述相关基准利率和利差的子元素)。
  • FinInstrmGnlAttrbts->-Id:债务证券的 ISIN。
  • FinInstrmGnlAttrbts->NtnlCcy:证券名义金额所用的货币。
  • TradgVnRltdAttrbts->Id:该证券上市或交易的交易场所的市场识别码

这只是一个小例子;FIRDS 的数据包含了更多关于债务证券的信息。当然,关于其他类型证券(股票、衍生品等)的第一批数据将包含与这些类型证券相关的不同数据。

使用 FIRDS 数据时,有几件事需要记住:

  • 它相当大——例如,FULINS_D_20200912_02of03.xml未经压缩大约有 417MB,只是那天发布的许多 FIRDS 文件中的一个。根据您的系统,一次将多个这样的文件加载到内存中会很快耗尽您所有的 RAM。如果您使用 Python 来解析 XML,那么您可以考虑使用 iterparse 函数,该函数允许您在遇到元素时进行处理,而不是等待整个树被读入内存。
  • FIRDS 数据似乎包含每个报告交易场所的每个证券的一个RefData元素。也就是说,如果同一种证券在三个不同的场所交易(例如),它将在数据中出现三次。如果想避免重复数据,应该跟踪已经处理过的 isin,并跳过引用相同 isin 的RefData元素。
  • 数据并不总是以完全一致的方式记录。例如,如果您试图寻找基于 EURIBOR 支付浮动利率的证券,您会发现基准利率可能被描述为“EURIBOR”、“EURI”、“欧元银行同业拆放利率”或许多其他变体之一。其中一些变体可能是拼写错误——例如,我在数据中看到过“EUROBOR”和“EURIOBOR”。或者,基准利率可以用 ISIN 来描述,而不是用名称来描述。

在这里您将看到一个脚本,其中包含许多函数,用于下载特定日期和证券类型的 FIRDS 数据,并使用该数据创建一个基本的 SQLite 表,将证券 ISINs 映射到发行人 lei。

法人主体标识符

受欧盟(和其他地方)监管的公司和其他法律实体通常需要获得唯一的法律实体标识符 (LEI)并将其提供给相关监管机构。LEI 的授予和管理由全球法律实体标识符基金会 (GLEIF)监督,该基金会还维护着全球 LEI 指数,这是一个关于 LEI 及其持有者的综合数据来源。除了在 GLEIF 网站上手动搜索,还有两种方法可以访问关于 lei 的数据:

  • 下载串接文件。GLEIF 每天发布一个包含所有 lei 数据的链接文件。截至 2020 年 10 月 26 日,连接的 LEI 文件中有 170 多万个条目,解压缩后的大小约为 3.6GB(压缩后约为 224MB)。数据是 XML(具体来说, LEI-Common Data File )格式。GLEIF 还发布带有其他辅助信息的连接文件,如“关系记录”,描述了实体与 LEI 的直接和间接所有权,以及关于 ISIN 与 LEI 关系的信息
  • 访问 API,此处记录了该 API。这里还有一个演示应用程序可以让你探索 API。该 API 允许您通过实体名称或 LEI 进行搜索,并以 JSON 对象的形式提供结果。举例来说,这个就是你搜索 LEI 7 zw8 qjwvpr 4 P1 j 1k QY 45(Google LLC)会找到的。

您可以从全球 LEI 索引中获得的信息包括相关法律实体的名称、地址、国家和(在某些情况下)所有者。这非常有帮助,因为您从其他来源获得的数据(例如,FIRDS 或 STS 数据)通常是指公司的 lei,而不是全称。请注意,虽然您可以使用 GLEIF 数据找到证券发行人的详细信息,但根据我的经验,并不是所有的 using 雷关系都出现在 GLEIF 数据中,我在使用上述 FIRDS 数据时运气更好。

举例来说,这里的是一个基本函数,用于查询 API 并返回每个提供的 LEI 的发行者名称和权限。

总交易量和成交笔数

根据 MiFID II,当投资公司在“有组织的、频繁的、系统的和实质性的基础上”通过柜台执行客户指令时,自营交易受某些附加规则的约束。每个投资公司,为了确定其是否满足特定证券的测试,需要将其执行的交易数量和交易量与市场上该证券的交易总数和交易量进行比较。为了帮助企业进行比较,ESMA 每季度计算并公布在欧盟执行的交易总量和数量,并按证券进行细分。当前和历史数据可以在 ESMA 的网站上找到。

当前和历史数据都可用。数据可以 Excel 格式下载。xlsx)文件,股票、债券和其他非股票证券(主要是衍生品)有单独的文件。股票和债券档案是指证券的 ISIN,而非股票档案是由“子类识别”来细分的。每个 Excel 文件都有一个“解释性说明”作为单独的工作表,非股票文件的解释性说明解释了如何解释衍生产品的“子类识别”。

例如,这里的是一些代码,用于解析一个 Excel 文件并生成一个描述欧盟中交易最多的股票的条形图,以便调用具有以下参数的脚本(来自与股票 Excel 文件相同的目录):

$ python si_calcs.py equity_si_calculations_-_publication_file_august_2020.xlsx most_traded_stocks.png

…将生成下图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文件是使用从 ESMA 网站下载的材料起草的。ESMA 不认可本出版物,也不对本出版物侵犯版权或其他知识产权或对第三方造成的任何损害承担任何责任。

简单、透明和标准化的证券化

欧洲的证券化受证券化法规监管。《证券化条例》规定,如果某些证券化符合该条例规定的要求和标准,则这些证券化可以被指定为“简单、透明和标准化”(STS)证券化。这一想法是确定和促进(通过优惠监管资本待遇)被认为对投资者风险特别低的证券化。

希望获得 STS 称号的证券的详细信息必须通知 ESMA,ESMA 在其网站上公布了某些详细信息。目前,它们以定期更新的电子表格的形式发布,尽管计划是它们最终将作为一个单独的登记册发布在 ESMA 注册局的网站上。

STS 证券化分为公共证券化(根据招股说明书条例就其起草招股说明书)和私人证券化。只有非常有限的私人证券化细节是公开的,例如被证券化的基础资产的资产类别,以及证券化是否是资产支持商业票据(ABCP)交易。对于公开证券化,可以获得更多详细信息,例如基础资产的发起人和票据的 ISINs 的详细信息(可以对照 FIRDS 数据进行交叉引用,以找到有关票据和发行 SPV 的更多信息)。

关于可以用这些数据做什么的基本示例,请参见本网页,该网页也利用了上面讨论的 FIRDS 和 LEI 数据。

欧元区金融机构

欧洲中央银行(ECB)保存着欧元区各类金融机构的名单。金融机构的类型如下:

  • 货币金融机构(MFI),包括中央银行、信贷机构、其他存款公司和货币市场基金(MMF)。
  • 投资基金 (IF),不包括养老基金和 MMF。
  • 金融工具公司(FVC),广义而言,是参与证券化的特殊目的公司。
  • 支付统计相关机构 (PSRIs),即支付服务提供商和支付系统运营商。
  • 保险公司。

您可以按如下方式下载列表:

  • psri 和 ICs : 点击上面的链接,点击相关类型的金融机构,将出现附加文本(包括多个链接)。下载金融机构名单的链接将采用“关于[psri/ICs]名单的已公布详细信息,包括历史数据”的形式。该链接指向一个 zip 文件,其中包含一个 Excel(.xlsx)表示有数据的每一年。
  • IFs 和 FVC:点击上面的链接,点击相关类型的金融机构。下载金融机构列表的链接将采用“[IFs/FVCs]概述[时间段]”的形式(例如,“FVCs 概述 2019–2020”)。该链接指向一个 zip 文件,其中包含相关时间段内每个季度的可用数据的 Excel 文件。
  • MFIs :转到该页面将允许您搜索或下载数据集。数据集是 CSV 格式的(注意,值由制表符而不是逗号分隔)。

当您下载某个季度或某年的列表时,请注意该列表将包含该季度末相关类型的所有注册机构,而不仅仅是该季度注册的机构。例如,文件 FVC_2020_Q1.xlsx 是 Q1 2020 年的 FVC 列表,将包含 Q1 2020 年底仍注册为 FVC 的所有实体的完整列表。

一般来说,金融机构的名单将包括(除其他外)每个机构的列伊、法定名称和地址以及注册国。每类金融机构的列表还将包括与该类金融机构相关的一些附加数据。例如,FVC 数据将包括负责每个的管理公司的详细信息(包括 LEI、名称和国家),以及每个发行的债务证券的 ISINs。

与金融机构相关的其他数据,如资产负债表总额,可以在欧洲央行的统计数据仓库网站上找到(以及许多其他有趣的统计数据和数据集)。

应该注意的是,尽管欧洲央行收集的数据主要与 T2 欧元区国家相关,但一些非欧元区国家的中央银行也选择收集数据并发送给欧洲央行。例如,Q2 2020 年的 FVC 数据包括了来自保加利亚、瑞典和丹麦的数据。

这段代码使用 FVC 的数据生成一个“choropleth”地图,向您展示欧元区哪些国家拥有最多的金融工具公司。如下调用脚本(假设所有数据文件都在同一个目录中):

$ python fvc.py CNTR_RG_20M_2020_3857.shp FVC_2020_Q2.xlsx fvcs_in_euro_area.png

…将生成这样的图像:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

行政边界的欧洲地理

衍生品—埃米尔报告

欧盟的衍生产品受欧洲市场基础设施法规 (EMIR)监管,该法规要求欧盟交易对手签订的所有衍生产品的详细信息必须报告给交易库。贸易报告本身并不公开。然而,交易存储库有义务向公众提供按衍生产品类别细分的某些汇总衍生产品数据,具体来说,就是汇总未平仓头寸、汇总交易量和汇总价值。汇总的数据必须公布在公众易于访问的网站或在线门户上,并且必须至少每周更新一次。

不幸的是,据我所知,没有一个中央来源(如 ESMA 网站)可以访问这些数据;每个交易库都在其网站上发布自己的数据。因此,似乎获得完整集合数据的唯一方法是检查 ESMA 的贸易库列表,进入每个注册贸易库的网站,导航到适当的部分(它可能被称为类似“埃米尔公共数据”)并访问和下载相关日期的数据。例如,这里的是 DTCC 访问数据的页面。

更重要的是,尽管大多数交易存储库似乎允许你以文件的形式下载数据,但是格式之间并不一致;有些以逗号分隔值的形式提供数据,有些以 Excel 电子表格的形式提供数据,有些以 XML 的形式提供数据。因此,不仅需要一些手动工作来访问所有数据,还需要根据需要整合数据。

证券融资交易— SFTR 报告

证券融资交易法规 (SFTR)要求将“证券融资交易”(sft)的详细信息报告给交易存储库。sft 包括回购交易证券借贷交易和融资融券交易等。

SFTR 报告义务与埃米尔报告义务非常相似,公开数据(以及获取数据的方式)也很相似。这里的是 DTCC 的 SFTR 数据页面。SFTR 报告义务相当新,仍在逐步实施中,因此并非所有市场参与者都需要报告。

简介

根据招股说明书条例,向公众发行证券(如债券或股票)的公司,或者将被允许在受监管市场交易的公司,必须为这些证券起草招股说明书,招股说明书必须符合招股说明书条例的要求,并且必须得到有关主管当局的批准。ESMA 在其网站上维护着一份当前已获批准的招股说明书的注册记录,并通过 API 提供机器对机器的访问。关于如何使用 API 的详细说明可以在这里找到(特别参见第 1、2 和 5 节)。

处理数据

在使用我上面讨论的任何数据集时,下面是一些你应该记住的事情。

了解数据的范围

在处理任何这些数据集之前,准确了解谁需要提供相关数据、他们需要提供什么以及何时需要提供这些数据非常重要。否则,你可能会发现你的数据并不像你想象的那样准确或全面。上面讨论的 SFTR 数据就是一个例子,它现在还不能给出欧盟 SFT 市场的全貌,因为并非所有的市场参与者都需要报告他们的 sft。

理解这些数据集的精确范围不可避免地涉及到对基本规则及其应用的一些理解。这并不容易,而且(远远)超出了本文的范围。ESMA 和其他监管机构发布了各种问答和其他形式的指导,旨在帮助市场参与者了解适用于他们的报告要求的范围,这可能有助于您了解您可以获得的数据中包含和不包含的内容。

了解英国退出欧盟将如何影响这些数据集也很重要。英国的大多数市场参与者将继续遵守金融行为监管局(FCA)制定的同等或类似的报告要求。然而,在后英国退出欧盟时代,大多数情况下,英国实体报告的数据将与 EU-实体提供的数据分开发布。英国的新规定在某些方面也可能不同于欧盟的规定。FCA 的网站有更多关于英国退出欧盟过渡的信息——特别参见“市场”标签下的“市场政策”标题。

了解数据的局限性

所有数据集都容易出现错误、漏洞和不一致,我们在这里讨论的数据集也不例外。您可能会在需要清理的数据中遇到错误。

除了错误导致数据不正确的可能性之外,您还应该意识到数据报告方式不一致的可能性。例如,正如我们在上面看到的,有许多不同的方法来描述基准利率,如 EURIBOR。还有许多不同的方式来书写公司的名称,例如,取决于什么是资本以及公司的法律形式(如“公共有限公司”)是如何显示或缩写的。这就是为什么,如果可能的话,最好用雷或而不是公司名称来搜索和排序数据。

遵守我们讨论的法规并不总是完美的,这可能会影响数据的质量。一个例子是 2012 年首次引入的埃米尔报告义务。在引入该义务后的最初几年,行业遵守该义务的水平相当低,结果是当时的数据并没有描绘出欧盟衍生品市场的一幅非常全面的画面。随着时间的推移,合规性有所改善,但仍远非完美。

您还应该知道使用我所讨论的各种数据集所附带的法律限制和条件。对于欧盟监管机构直接发布的数据,通常允许免费使用。然而,通常需要包括某种形式的归属或通知。各种数据发布实体(ESMA、欧洲央行、GLEIF、贸易资料库等)的网站将规定具体的限制和条件。

补充数据来源

下面是一些其他的数据来源,当你试图分析或可视化我在这篇文章中讨论的数据集时,你可能会觉得有帮助。例如,在下面的链接中,你可以找到每个欧盟成员国的人口规模、经济规模和债务水平的数据。

  • 世界银行数据:世界银行的数据库包含了世界上大多数国家的广泛数据,包括人口、GDP、债务等等。
  • 欧盟统计局数据:欧盟统计局是欧盟的统计机构,其数据库包含了许多与欧盟及其成员国相关的有趣数据集。您还可以找到描述国家和其他行政区域的位置和边界的地理数据。这有助于创建基于地图的可视化。
  • 欧洲晴雨表数据:欧洲晴雨表是代表欧盟定期进行的一系列调查,旨在评估欧洲人对广泛话题的看法。“标准欧洲晴雨表”调查是定期进行的,每次都倾向于问大致相似的问题,而“特别欧洲晴雨表”和“快速欧洲晴雨表”调查的频率较低(有时是一次性的),侧重于特定的主题。欧盟根据欧洲晴雨表调查的回复发布报告,但也可以下载原始数据(SPSS 或 STATA 格式)进行分析。

结论

这是对一小部分公开的监管数据的简要概述。还有很多其他的数据来源,我们没有时间去研究——例如,可以在 ESMA 注册网站上找到的其他注册。然而,希望这篇文章为您指明了正确的方向,您会发现一些解释和示例对您自己的项目有所帮助。如果你用我们在这里讨论的数据创造了什么,请在评论中分享!

使用 Python 中的统计假设检验评估 ML 分类器性能

原文:https://towardsdatascience.com/evaluate-ml-classifier-performance-using-statistical-hypothesis-testing-in-python-e4b90eb27dce?source=collection_archive---------12-----------------------

有一个强有力的论据,为什么选择一个分类算法,而不是基于性能的重要性水平

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Alexis Fauvet 在 Unsplash 上拍摄的照片

介绍

选择正确的机器学习算法是决定性的,它决定了模型的性能。选择模型时最主要的因素是性能,它采用 KFold-cross-validation 技术来实现独立性。

所选择的模型通常具有较高的平均性能。然而,有时它起源于统计上的侥幸。有许多统计假设检验方法来评估交叉验证产生的平均性能差异,以解决这一问题。如果差异高于显著性水平“ p 值”,我们可以拒绝两个算法相同且差异不显著的零假设。

在开发新的分类模型或参加 Kaggle 的比赛时,我通常会在我的管道中包含这样一个步骤。

教程目标

  1. 理解统计假设检验之间的区别。
  2. 基于平均性能分数的模型选择可能会产生误导。
  3. 为什么使用配对学生的 t 检验而不是原始学生的 t 检验。
  4. 利用 MLxtend 库应用 5X2 折叠的高级技术来比较基于 p 值的算法

目录

  1. 统计显著性检验是什么意思?
  2. 常用统计假设检验的类型
  3. 根据性能提取最佳的两个模型。
  4. 对最好的两个进行假设检验的步骤
  5. 应用 5X2 折叠的步骤
  6. 比较分类器算法
  7. 摘要
  8. 参考

统计假设检验是什么意思?

考虑到两个数据样本具有相同的分布,统计假设检验量化了它们的似是而非程度。描述了无效假设。我们可以通过应用一些统计计算来检验这个无效假设。

  • 如果测试结果推断没有足够的证据来拒绝零假设,那么任何观察到的模型分数差异都是偶然发生的。
  • 如果测试结果推断有足够的证据拒绝零假设,那么任何观察到的模型分数差异都是真实的。

统计假设检验的类型

通过统计显著性测试检查机器学习模型需要一些预期,这些预期将影响所使用的统计测试。这种比较最稳健的方式被称为 [成对设计](http://paired design of experiments) ,它在相同的数据上比较两种模型(或算法)的性能。这样,两种模型(或算法)都必须处理相同的困难。

在下文中,每个测试都有一些优点和缺点,您应该在选择时加以考虑。

还有其他用于比较分类器的统计测试,但这是最值得推荐的一种。

  1. 独立数据样本:有无限数据集时使用。您为训练收集 n 个 样本,并测试数据集。然后为每种方法计算十个独立的模型分数。最后,应用 t 检验来比较模型。然而,这种方法并不实际,因为现实中没有无限的数据。

2。十重交叉验证:使用普通配对 t 检验。相对于其他方法,该方法具有良好的可重复性,以及体面的类型 II 误差。但是,它有很高的I 型误差;这就是不推荐的原因。

通过交叉验证比较训练算法比比较特定(完全训练)模型的预测性能做出更强的假设。其中重采样验证(交叉验证属于)不能完全估计算法比较的方差不确定性。

3。麦克内马测试:

在统计学中,麦克内马检验是一种用于成对名义数据的统计检验。它应用于具有二分特征的 2 × 2 列联表,具有匹配的受试者对,以确定行和列的边际频率是否相等(即是否存在“边际同质性”)。— 维基百科

这是最近二十年推荐的。然而,这种方法的挑战在于,您要么需要构建自己的函数来实现它,要么使用第三方库,在您使用的工具中通常不会为您打包它。

4。非参数配对检验:这种方法包括做一些假设。例如,假设模型精度的分布具有正态分布(高斯)。

Wilcoxon 符号秩检验是配对学生 t 检验的非参数版本。尽管检验是非参数的,但它仍然假设每个样本内部的观察值是独立的。尽管使用 k 倍交叉验证会打破这个假设。

5。估计统计:一种数据分析框架,使用效应大小、置信区间、精度规划和元分析的组合来规划实验、分析数据和解释结果— 维基百科。然而,当使用重采样方法评估模型时,独立性假设被打破。作为替代,其他统计重采样方法,如自举。Bootstrapping 可以估计稳健的非参数置信区间。因此,我们可以解释结果并比较分类器。

5X2 折叠方法背后的直觉

一种在数据的相同 k 倍交叉验证分割上评估每个模型并计算每个分割分数的方法。这将为十倍交叉验证提供十个分数的样本。然后,我们可以使用配对统计检验来比较这些分数。

由于多次使用相同的数据行来训练模型,因此违反了独立性假设;因此,测试会有偏差。

这种统计测试可以调整,以克服缺乏独立性。此外,可以配置该方法的折叠和重复次数,以实现模型性能的更好采样。

Thomas Dietterich 在“用于比较监督分类学习算法的近似统计测试”中提出了这种方法 — 1998 年

正在加载数据集

对于本教程,我将使用sklearn库中的load_iris数据集。然而,对于任何 ML 问题,步骤都是相同的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

窥视虹膜数据集

提取最佳两个模型的步骤

在这一步中,我将根据性能准确度分数对四种不同的算法进行比较。然后将选择得分最高的两个模型在它们之间进行假设检验。

# Spot-Check Algorithms
models = []
models.append(('LR', LogisticRegression(max_iter=1000))) 
models.append(('LDA', LinearDiscriminantAnalysis())) 
models.append(('KNN', KNeighborsClassifier()))
models.append(('DSC', DecisionTreeClassifier(random_state = 1, max_depth=2)))
models.append(('SVM', SVC()))
# evaluate each model in turn
results = []
names = []
for name, model in models:
    kfold = RepeatedStratifiedKFold(n_splits=10, n_repeats = 3, random_state=1)
    cv_results = cross_val_score(model, X, y, cv=kfold, scoring='accuracy') 
    results.append(cv_results)
    names.append(name)
    msg = "%s: %.2f (%.3f)" % (name, cv_results.mean(), cv_results.std())
    print(msg)

结果:

LR: 0.96 (0.041)
LDA: 0.98 (0.031)
KNN: 0.96 (0.037)
DSC: 0.94 (0.051)
SVM: 0.96 (0.045)

看来LR, KNNSVM的均值相同,标准差略有不同。然而,LDA表现出较高的性能,而DTC表现出最低的性能。让我们在KNNDTC,LDA之间建立一个箱线图,作为更多解释的可视化。

import matplotlib.pyplot as pltplt.figure(figsize = (15, 10))
plt.grid(False)
plt.title("Mean accuracies between the best two selected algorithms", fontsize = 25, fontweight = 'bold')

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

算法间的平均精确度

好像 LDA 和 DTC 表现差不多,就挑那两个吧。

对于这个分类问题,您可以实现逻辑回归。然而,我选择了更复杂的分类算法来展示假设检验的思想。

假设检验的步骤

第一步是陈述零假设。

H0:两个模型在数据集上都有相同的表现。

H1:两个模型在数据集上的表现不尽相同。

显著性水平为 0.05

假设显著性阈值为 α=0.05 ,用于拒绝两种算法在数据集上表现相同的零假设,并进行 5x2_cv _t_test。

# evaluate model 1
model1 = LinearDiscriminantAnalysis()
cv1 = RepeatedStratifiedKFold(n_splits = 10, n_repeats = 3, random_state = 1)
scores1 = cross_val_score(model1, X, y, scoring = 'accuracy', cv = cv1, n_jobs = -1)
print('LDA Mean Accuracy: %.1f%% +/-(%.3f)' % (mean(scores1*100), std(scores1)))# evaluate model 2
model3 = DecisionTreeClassifier(random_state = 1, max_depth=2)
cv2 = RepeatedStratifiedKFold(n_splits = 10, n_repeats = 3, random_state = 1)
scores3 = cross_val_score(model2, X, y, scoring = 'accuracy', cv = cv2, n_jobs = -1)
print('DecisionTreeClassifier Mean Accuracy: %.1f%% +/-(%.3f)' % (mean(scores3*100), std(scores3)))# plot the results
plt.boxplot([scores1, scores2], labels=['LDA', 'DTC'], showmeans=True)
plt.show()

结果

LDA Mean Accuracy: 98.0% +/-(0.031)
DecisionTreeClassifier Mean Accuracy: 96.4% +/-(0.037)

看来LDADTC有更好的性能,而LDA的精度更高。

使用 MLxtend 封装的 5 乘 2 CV

您可以从头开始实现 5X2 CV 折叠;但是,有一个很好的软件包可以节省您很多时间,它叫做 MLxtend。我将使用评估模块中的 paired_ttest_5x2cv 函数来计算两个模型的 t 和 p 值。

from mlxtend.evaluate import paired_ttest_5x2cv
# check if difference between algorithms is real
t, p = paired_ttest_5x2cv(estimator1=model1, 
                          estimator2=model2, 
                          X=X, 
                          y=y, 
                          scoring='accuracy', 
                          random_seed=1)
# summarize
print(f'The P-value is = {p:.3f}')
print(f'The t-statistics is = {t:.3f}')
# interpret the result
if p <= 0.05:
    print('Since p<0.05, We can reject the null-hypothesis that both models perform equally well on this dataset. We may conclude that the two algorithms are significantly different.')
else:
    print('Since p>0.05, we cannot reject the null hypothesis and may conclude that the performance of the two algorithms is not significantly different.')

结果:

The P-value is = 0.027
The t-statistics is = 3.101
Since p<0.05, We can reject the null-hypothesis that both models perform equally well on this dataset. We may conclude that the two algorithms are significantly different

现在你有一个强有力的理由来解释为什么选择 LDA 而不是 DTC。

摘要

最后,我希望这篇教程很好地说明了如何使用假设检验来开发一个更有意义的模型。我的建议是在你的分类管道中加入算法比较。尝试迭代以及尝试不同的算法性能比较。

感谢阅读!

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值