在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本节书摘来自华章计算机《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一书中的第2章,第2.6节,作者:[美] 德博拉·诺兰(Deborah Nolan) 邓肯·坦普·朗(Duncan Temple Lang) 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.6 对个人跑步时间的变化进行建模樱花公路赛的结果包含20~80岁的运动员的比赛记录。然而,不会有任何一个运动员的记录满足60年的跨度。由于我们只有14年的比赛记录,所以最多只能观察到一个运动员20~33岁的记录,或者一个80岁的运动员从他67岁之后的记录。因此,满足60年的跨度是不可能的。这意味着,当研究随时间推移的个人成绩时,我们看到的是长度最多有14年的短时间序列。研究20~80岁的成绩意味着我们必须依赖数据的横截面信息,而这样的信息需要在这些短的时间序列里获得。 为每一幅图创建一个空白画布。例如, 然后我们在组内为每个选手添加线段,使用不同颜色和类型的线段以区分不同的参赛选手。下面的addRunners()函数为每个选手添加一条线段: 我们可以创建9块空白的画布,并用以下代码为参赛选手添加线段: invisible()函数隐藏了sapply()函数的返回值。由于该函数的功能是将线段添加到画布上,因此对于每次迭代它都返回NULL,可以安全地忽略该返回值。 图2-17 多场赛事的比赛用时。这些曲线图表示至少完成8次樱花赛的男选手的跑步时间。每个连接的片段集合对应一位运动员的跑步时间。观察所有的曲线图可以看出,该图和图2-7中的散点图呈现相似的形状,例如,图形随着年龄向上弯曲。然而,我们也可以看到单个选手成绩的变化情况。例如,许多中年选手的跑步时间随着年龄的增长而迅速增加,但并不是所有人都这样。他们中的一些人的成绩在进步,而另一些人的成绩变化较慢 这里我们留一道练习题,增强以上函数的功能,使它也可以返回年龄误差的SD(标准差)以及年龄系数的SE(标准误差)。另外,我们也将另一种可选方法留作练习,即同时拟合所有运动员的线段,使噪声分散在所有运动员上。 观察图2-18中的黑色虚线,这些线段似乎捕捉到了每个运动员的成绩变化。 图2-18 单个选手的跑步时间关于年龄的线性拟合。这里我们用最小二乘法对每个运动员的比赛用时进行拟合,以增强图2-17右下角的曲线图。总共有30条左右单个选手的黑色虚线段 现在,对至少参赛8次的运动员(且在这些参赛年度中所居住的州名相同),我们用一个单一系数表示比赛用时和年龄之间的关系。这个系数以分钟为单位,也是每年10英里赛比赛的时间单位。如果系数为正,表示该参赛者因速度变慢而使每年比赛用时增加的分钟数。 拟合的概要信息如下: 图2-19 运动员的纵向分析系数。该散点图显示了对300多位参赛选手进行直线拟合的斜率,这些选手都至少完成了8次樱花赛。系数为负表示参赛选手随着年龄增长速度变得更快。该图包括一条基于最小二乘法的拟合直线和一条loess拟合曲线。注意几乎所有超过50岁的选手的系数都为正值。对于50岁的选手,系数的典型值是每年大约1分钟 |
请发表评论