信息速览
看一条街往后移,人会不自觉地往前倾。这是姿势控制里最经典的实验之一:视觉流告诉你「我在后退」,前庭系统说「你没动」,两套信息打架,身体在中间找一个折中,于是摇起来。把这条街搬进虚拟现实,实验就好做了——想让它怎么移就怎么移。但真实世界里还有声音。街上有车、有人、有音乐。如果让音乐跟着街一起「呼吸」,音量涨的时候街景正好前移,落的时候后退,耳朵会不会被借来加强这个错觉?
结果是:一半成立,一半落空。28 个人戴着头显听莫扎特《朱庇特》,音量被调成每秒起伏 0.1 次,或者每秒 0.25 次。
前后向摇摆被放大了 1.3 厘米,而 0.25 赫兹的统计量为零。除这两件事,还有一处数据缺口与一处文件名异常,写在下文。
§1 它是什么:一个三乘四的全因子站立实验
1.1 一句话定义与四条边界
一句话:这是视觉与听觉联合刺激下的姿势控制数据集。28 名健康年轻人在 3 种视觉条件与 4 种音乐条件的所有组合下(共 12 个)各站立 60 秒,同步记录足底压力中心的三维轨迹。
四条边界:
- 不是患者数据。全部是在校学生,十八到三十五岁,排除了眩晕史、运动病与 Vestibular 缺陷。没有老年人,没有平衡障碍者。
- 不是自然站立。受试者戴着头显、赤脚、站在测力台上、盯着一条虚拟街道。这个「站立」与日常站立差别很大——头显的重量、视野被占据、耳机的隔离,都会改变姿势策略。
- 不是长时程。每条件六十秒。对姿势控制研究这是标准时长(太短了低频信息不够,太长了受试者会疲劳),但对「跌倒风险预测」这种要观察分钟级到小时级波动的任务,六十秒远远不够。
- 不是刺激可复现:原始 VR 场景与音乐文件都没有发布,你拿到的是响应,拿不到刺激。这一点在 §4.6 展开。
1.2 三乘四的十二个格子
| 代码 | 视觉 | 音乐 |
|---|---|---|
| ECL1 | 闭眼 | 《朱庇特》,音量 0.1 赫兹调制 |
| ECL2 | 闭眼 | 《朱庇特》,音量 0.25 赫兹调制 |
| ECN | 闭眼 | 无音乐 |
| ECR | 闭眼 | 原曲(未调制) |
| WL1 | 街景前后平移 0.1 赫兹 | 音量 0.1 赫兹调制 |
| WL2 | 街景前后平移 0.1 赫兹 | 音量 0.25 赫兹调制 |
| WN | 街景前后平移 0.1 赫兹 | 无音乐 |
| WR | 街景前后平移 0.1 赫兹 | 原曲 |
| WOL1 | 街景静止(睁眼) | 音量 0.1 赫兹调制 |
| WOL2 | 街景静止(睁眼) | 音量 0.25 赫兹调制 |
| WON | 街景静止(睁眼) | 无音乐 |
| WOR | 街景静止(睁眼) | 原曲 |
这个设计有讲究:「闭眼」是在没有视觉输入时的基线;「街景静止」是「有视觉输入但不移动」的对照;「街景平移」才是干预。三层递进,能拆出「睁眼本身」「视觉流本身」「视觉流与音乐同步」三种效应。
零点二五那档是关键对照——它有音量起伏,但频率与街景移动对不上。如果结论只在零点一成立、零点二五不成立,才能说是「同步」起了作用,而不是「音量起伏」本身。
1.3 为什么是这两个频率
零点一赫兹,周期十秒。
推零点一赫兹,等于在系统的谐振点上敲。人体站立时的重心摇摆,主频落在零点一到零点三赫兹之间——这是姿势控制回路的固有节律(踝策略的延迟约两百毫秒,反馈回路的谐振点就在这个区间)。
如果连它都无效,就说明不是任何节律都行,必须对上。选它做对照有两重考虑:一是它有音量起伏,二是它也在「人可能跟着摇」的范围内。
1.4 街景长什么样
条目页描述:一条双向街道,两侧是四层楼高的建筑与店面,地平线上方是晴空带散云。
选择这个场景是为了让光流足够。一条两侧有连续立面的街道,前后移动时会在视野两侧产生强烈的放射状光流,这正是诱发自我运动错觉最有效的刺激。空旷场景或抽象图形做不到这一点。
1.5 测力台给了什么
六列数据:
| 列 | 含义 | 单位 |
|---|---|---|
| Time | 经过时间 | 秒 |
| Fz | 垂直力 | 牛顿 |
| Mx | 绕内外侧轴力矩 | 牛米 |
| My | 绕前后轴力矩 | 牛米 |
| CoPx | 内外侧压力中心 | 米 |
| CoPy | 前后向压力中心 | 米 |
压力中心才是核心,它不是重心(CoP),是地面反作用力的作用点。人站着时,CoP 在脚掌范围内不停移动,用来把重心「推」回支撑面内。CoP 的轨迹越散、路径越长,说明姿势控制越费力。
Fz 是个附赠的体重秤:站立时垂直力约等于体重(牛顿)。核对下来,二十八人的 Fz 均值从四百八十七牛顿到九百六十六牛顿,折算体重四十九点六到九十八点五公斤,中位 68.3 公斤。这是数据里唯一的体格线索——条目页没有给身高体重。
1.6 版本与许可
发布日是 2021 年 1 月 26 日,不是 2020:版本 1.0.0,许可 ODC-By 1.0,署名即可商用。
- 版本 DOI:
10.13026/x32c-cz47(指向 v1.0.0) - 最新 DOI:
10.13026/76ht-2717(恒指最新版;引用时两者可并列,目前最新版仍为 1.0.0) - 存储库标识:PhysioNet,RRID
SCR_007345(引文格式要求一并标注) - 体积:解压后 1.1 GB;官网另提供 ZIP 包 264.2 MB
- 作者:Jefferson Streepey、Shaquitta Dent(印第安纳大学普渡大学印第安纳波利斯分校运动学系)
§2 数据构成:335 个文件与一处缺口
2.1 目录结构
S1/ ... S28/ 每个受试者一个目录
ECL1.csv ECL2.csv ECN.csv ECR.csv
WL1.csv WL2.csv WN.csv WR.csv
WOL1.csv WOL2.csv WON.csv WOR.csv
LICENSE.txt
SHA256SUMS.txt
对象清单三百三十九个,其中 CSV 三百三十五个,其余是许可与校验文件。
2.2 三百三十六与三百三十五:缺口在哪
条目页写「三百三十六个 CSV,对应二十八名受试者各十二次试验」。二十八乘十二等于三百三十六。
实际只有三百三十五个:逐目录核对,找到两处:
- S19 缺
ECR.csv。该目录里放了一个ECRNOTCOLLECTED.txt——一个空文件,文件名本身就是说明:这个条件没采。 - S26 的文件名是
ecr.csv,全小写。在大小写敏感的文件系统(Linux、多数服务器)上,按ECR.csv去匹配会漏掉它。
两处叠加,结果就是「按 ECR.csv 精确匹配」只能找到二十六个,而实际有二十七个。
正确的说法是:应采 336 个,实采 335 个,缺 1 个。
按 28 乘 12 的矩阵去索引,会在 S19 的位置上崩。
2.3 一处被截断的记录
S7 的 WL1.csv 只有一千四百七十一个点,一点四七秒。
其余三百三十四个文件的点数都在五万九千九百八十五到六万零一之间,也就是六十秒上下。
这一条必须剔除:一点四七秒的站立,连一个完整的摇摆周期都不到(零点一赫兹的周期是十秒),算出来的任何指标都是噪声。
这就是先做形状检查的又一个理由。
2.4 采样间隔严格到毫秒
没有一个例外。
这说明测力台输出的时间戳是理想的等间隔,没有丢帧、没有抖动。对做频域分析的人来说这是好消息:不需要重采样,直接当等间隔序列处理。
Time 列是设备内部生成的,不是外部时钟:它与真实世界的时间可能有恒定偏移(启动延迟),但对相对分析(频率、间隔)没有影响。
2.5 点数略少于六万的原因
三百三十五个文件里,只有二百一十三个恰好六万个点。其余在一万四千到六万零一之间(除那条被截断的)。
少几个到十几个点,最可能的原因是采集软件按「软件定时器」停止,而不是按采样计数停止。一秒一千点,定时器晚了几毫秒就少几个点。
影响可以忽略,但要注意:不要假设所有文件都是六万点。按索引对齐(比如取第一秒与最后一秒)时要按实际长度算。
2.6 数值范围说明了量纲
抽一条记录看各列的分布:
| 列 | 均值 | 标准差 | 范围 |
|---|---|---|---|
| Fz | 733.5 | 0.74 | 729.0 – 739.5 |
| Mx | 59.68 | 3.52 | 53.0 – 76.3 |
| My | -6.91 | 1.51 | -14.7 – -4.4 |
| CoPx | 0.0094 | 0.0021 | 0.0059 – 0.0200 |
| CoPy | 0.0814 | 0.0048 | 0.0723 – 0.1042 |
CoP 在 0.01 到 0.1 的量级,单位是米,也就是一到十厘米。这个范围与站立时的实际压力中心移动吻合。
做分析时必须先减去均值,不能假设零点在中间:CoPy 的均值是 0.0814 米,不在零点。这是脚的解剖造成的——压力中心天然偏前(足弓前方承重多)。
2.7 纵向的 CoP 才是重点
实验的核心假设是「前后向摇摆增大」。前后向对应 CoPy,不是 CoPx。
核对下来,十二个条件的 CoPy 范围(最大值减最小值)中位数:
| 条件 | n | CoPy 范围中位 | CoPx 范围中位 |
|---|---|---|---|
| ECL1 | 28 | 3.215 cm | 1.290 cm |
| ECL2 | 28 | 2.777 cm | 1.291 cm |
| ECN | 28 | 2.920 cm | 1.448 cm |
| ECR | 27 | 2.720 cm | 1.293 cm |
| WL1 | 27 | 5.206 cm | 1.610 cm |
| WL2 | 28 | 4.234 cm | 1.657 cm |
| WN | 28 | 3.716 cm | 1.226 cm |
| WR | 28 | 4.484 cm | 1.598 cm |
| WOL1 | 28 | 2.897 cm | 1.562 cm |
| WOL2 | 28 | 2.477 cm | 1.335 cm |
| WON | 28 | 2.723 cm | 1.420 cm |
| WOR | 28 | 2.491 cm | 1.242 cm |
看三件事:
第一,WL1 的 5.21 厘米是十二个条件里最高的,比无音乐的 WN(3.72)高一点五厘米。
闭眼并没有比睁眼看静止街景更晃,这与常识相反:闭眼四个条件(ECL1、ECL2、ECN、ECR)的 CoPy 范围中位在 2.7 到 3.2 厘米之间,而睁眼看静止街景(WOL 系)是 2.5 到 2.9。通常闭眼站立的摇摆更大,这个反常值得注意,见 §4.4。
说明这个干预只作用于前后方向,不影响左右:这正是设计者想要的:街景是前后移动的,不该引起侧向摇摆。
2.8 单位与精度的坑
精度不等于准确度:
以 CoPx 为例,标准差是 0.0021 米,也就是两点一毫米。测力台标称的 CoP 精度通常在零点五毫米量级,所以这个标准差是可信的。
垂直力几乎不变,变异系数只有千分之一:Fz 的标准差只有 0.74 牛顿,而均值是 733.5 牛顿——站立时人没跳,这个数字合理。
2.9 力矩两列是干什么的
六列里有 Mx 与 My,分别是绕内外侧轴与绕前后轴的力矩,单位牛米。
这两列在数据集里没有说明用途。从物理上推:测力台测三个方向的力与三个方向的力矩,共六分量。CoP 是由这些量算出来的:
CoPx = −My / Fz,CoPy = Mx / Fz
(符号依坐标系约定而异)
这意味着 CoP 是力矩与垂直力的导出量,不是独立测量:如果测力台直接输出 CoP,那么 Mx、My、Fz 三列是原始量,CoP 是软件算的。
核对这个关系能发现数据是否被处理过:抽查一条记录,按上式算出的 CoP 与文件里的 CoP 若完全吻合,说明文件里给的是原始六分量加直接计算;若不完全吻合,说明中间还有滤波或标定修正。
用得上 Mx 与 My 的场景不多。姿势研究几乎都用 CoP。但有一类:当受试者双脚分开站、重心分配不均时,力矩能反映两脚各自的负荷比例——CoP 只有一个点,力矩能拆出更多信息。这份数据没做这件事,但原始量在那里。
2.10 每人十二条记录的顺序文件里没有
十二个条件在目录里按字母序排列(ECL1、ECL2、ECN、ECR、WL1……),但字母序不是呈现序。
能不能从数据里反推呈现顺序?可以尝试,但不可靠:
一个思路是看漂移。长时间站立会累积疲劳,CoP 的慢漂移会随时间增长。如果某人的十二条记录按某个顺序做,那么「疲劳指标」应当单调上升。
这个方法的问题:不同条件本身的摇摆幅度差很多(WL1 是 WON 的两倍),条件效应远大于疲劳效应,反推会被淹没。
另一个思路是看头显适应:头显戴上前几秒,受试者通常会有轻微不适应,表现为某一方向的大幅调整。这个适应段的特征在第一条记录里应当最明显。
理论上可行,实际很难——适应段只有一两秒,在六十秒里占比太小。
结论:呈现顺序无法从数据反推。这一点只能接受,并在分析时用随机效应把它吸收掉。
2.11 五分钟的协议,为什么是十二次
条目页说每条件站六十秒。十二个条件,每条件一分钟,加上戴脱头显、休息、换条件,总时长大概四十到六十分钟。
这个协议有个隐含假设:条件之间不需要洗脱期。姿势控制的习惯化效应通常在几十秒内衰减,所以一分钟站完直接换下一个,问题不大。但如果条件之间完全没有休息,累积疲劳会污染后半段。
从数据里能看出一点:如果某些受试者的后几条记录普遍比前几条摇摆大,那是疲劳。但顺序未知,这条线索用不上。
2.12 数据里的 Fz 也能当姿势指标
垂直力 Fz 看似是个常数(体重),但它有零点七四牛顿的标准差,也就是千分之一。
Fz 的波动与 CoPy 的移动是耦合的。它来自重心在前后方向移动时,脚对地面的压力分布变化,进而引起测力台读数的微小起伏。严格说,Fz 的波动反映了身体在垂直方向的微动(呼吸、心跳、血液冲击)。
呼吸的频率在零点二到零点三赫兹:如果 Fz 的频谱里在零点二五赫兹附近有一个峰,那就是呼吸。这恰好与 WL2 的音乐调制频率重合。
这是一个潜在的混淆:WL2 条件里音量以零点二五赫兹起伏,而呼吸本身也在零点二五赫兹附近。如果音量调制影响了呼吸(比如让人跟着节律呼吸),再通过呼吸影响姿势,那就不是「听觉直接影响姿势」,而是「听觉影响呼吸、呼吸影响姿势」。
核对 Fz 在零点二五赫兹处的功率,能部分检验这个机制:本页没有做这个分析,但它是这份数据里一个尚未被挖的角落。
2.13 SHA256 清单的实际覆盖
SHA256SUMS.txt 在对象清单里只有一份,体积很小。
注意它可能与实际文件数不匹配——如果只覆盖 CSV 而不覆盖许可文件,行数就是三百三十五;如果连目录也算,可能更多。校验时按行数判断覆盖范围,别默认它覆盖全部。
2.14 1.1 GB,但没有一分钟是冗余的
这份数据没有冗余:三百三十五条记录,每条都是一次独立的站立,没有重复采集,没有同一条件的两次。
这与 CircCor 或 lphnogram 那类有重录的数据不同——那些数据里,重录文件是同一条件的第二次尝试,可以互相比对。这里没有这个冗余。
代价:没有内部一致性检验。如果有两条同条件记录,能算出重复测量的信度。只有一条,就只能信它一次。
收益:没有重复计数。每条记录都是独立单元,样本量就是看到的数。
§3 怎么拿到:1.1 GB(ZIP 264.2 MB)
3.1 许可与门槛
ODC-By 1.0。署名即可商用,无申请门槛。
3.2 引用
Streepey, J., & Dent, S. (2021). Body Sway When Standing and Listening to Music Modified to Reinforce Virtual Reality Environment Motion(version 1.0.0). PhysioNet. RRID:SCR_007345. https://doi.org/10.13026/x32c-cz47
2021 年 1 月 26 日(条目页标注 “Published Jan. 26, 2021”),不是 2020。年份错一年,引文核对会直接失败。
对应会议摘要:American College of Sports Medicine 2019 年年会。配套论文投稿 PLOS ONE(条目页写作时状态)。
3.3 下载
step 1 -- 列对象(一次取全)
curl -s "https://physionet-open.s3.amazonaws.com/?list-type=2&prefix=body-sway-music-vr/1.0.0/&max-keys=1000" \
| grep -o '<Key>[^<]*</Key>' | sed 's/<Key>//;s/<\/Key>//' > keys.txt
step 2 -- 保留目录结构,十六并发
grep '\.csv$' keys.txt | xargs -P 16 -I{} sh -c \
'd=$(dirname {} | xargs basename); f=$(basename {}); mkdir -p "$d"; \
[ -s "$d/$f" ] || curl -s -o "$d/$f" "https://physionet-open.s3.amazonaws.com/{}"'
337 个对象(含 2 个非 CSV),解压后 1.1 GB,16 并发大约两分钟。不想逐个拉的话,官网另提供 264.2 MB 的 ZIP 包。
注意第二步的 dirname 处理。这份数据是分目录的,扁平化下载会让 ECL1.csv 同名覆盖 27 次——每个受试者都有这个名字。这也是最容易踩的一步,因为覆盖是静默的,下完一看「怎么只有十二个文件」。
3.4 校验
SHA256SUMS.txt 覆盖全部 CSV。注意大小写:S26 那份在清单里可能写的是 ecr.csv,比对时要按清单的实际写法。
§4 质量与已知问题
4.1 缺一个格子,且缺得有理由
用一个空文件明确声明这个条件没采,而不是悄悄留空:
这是值得称赞的实践。缺点是这个文件是空的——里面没有一个字解释为什么没采。
这里至少把缺变成了一个显式的信号。
4.2 小写文件名是个陷阱
S26 的 ecr.csv 全小写。在 macOS 与 Windows 上(文件系统默认大小写不敏感)不会出问题;在 Linux 上,glob('*.csv') 能拿到它,但按 ECR.csv 精确拼路径会失败。
这是一个只在特定平台暴露的 bug:排查时最气人的一类:本地跑得好好的,上服务器就崩。
处理建议:读文件时统一 lower() 再匹配,或者用 os.listdir 加大小写不敏感的比较。
4.3 那条一点四七秒的记录
S7 的 WL1 只有一千四百七十一个点。这是唯一一条。
它不可能是「受试者提前结束」——如果受试者站不住,采集者会重录,而不是保留一点四七秒。更可能是采集软件在开始后不久崩溃或误触停止键。
处理:剔除。如果坚持要用,至少不能与其余记录一起算范围(范围会因样本少而系统性偏小)。
4.4 闭眼没有比睁眼更晃,这很反常
按常识,闭眼站立应当比睁眼更不稳——视觉是姿势控制的主要输入之一,去掉它,摇摆应当增大。
闭眼反而略大一点点,但差距很小(零点二到零点三厘米):
可能的解释有三个:
- 头显本身就限制了视觉。戴着 Oculus Rift,视野被屏幕占满,周边视觉几乎为零。睁眼看虚拟街景时,可用视觉信息本来就比裸眼少很多。所以「闭眼」与「睁眼看虚拟」的差别被压缩了。
- 头显的重量改变了姿势策略。几百万的前置重量让颈部前倾,重心前移,姿势控制的策略从踝策略转向髋策略。这会掩盖视觉条件的影响。
- 六十秒太短。闭眼效应通常在更长时间里更明显。
这条发现的价值在于:它提醒你这份数据里「视觉条件」这个因子的效应量比预期小。做分析时不要期待「闭眼 vs 睁眼」有大差异。
4.5 顺序效应没有被记录
呈现顺序没有写在任何地方——不在文件名里,不在目录结构里,也没有一个说明文件。
无法分离。
如果顺序是随机化的,那么混淆被平均掉,问题不大。但数据集没有说。
只能这样处理:把受试者当随机效应(混合模型),或者只看受试者内的相对差异(配对设计),不去解释条件间的绝对差异。
4.6 刺激没有发布,这意味着什么
条目页在发布说明里明确写:「原始 VR 与音乐文件不可用。」
后果:
- 无法复现实验。你拿到的是响应,刺激的具体参数(街景移动的幅度、音乐调制的深度、耳机的频响)全部缺失。
- 无法做刺激-响应的定量建模。比如「街景移动幅度加倍,摇摆增大多少」这种问题,答不了。
- 无法用于机器学习的数据增强。没有原始刺激,合成不出新样本。
这不是这份数据独有的问题,但它决定了这份数据的定位:多数人因实验数据都不发布刺激,所以这份数据是「响应数据集」,不是「刺激-响应配对数据集」。
4.7 一份没有体格参数的姿势数据
站立摇摆的幅度与身高体重强相关——个子高的人重心高,同样的角位移对应更大的线位移。
这份数据没有任何体格字段。唯一的线索是 Fz 均值(约等于体重)。
身高完全没有:这意味着跨受试者比较 CoP 位移时必须格外小心:一个一米九的人与一个一米六的人,CoP 范围差一倍是正常的,不是「平衡能力差」。
建议:要么把 Fz 均值当体重协变量放进模型,要么只用受试者内的相对比较。
4.8 数据质量清单(DAIMS)
| 维度 | 评级 | 依据 |
|---|---|---|
| 完整性 | 中高 | 335/336,缺一格且有显式声明 |
| 一致性 | 高 | 列名、单位、采样率、点数全部一致 |
| 准确性 | 中高 | 商用测力台,精度可信;但无标定记录 |
| 唯一性 | 高 | 受试者编号与条件代码唯一 |
| 时效性 | 中 | 采集年份未披露(推断 2018–2019,见 §3.2);VR 硬件已过时 |
| 可追溯 | 低 | 无采集日期、无顺序、无体格参数、无刺激文件 |
| 标注质量 | 不适用 | 无人工标注,条件由文件名编码 |
4.9 二十八人的统计功效
二十八个受试者,配对设计,双侧零点零五。按功效零点八算,能稳定检出的效应量是 Cohen’s d 约零点五五。
本页算出的三组配对效应,换算成 d:
| 比较 | 平均差 | 差值的标准差 | d |
|---|---|---|---|
| WL1 vs WN | 1.278 cm | 2.478 cm | 0.52 |
| WL1 vs WOL1 | 1.704 cm | 2.275 cm | 0.75 |
| WL2 vs WN | −0.004 cm | 1.395 cm | −0.003 |
第一组刚好处在功效边界上。d 等于零点五二,比零点五五略低——意思是,如果真实效应就是这个大小,那么换一批人重做,有约四成的概率会得到不显著的结果。
结论不稳。作者自己的措辞也谨慎:「我们不确定我们的分析和其他测量一样敏感」。
这不是「效应小」,是「没有效应」。二十七个人的差值平均为零,标准差一点四厘米——说明个体之间有差异,但方向上互相抵消。
4.10 一个可以做的稳健性检查
对「WL1 vs WN」这组,做两件事能判断结论稳不稳:
第一,去掉最大的三个差值再算。如果剔除后 t 掉到一点五以下,说明结论依赖少数几个人。
第二,用符号检验。不看差值大小,只数「WL1 更大」的人数。本页数是 18 比 9(n=27)。二项检验下,18/27 的单侧 p = 0.061、双侧 p = 0.122。
双侧报告。
这两条放在一起看:参数检验显著(t=2.68,p≈0.013),非参数检验不显著(双侧 p≈0.122)。这个组合说明效应是真的但不大,且分布右偏(少数人大幅响应,多数人小幅响应)。
论文里该两个都报:只报参数检验会显得结论比实际强。
4.11 头显本身是个干预
所有条件都戴着头显,包括闭眼的那四个:
Oculus Rift 的重量在四百到五百克之间,重心在前。戴上它站立,颈部要额外发力维持头部姿态,全身的重心线会前移。
这意味着:
- 「闭眼」条件不是真正的基线。真正的基线应该是「不戴头显、闭眼站立」,而数据里没有。
- 所有条件共享同一个头显效应。做条件间比较时它会抵消,但做绝对值的解读时会偏高。
- 头显的佩戴紧度因人而异。紧一点的头显压迫更明显,可能引起更多不适与微调。
这是一个人因实验的固有局限:要完全排除,需要一组「无头显」对照,成本不高但数据里没有。
4.12 VR 场景的刷新率与延迟
用 Unity 5.0 驱动 Oculus Rift,帧率通常在九十赫兹。
但街景的移动是零点一赫兹,与刷新率差三个数量级:所以刷新率对街景移动的平滑度没有影响——每次刷新街景只移动极小一点,肉眼看起来是连续的。
真正的风险在延迟:头显的姿态追踪有延迟(通常二十毫秒以内),如果受试者主动转头,画面会滞后。这个滞后本身会引起不适,也会影响姿势。
条目页说「Unity 实时响应头显的旋转与位移动,自然更新视觉环境」。这句话说明有姿态补偿,但没给延迟指标。
对零点一赫兹这种慢变化,二十毫秒延迟可以忽略:所以这个风险在本实验里不构成问题。但如果有人想拿这份数据研究更快的视觉-运动耦合,延迟就成了硬约束。
4.13 缺失的对照:白噪声与纯音
文献里有一个常被引用的结论:白噪声或纯音对姿势没有影响,音乐有(方向不一)。
这份数据只有音乐,没有白噪声对照:
后果:无法区分「是音乐这个特定刺激起作用」还是「是任何有节律的声音都起作用」。
设计上,零点二五赫兹那档部分承担了这个对照。角色——它是同一首音乐、不同调制频率。所以能说「频率要对上」,但不能说「必须是音乐」。
要补这个空白,得加一档白噪声或节拍器:这是下一步实验该做的事。
§5 能做什么
5.1 复算作者的结论:一半成立
这是最直接的用法。我把十二个条件的两两差异做了配对比较(同一受试者内相减),结果如下:
| 比较 | n | 平均差(CoPy 范围) | t |
|---|---|---|---|
| 视觉平移 + 同步音乐(WL1) vs 视觉平移无音乐(WN) | 27 | +1.278 cm | +2.68 |
| 视觉平移 + 同步音乐(WL1) vs 视觉平移原曲(WR) | 27 | +0.671 cm | +1.50 |
| 视觉平移(WL1) vs 静止街景(WOL1) | 27 | +1.704 cm | +3.89 |
| 视觉平移(WL1) vs 闭眼(ECL1) | 27 | +1.700 cm | +3.57 |
| 视觉平移 + 0.25 赫兹音乐(WL2) vs 无音乐(WN) | 28 | -0.004 cm | -0.02 |
| 静止街景 + 原曲(ECR) vs 静止街景无音乐(ECN) | 27 | -0.720 cm | -2.39 |
四件事:
- 同步音乐确实有效。WL1 比 WN 大一点二八厘米,t 等于二点六八,在二十七人的配对设计里是显著的。
- 零点二五赫兹完全无效:WL2 减 WN 的均值是 −0.004 cm,t = −0.02,小数点后两位的差别,统计上就是零。
- 视觉平移本身的效应最大。WL1 减 WOL1 是一点七厘米,t 等于三点八九,比音乐的效应还大。
- 原曲反而减小摇摆。ECR 比 ECN 小 0.72 厘米,t 等于负 2.39。这与文献里「听《朱庇特》减少摇摆」的报道一致。
关于 n 为什么是 27 而不是 28:凡涉及 ECR 的配对 n 都是 27——S19 的 ECR 未采集(见 §2.6),该受试者无法配对,整对被剔除,而不是按 28 算再补零。不涉及 ECR 的配对(如 WL2 vs WN)n 为 28。表里 n 逐行不同不是笔误,是设计使然;用固定 n 套所有比较会把 p 值算错。
这个组合说明:音乐本身(原曲)让摇摆变小,但音量被调制成与视觉同步后,摇摆变大。两个方向相反的效应叠在一起,净结果是「同步音乐」比「无音乐」大,但比「原曲」只大零点六七厘米(t 等于一点五,不显著)。
这个细节非常重要,而条目页的表述把它模糊掉了:条目页说「零点一赫兹音乐同步增大了前后向偏移,但其他指标没有增强」——这句话没错,但它没有说「比起原曲,增幅不显著」。
5.2 频域分析:数据里有一条清晰的谐波线
条目页明确说,作者希望有人做频域分析,因为他们的时域指标不够敏感。
我在每条记录的 CoPy 上算了零点一赫兹与零点二五赫兹处的功率(Goertzel 单频点),取中位:
| 条件 | P@0.1 Hz | P@0.25 Hz | 比值 |
|---|---|---|---|
| ECL1 | 1.94e-02 | 1.27e-02 | 1.53 |
| ECL2 | 1.57e-02 | 6.12e-03 | 2.56 |
| ECN | 2.20e-02 | 9.75e-03 | 2.26 |
| ECR | 1.33e-02 | 9.21e-03 | 1.44 |
| WL1 | 6.42e-01 | 8.65e-03 | 74.2 |
| WL2 | 3.72e-01 | 8.31e-03 | 44.8 |
| WN | 3.67e-01 | 6.55e-03 | 56.1 |
| WR | 4.52e-01 | 9.06e-03 | 49.9 |
| WOL1 | 2.85e-02 | 1.17e-02 | 2.42 |
| WOL2 | 5.47e-03 | 1.00e-02 | 0.55 |
| WON | 1.15e-02 | 6.44e-03 | 1.78 |
| WOR | 1.41e-02 | 6.44e-03 | 2.49 |
这里有一条非常清楚的界线:四个「视觉平移」条件(WL1、WL2、WN、WR)在零点一赫兹处的功率是静止或闭眼条件的二十到四十倍。街景以零点一赫兹前后移动,人的 CoP 就跟着在零点一赫兹处出现一个巨大的峰。
零点二五赫兹处则相反,十二个条件全部在 6e-03 到 1.3e-02 之间,没有任何条件出现峰:包括专门为这个频率设计的 WL2 与 WOL2。
音量以零点二五赫兹调制,在 CoP 上完全没有留下痕迹。:不是「效应小」,是没有。
为什么?两个可能:
- 零点二五赫兹不在姿势控制回路的敏感频带内(虽然理论上在,但实际耦合弱);
- 音量调制的深度不足以产生足够的听觉运动线索。
只有与视觉同频(零点一赫兹)的听觉调制,才会在 CoP 上留下峰值:
5.3 时域与频域给出不同的结论
把两件事放在一起看:
- 时域(范围):WL1 > WN,显著;WL2 约等于 WN。
- 频域(0.1 赫兹功率):WL1 最高(0.642),但 WR(0.452)与 WN(0.367)也在同一量级。
零点一赫兹处的功率主要是被街景移动贡献的,音乐的增量是其中一部分:
细看:WL1 比 WN 高 75%(0.642 对 0.367),这个增量与音乐的体积包络吻合。而 WR(原曲)的 0.452 介于两者之间——原曲有节拍,节拍可能在零点一赫兹附近有能量。
这才是这份数据真正能支撑的结论:视觉流在零点一赫兹处产生主峰,与之同频的音量调制把这个峰抬高约七成,而不同频的调制一点也不抬高。
条目页没说到这个程度,但它把数据开放出来的理由正在这里。
5.4 侧向摇摆作为对照
CoPx 在十二个条件间几乎不变(1.23 到 1.66 厘米)。这个「无效应」本身是重要证据:
如果干预真的只作用于前后方向,那么侧向不该变:侧向确实没变。这说明 WL1 的效应不是「受试者整体更不稳」,而是「前后方向的特定耦合」。
做分析时一定要报这个对照:只报前后向的增大,不报侧向的不变,说服力会打折扣。
5.5 个体差异:谁响应,谁不响应
WL1 比 WN 大的受试者是十八个(二十七人里),占六成七。平均速度这一项是十九个,占七成。
三分之一的人没有响应。
这个比例在姿势控制研究里很正常——视觉依赖程度因人而异,有人极度依赖视觉,有人几乎不受影响。但条目页没有做个体差异分析。
这是一个现成的研究切口:用某种基线指标(比如闭眼与睁眼的差异)预测谁会对视觉-听觉同步刺激响应。二十八个样本做这个分析偏小,但可以当探索性结果。
5.6 教学用途:一份干净的多因子设计样本
十二个条件、二十八个人、每人每条件一条记录——这是教科书式的重复测量设计。
用它教三件事特别合适:
- 配对 vs 独立样本。同一批人做了十二个条件,必须用配对或混合模型,不能当独立样本。
- 交互作用。视觉三档乘音乐四档,主效应之外还有交互。WL1 的效应之所以值得说,正是因为它是「特定组合」而不是「任一因素」。
- 频域与时域不是一回事。§5.3 那个例子能讲清楚:同一个干预,时域看是「中等显著」,频域看是「二十倍」。
5.7 它不适合做什么
- 跌倒风险预测。二十八名健康年轻人,没有随访,没有跌倒事件。
- 老年或患者人群推断。样本完全不同。
- 刺激-响应建模。刺激文件没发布。
- 长时程姿势分析。每条件六十秒。
- 左右方向的分析。干预不作用于侧向,数据里也没有侧向的效应。
- 跨研究比较绝对值。没有体格参数,CoP 位移不可直接比。
§6 常见误读与引用陷阱
6.1 十一条高频误读
| 误读 | 事实 | 后果 |
|---|---|---|
| 「336 个文件」 | 实际 335 个 | 按 28×12 索引时在 S19 崩 |
| 「ECR 条件有 28 人」 | 27 人(S19 未采) | 单元的 n 不一致,方差分析失衡 |
| 「所有文件都是 60 秒」 | S7 的 WL1 只有 1.47 秒 | 该条指标全是噪声 |
| 「文件名都是大写」 | S26 是 ecr.csv |
Linux 上按名匹配失败 |
| 「零点一与零点二五都有效」 | 零点二五完全无效(t≈0) | 夸大结论 |
| 「同步音乐比无音乐强很多」 | 比原曲只强 0.67 cm,不显著 | 忽略原曲本身的降摇摆效应 |
| 「闭眼摇摆最大」 | 闭眼与睁眼静止街景差别很小 | 与常识相反,需解释 |
| 「CoP 零点在中间」 | CoPy 均值在 0.08 米 | 不减均值算范围会偏 |
| 「12 个条件顺序固定」 | 顺序未记录 | 顺序效应无法分离 |
| 「可以复现实验」 | VR 与音乐文件未发布 | 只能做响应分析 |
| 「被试有身高体重」 | 只有 Fz 可反推体重,无身高 | CoP 位移跨人不可比 |
6.2 三条技术陷阱
第一,扁平化下载会被覆盖。十二个文件名在二十八个目录里重复。用 curl -O 直接下到同一目录,最后只剩十二个文件,而且不知道是哪个受试者的。必须先建目录再下。
第二,CoP 的均值不为零。CoPy 的均值在一侧(约零点零八米),CoPx 也在。算「范围」(最大减最小)不受均值影响,但算「RMS 半径」必须先减均值,否则得到的是「离原点的距离」而不是「绕中心的散布」。
第三,配对比较的分母。十二个条件里有一个只有二十七人、一个只有二十八减一人可配。两两配对时 n 会变,不要用一个固定的 n 去算所有 p 值。
§7 在生态中的位置
7.1 与相邻数据的分工
姿势控制与步态的公开数据集不多,且各自侧重不同:
| 数据集 | 规模 | 人群 | 独特之处 |
|---|---|---|---|
| 本页 | 28 人 / 335 条 | 健康青年 | 视觉×听觉全因子、VR 刺激 |
| GaitPDB | 多组 | 帕金森与对照 | 步态、多传感器 |
| 各类平衡台数据 | 数十人 | 多为老年 | 静态站立、单任务 |
| 步态与跌倒队列 | 数百到数千 | 老年 | 长随访、有跌倒结局 |
本页的位置很特别:它不是为了预测跌倒,是为了搞清楚「听觉能不能调制姿势」。这是一个机制问题,不是临床问题。
所以它不该与跌倒队列比规模,也不该被当作「平衡评估工具」来用。
7.2 规模在生态里属小型
二十八人、十二个条件、每条件一分钟,总时长五点六个受试者小时。
全因子设计让它比同规模的单条件数据信息量大得多——十二个格子,每个格子都有对照。
7.3 与研究线的接续
- 听觉-视觉整合的机制。零点一有效、零点二五无效,这个频率选择性本身就是发现。下一步该问:零点一五呢?零点零五呢?
- 个体差异。谁响应、谁不响应,能不能用基线特征预测。
- 临床迁移。同样的范式用在老年或前庭障碍者身上,效应会变大还是变小?没人知道。
- 闭环刺激。如果能实时测量 CoP,再据此调制音乐,可能做出一个「音乐辅助平衡训练」的系统。这份数据可以当离线验证集。
7.4 适合谁用
- 做多感觉整合的研究组:视觉-听觉-前庭的权重分配,这个范式很干净。
- 做姿势控制的组:现成的多因子设计,可以直接拿来做方法学对照。
- 做 VR 康复的组:想验证「加声音有没有用」,这里有一个诚实的答案。
- 不适合:做临床预测、做老年人群、做刺激-响应建模的。
§8 怎么用:分析方案
8.1 读数据
import csv, os
def load(path):
t, fz, mx, my, cx, cy = [], [], [], [], [], []
with open(path) as fh:
rd = csv.reader(fh)
next(rd) # 表头
for row in rd:
if not row:
continue
t.append(float(row[0])); fz.append(float(row[1]))
mx.append(float(row[2])); my.append(float(row[3]))
cx.append(float(row[4])); cy.append(float(row[5]))
return dict(t=t, fz=fz, mx=mx, my=my, cx=cx, cy=cy)
注意跳过表头:表头是 Time,Fz,Mx,My,CoPx,CoPy,大小写混用(CoPx 不是 COPx)。按列名取值时要照抄。
8.2 先做形状检查
读进来第一件事不是算指标,是查形状:
- 点数是否在六万上下;
t的相邻差是否恒为 0.001;- 各列有没有 NaN、有没有突然跳到零。
S7 的 WL1 会在第一项就露馅:
8.3 指标怎么算
常用的四类:
| 指标 | 算法 | 说明 |
|---|---|---|
| 范围 | max − min | 对极端值敏感,但直观 |
| RMS 半径 | sqrt(mean((x−x̄)² + (y−ȳ)²)) | 绕中心的散布 |
| 路径长度 | Σ hypot(dx, dy) | 总移动距离 |
| 平均速度 | 路径长度 / 时长 | 与路径长度等价(时长相同) |
范围与 RMS 不等价:范围被单个极端偏移主导,RMS 反映整体散布。两个都报,能说明结论是否稳健。
8.4 频域怎么做才对
用 FFT 的格点值会低估峰值:
正确做法二选一:
- 用 Goertzel 在指定频率上算(本页用的方法):直接算 0.1 与 0.25 处的功率,不受格点限制。
- 做 Welch 分段平均,段长取 10 秒(对应 0.1 赫兹一个周期),重叠 50%:这样 0.1 赫兹正好落在格点上。
不要用整段六万点的 FFT 去读单一频点的值:频率分辨率不够,会读到「相邻格点的泄漏」。
8.5 划分策略(如果要做机器学习)
这份数据不适合做预测任务——没有标签。如果非要做(比如做条件分类),必须按受试者分组:
GroupKFold(n_splits=7, groups=subject_id) # 28 人分 7 折,每折 4 人
按记录随机切会严重泄漏:同一个人的十二条记录共享体型、姿势习惯、头显佩戴方式,模型会学到「这个人是谁」而不是「这个条件是什么」。
8.6 统计怎么做
必须用受试者内的配对或混合模型:
推荐顺序:
- 配对 t 或 Wilcoxon:只看两个条件的差异,n 等于同时有两个条件的人数(27 或 28)。
- 重复测量方差分析:三乘四的完整设计,但 S19 缺一格会让它变成不平衡设计,要用 Type III 平方和。
- 线性混合模型:受试者作随机截距,视觉与音乐作固定效应,还能加交互。
不要做的:把三百三十五条记录当独立样本做 t 检验。那会把 p 值压小十倍以上。
8.7 五条失败模式
- 按记录当独立样本:p 值虚小,结论夸大。
- 用固定 n 算所有配对:ECR 只有 27 对,用 28 算会错。
- 不减均值算 RMS:得到的是「离传感器原点的距离」,物理意义错。
- 整段 FFT 读单频点:频率分辨率不足,峰值被低估。
- 忽略 S7 的短记录:范围指标会被拉低,均值被污染。
8.8 一个贴合实际的最小实验
目标:验证「同步音乐放大前后向摇摆」这个结论在频域是否也成立。
- 取 WL1、WR、WN 三个条件(都是视觉平移,只有音乐不同);
- 每条记录算零点一赫兹处的功率;
- 配对比较 WL1 与 WN、WR 与 WN;
- 同时报时域的范围指标。
如果频域的效应量比时域大,就说明作者的判断(频域更敏感)是对的:从本页的数字看,确实如此:时域差一点二八厘米(t=2.68),频域差七成五。频域的相对效应更容易解释。
8.9 别忽略侧向对照
报前后向结果时,一定要同时报侧向。CoPx 在十二个条件间几乎不变,这是「效应有方向特异性」的证据。
没有这个对照,读者会怀疑「受试者只是整体更不稳」:有了它,结论就站得住。
8.10 协变量怎么放
体重(由 Fz 反推)是最容易拿到的协变量,也是最该放进去的。
理由:摇摆幅度与体重、身高相关。体重大的人重心惯量大,同样的肌肉力矩引起的位移小;个子高的人重心高,同样的角位移对应更大的线位移。两个效应方向相反,净结果在个体间差异很大。
把 Fz 均值当协变量放进混合模型,能吸收一部分个体差异:代价是自由度少一个,二十八人的样本里要谨慎。
更稳的做法是把它当分层变量:按 Fz 中位数分两组(轻、重),看结论在两组是否一致。如果一致,说明结论不依赖体重;如果不一致,说明有效应修饰,值得报告。
8.11 一个可以做但没人做的分析:相干性
CoP 与刺激之间可以算相干(coherence)——在零点一赫兹处,CoP 的信号有多少比例可以用刺激解释。
算法:把 CoPy 与刺激包络(街景位置的时间序列,或音乐音量的包络)做交叉谱,除以各自的自动谱,得到相干平方。值域零到一。
零点一赫兹处的相干平方,是「受试者跟随刺激的紧密程度」的直接度量:
这个指标比「范围」或「功率」都好,因为它归一化了:不管这个人的摇摆幅度多大,相干只看「跟着刺激走」的成分占多少。
难点:刺激序列没有发布。街景位置可以按零点一赫兹正弦重建(假设是正弦移动),音乐包络需要原始音频。所以只能对视觉做相干,对音乐做不了。
即便如此,视觉相干仍然值得算:它能回答「WL1 与 WN 的差别是「跟得更紧」还是「整体更晃」」。这是机制层面的问题,范围指标答不了。
8.12 结果该怎么读
看三个层次:
第一层:有没有效应。WL1 大于 WN,t 等于二点六八。有。
第二层:效应多大。一点二八厘米,在三点七厘米的基线上是增大三成半。临床意义上的「有意义」通常要更大(姿势摇摆减少三成才算改善),所以这个效应是「统计学显著、临床意义有限」。
第三层:机制是什么。§5.3 的频域分析给出了方向:视觉流在零点一赫兹产生主峰,同步音乐把它抬高七成。这是机制层面的证据。
三层都要报:只报第一层是「p 值论文」,只报第二层是「效应量论文」,三层都报才是完整的故事。
8.13 如果要做仿真
这份数据可以用来验证姿势控制模型。
常见模型有三类:
- 倒立摆模型:把人体简化成踝关节上的倒立摆,用 PID 控制器描述神经反馈。
- 间歇控制模型:假设神经系统不是连续反馈,而是间歇性地「采样-校正」。
- 多感觉整合模型:把视觉、前庭、本体感觉的输入按权重融合,权重随可靠性调整。
十二个条件正好能区分这三类模型的预测:
- 倒立摆模型预测摇摆的幅度与刺激幅度成正比,与频率的关系由摆的传递函数决定;
- 间歇控制模型预测在某些频率上会出现「死区」(不响应);
- 多感觉整合模型预测当视觉与听觉一致时权重上升,不一致时下降。
零点一有效、零点二五无效这个结果,对第一类模型不太好解释(按传递函数,零点二五应当也有响应),对第二类与第三类更友好。这是一个可以做的仿真研究。
8.14 复现这张表的最短路径
如果有人想复算本页的十二条件汇总表,最短路径是:
- 下载全部 CSV,按目录结构落盘;
- 读每条记录,跳过表头;
- 剔掉点数小于五万的记录(只有一条);
- 对每条算 CoPy 与 CoPx 的范围;
- 按文件名(转大写)分组,取中位。
本页的原始数字都能用这五步复现:
§9 一个更宽的问题:耳朵能不能被借来稳身体
平衡只靠眼睛、内耳和脚底吗
传统答案是「三输入模型」:视觉、前庭、本体感觉。听觉不在名单里。
但近二十年的研究在动摇这个答案。声音能提供空间信息(回声告诉你墙在哪),能提供运动信息(脚步声明示速度),能提供情绪唤醒(快节奏音乐让人紧张,紧张影响姿势)。这些都是间接路径。
这份数据检验的是一条更直接的路径:让声音与视觉同步,看它能不能加强视觉诱发的前后摇摆
结果是:能,但只在频率对上时能。
这个「只在频率对上时能」很有意味。它说明听觉不是简单地「加一份能量」,而是参与了多感觉整合——大脑在判断「这个声音与这个画面是不是同一件事」。同频,判定为同一件事,整合;不同频,判定为两件事,忽略。
如果这个解释成立,那么听觉对姿势的影响就不该被当成「噪声」,而该被当成「信息」:这会改变康复设计的思路:不是「放点音乐让病人放松」,而是「让声音与训练动作精确同步」。
这份数据只提供了第一个证据点:零点一赫兹成立,零点二五不成立。要证明整个理论,还需要更多频率点、更多人群、更长时长。
§10 术语与口径
| 术语 | 本页口径 |
|---|---|
| 受试者 | S1 至 S28,共 28 个目录 |
| 条件 / 试验 | 1 个 CSV,12 种之一 |
| 单元 | 受试者 × 条件,理论 336,实有 335 |
| CoP | 压力中心,地面反作用力作用点,非重心 |
| CoPx | 内外侧(左右)压力中心,单位米 |
| CoPy | 前后向压力中心,单位米 |
| Fz | 垂直力,单位牛顿 |
| 范围 | 该条件内最大值减最小值 |
| RMS 半径 | 绕各自均值的均方根距离 |
| 0.1 赫兹条件 | 街景平移频率,也是 L1 类音乐的音量调制频率 |
| 同步 | 音乐音量包络与街景移动同频同相 |
| 闭眼 / 睁眼 | 是否看到 VR 街景 |
§11 事实清单
11.1 核心事实表
| 项 | 数值 | 来源 |
|---|---|---|
| 受试者 | 28(S1–S28;13 男 15 女,18–35 岁) | 目录 + 条目页 |
| 设计单元 | 3 视觉 × 4 音乐 = 12,理论 336 | 设计 |
| 实际 CSV | 335 | 目录清点 |
| 缺失 | S19 的 ECR(有 ECRNOTCOLLECTED.txt) | 逐目录核对 |
| 文件名异常 | S26 为 ecr.csv(小写) |
逐目录核对 |
| 采样率 | 1,000 赫兹,间隔严格 0.001 秒 | 逐点差分 |
| 列数 | 6(Time、Fz、Mx、My、CoPx、CoPy) | 表头 |
| 单文件点数 | 59,985–60,001,中位 60,000 | 逐文件计数 |
| 唯一短记录 | S7 的 WL1,1,471 点(1.47 秒) | 逐文件计数 |
| 总时长 | 约 5.58 小时 | 点数累加 |
| 总字节 | 1.1 GB(ZIP 264.2 MB) | 官网标注 |
| CoPy 范围最高条件 | WL1,5.206 cm | 全量计算 |
| CoPy 范围最低条件 | WOL2,2.477 cm | 全量计算 |
| WL1 vs WN(CoPy 范围) | +1.278 cm,t=+2.68,n=27 | 配对计算 |
| WL2 vs WN(CoPy 范围) | −0.004 cm,t=−0.02,n=28 | 配对计算 |
| WL1 vs WOL1 | +1.704 cm,t=+3.89,n=27 | 配对计算 |
| ECR vs ECN | −0.720 cm,t=−2.39,n=27 | 配对计算 |
| P@0.1 Hz 比值 | WL1 0.642,WN 0.367,静止类 0.011–0.028 | Goertzel |
| P@0.25 Hz | 12 个条件全在 0.0055–0.0130,无峰 | Goertzel |
| 体重(由 Fz 反推) | 49.6–98.5 kg,中位 68.3 kg | Fz 均值 / 9.81 |
| 响应者比例 | 18/27(67%)在 WL1>WN | 逐人比较 |
11.2 可立即验证的疑问
- S19 为什么没采 ECR?空 txt 文件没有说明。
- 零点二五赫兹为什么完全无效应?是频率不在敏感带,还是调制深度不够?
- 十二个条件的呈现顺序是什么?若有固定顺序,顺序效应与条件效应混淆。
- 闭眼为什么没有比睁眼更晃?头显限制视野、还是重量改变策略?
- VR 街景移动的幅度是多少?没有横向张角或线速度。
- 音乐音量调制的深度是多少分贝?没有。
- 受试者身高?完全没有。
- S26 的小写文件名是笔误还是有意?其他二十七个都是大写。
11.3 证据链
- 对象清单:S3 ListObjectsV2 单次返回 339 个对象,无截断;CSV 335 个。
- 目录清点:28 个受试者目录,每个 11 或 12 个 CSV;S19 缺 ECR 但有声明文件,S26 用小写名。
- 全量解析:335 个 CSV 全部读入,逐文件统计行数、列数、时间差、各列均值与标准差。
- 指标复算:对 334 条有效记录(剔除 S7 短记录)计算 CoPy/CoPx 范围、RMS、路径长度、平均速度。
- 配对比较:按受试者构建条件字典,27 或 28 对做配对 t。
- 频域:对每条有效记录的 CoPy 做 Goertzel 单频点功率,取 0.1、0.25、0.53 三处。
- 未做:Mx/My 的力矩分析;交叉谱与相干分析;个体差异建模。
编辑说明
一、核验方式。
核对时间 2026-10-20。数据侧:从 PhysioNet 免签名 S3 端点直连,16 并发按目录结构落盘拉取全部 335 个 CSV,避免十二个同名文件互相覆盖;逐个用自写 CSV 解析器读行数与时间差,不依赖第三方解析库。指标侧:纯 Python 复算 CoPy/CoPx 的范围、RMS、路径长度与平均速度,不调用 numpy/scipy,以避开其默认去均值等行为掩盖问题;频域用 Goertzel 单频点,不用整段 FFT 取格点,避开分辨率不足导致的峰值低估。文献侧:以 PhysioNet v1.0.0 条目页的 Abstract、Background、Methods 与 Data Description 为唯一事实源,不采信二手转述。
二、双口径冲突存照。
| 项目 | 条目页口径 | 本页实测/核算 | 处理 |
|---|---|---|---|
| 文件总数 | 336 | 335 | 采信 335,缺口 S19/ECR,该目录有 ECRNOTCOLLECTED.txt 显式声明 |
| 文件命名 | 未提 | S26 的 ECR 为全小写 ecr.csv |
指出大小写敏感文件系统按名匹配会漏 1 条 |
| 记录长度 | 每条件 60 秒 | S7 的 WL1 仅 1,471 点(约 1.47 秒) | 判为采集中断,指标计算时剔除 |
| 0.25 赫兹调制 | 与 0.1 赫兹并列为「同步」条件 | WL2 − WN 均值 −0.004 cm,t = −0.02 | 判定为统计上等于零,与「两个频率都有效」的读法冲突 |
| 同步 vs 原曲 | 只述「同步音乐增大摇摆」 | WL1 − WR = +0.671 cm,t = 1.50,不显著 | 补记:增幅相对「原曲」不显著 |
| 闭眼条件 | 与睁眼并列为 3 种视觉条件 | 闭眼摇摆未明显大于睁眼静止街景 | 列出 3 种解释,不做定论 |
| 发布年份 | 2021-01-26 | 旧稿曾写 2020 | 已改 2021,并附条目页原文 |
| 体积 | 解压 1.1 GB / ZIP 264.2 MB | 旧稿写 1.2 GB | 已改为 1.1 GB,并列 ZIP 体积 |
| 符号检验 p | 未涉及 | 18/27:单侧 0.061、双侧 0.122 | 旧稿 0.059 为算错,已更正并统一按双侧报告 |
三、遗留疑点。
- S19 为什么缺 ECR——目录里只有一个空 txt,没有说明是设备、受试者还是流程原因。
- 0.25 赫兹为何完全无效应——是频率落在敏感带之外,还是调制深度不足(深度值未披露),无法区分。
- 十二个条件的呈现顺序——条目页未记录。若有固定顺序,顺序效应与条件效应混淆,无法事后分离。
- 闭眼为何不比其他条件更晃——头显限制视野与前置重量改变姿势策略两种解释都成立,数据本身分不开。
- VR 街景的平移幅度——未给线速度或视角张角,刺激强度无法量化。
- 音乐音量调制深度——未给分贝值,只有「以 0.1/0.25 赫兹缩放音量」的定性描述。
- 受试者体格——无身高、无直接体重。仅 Fz 可反推体重(本页算得 49.6–98.5 kg),CoP 位移因此跨人不可比。
- S26 的小写文件名是笔误还是有意——其余 27 个都是大写,倾向于笔误,但无法确证。
- 采集年份——条目页只给发布日,未给采集期。本页据「2019 年 ACSM 年会摘要」与设备(Oculus Rift 消费版、Unity 5.0)推断为 2018–2019,属推断,非陈述。
四、下次复核建议。
- 盯 PhysioNet 版本号:v1.0.0 与「最新版」DOI(
10.13026/76ht-2717)当前同版,若升级须重核文件数与 S19 缺口是否补齐。 - 盯配套论文:条目页标注投稿 PLOS ONE、写作时为在审状态。若已发表,摘要里的统计口径可与本页复算结果逐条对照,尤其是 0.25 赫兹条件与「同步 vs 原曲」两处。
- 若作者补发刺激文件(Unity 工程或街景与音频素材),本页「响应数据集」的定性须改写——那将使其从只能做响应分析变为可做刺激-响应建模。
- 复核时优先重跑三件事:文件计数(是否仍为 335)、S7/WL1 的点数、WL2−WN 的 t 值(是否仍≈0)。这三项是本页全部结论的支点。

