函数型数据可能是一个令人费解的话题,无论是思考还是向他人解释都可能比较困难。自从 SAS 在 JMP 14 中引入函数型数据浏览器 (Functional Data Explorer) 以来,我有很多机会讨论它的功能。然而,使用函数型数据分析 (FDE) 的主要问题在于理解“函数型”数据的概念。我想分享一个我用来帮助人们理解函数型数据及其分析功能的简单思考练习。根据我的小插件显示,阅读本文大约需要 4 分 30 秒。
祝你生日快乐!
You can sing the "Happy Birthday" song, right? That's because you have a "functional" form of the song in your memory.你会唱“生日快乐歌”,对吧?那是因为你的记忆里已经有了这首歌的“常用”版本。想象一下,你正在参加一个生日派对。你可能会唱传统的“生日快乐歌”,而你对此毫不在意。你熟悉这首歌,无论从哪个音开始,你都知道(即使音域不同)这首歌应该怎么唱。你有没有想过这是为什么呢?我们完全可以假设你不可能知道“生日快乐歌”的无数种变奏。那么,你为什么对自己的歌唱技巧如此自信呢?
简单来说,你的大脑已经将歌曲的“形状”存储在记忆中。给定一个起始音符,你的大脑就能重构出相应的音高,从而演奏出“生日快乐”的旋律。在本文的讨论中,你记忆中的歌曲已经具备了“功能性”形式。如果你绘制一个图表,纵轴代表频率,横轴代表从你开始播放歌曲到现在的时间,图表可能看起来像这样:
函数式数据分析 (FDA) 的作用类似于你的大脑处理歌曲的方式,将其应用于其他类型的基于时间的数据。(请注意,这里的“时间”含义相对宽泛。)FDA 从包含多条曲线的数据集(例如“生日快乐歌”的旋律)开始,并使用一些简单的数学公式(例如直线、曲线等)来构建数据的一般形式。形状(例如“生日快乐歌”的旋律)只需调整方程中几个常数,就能重现原始数据集中的任何曲线。这些数学技巧的结果是,我们可以将庞大且结构复杂的数据集简化为几个常数和一个(令人头疼的)方程。好消息是,我们通常不需要直接操作这个方程,因为关键信息就隐藏在这些常数中。很酷吧?
顺便说一句,我知道我现在对数学很着迷,但我以前不是这样的——只是大学时交友不慎。所以大家一定要慎重交友!
一个实用的生日快乐
正如我之前提到的,你应该能够使用函数式数据分析来分析“生日快乐”这首歌。剧透一下——确实可以。我将使用 JMP Pro 中的函数式数据浏览器来演示如何操作,以及 FDA 的各个组件在界面中的位置。
我们先来看数据本身(数据和图表可在JMP 公共上找到)。下面的交互式图表展示了西方音乐所有 12 个调的旋律。您可以将鼠标悬停在每个点上,查看与显示频率对应的单词(或单词的一部分)。时间轴位于 x 轴上。数据表包含三列:时间(x 轴)、频率(y 轴)和调号(每个函数的 ID)。这就是开始进行 FDA 分析所需的一切——一系列具有时间轴和响应的曲线。
由于本文主要讲解 FDA 的各个组成部分(而非 FDE 教程),我将直接跳到设置好“生日快乐”功能的步骤。如果您需要 JMP Pro 中功能数据浏览器的详细步骤说明,文档中提供了一个示例。以下是 JMP Live 生成的“生日快乐”FDE 输出报告。
还记得我们之前的思考练习吗?要理解我们正在观察的内容,我们需要找到几个关键点:函数形式(旋律的形状)以及用于修改函数形式以生成特定调性旋律的系数。找到“函数主成分分析 (Functional PCA)”标题下的小图表(可能需要在窗口中向下滚动)。这就是“生日快乐歌”的“函数形式”(在 FDA 术语中称为基函数)。所有用于重现该函数形式的系数等信息都在报告中(或者可以导出到数据表)。您看到的线条是所有建模工作的可视化表示。现在,打开“函数摘要”大纲框——别紧张!——这里有很多内容,但我们只关注 FPC 和均值列。JMP 使用均值和 FPC 来重建给定起始音符的歌曲(对于更复杂的数据,您可能会得到多个 FPC)。其他信息也都很有用,但归根结底,这些信息是你重构每个版本的“生日快乐歌”所必需的。而你的大脑却能瞬间完成所有这些工作……真是太神奇了。
结论
就是这样!函数式数据分析不过是人们试图让计算机代替人脑自主运作的又一个例子。很酷吧?话虽如此,函数式数据分析的应用前景确实令人兴奋。你可以用它将时间序列数据转换成其他建模方法可以使用的格式。你还可以把它作为实验设计(DOE)的一部分……用途非常广泛。
嗯,这听起来像是一个很有意思的系列文章选题……嗯……