鉴衡论品味的标准

本站以英文写成,中文为译本;如有出入,以英文原文为准。

实验室

测量层,揭开盖子给你看。

大多数产品给你看一个分数,把机器藏起来。这一页就是那台机器。各项听辨测试计算的每一个数字都在这里定义:公式、由谁负责、好的结果是什么样、必须随它一起出现的注意事项。一个数字若还没有站得住的目标,这里就照直说,不去编一个。

模拟(SIMULATED)真实(REAL)混合(MIXED)实测(MEASURED)

每一个展示数据的面板都带着其中一个标记。目前这些测试从未投入使用,所以还不存在真实的样本人群,这里也没有任何百分位。为验证处理流程、由已知模型生成的数字,出现在哪里都标为模拟。真实作答到来时,会走完全相同的流程,唯一变的是标记。直接从音频文件本身测得、不涉及任何人的数字,标为实测。

面板

指标词典

24 项指标 · 3 个负责方

这个产品计算的每一个数字,附上公式、负责方、验收区间,以及随它一起出现的注意事项。

▸ 有验收目标 · ○ 尚无站得住的目标

测试

摇摆度(已校正漂移)

sway_pct

从盲听一轮到带标签一轮,评分朝所示标签移动了多远,以占评分量表的比例表示。正值表示被标签带动;负值表示抵住了它。

pct = round((校正后的平均偏移 / 量表跨度)· 100),其中校正值 adjusted = raw − d̄·(nUp−nDown)/n
目标
尚无站得住的目标
单位
百分比
计算位置
src/engine/bias.ts

并非百分位。它低估了实际效应:重新打分会让人锚定在第一次的答案上,量表的上限也会截掉向上的移动。

摇摆度(未校正)

sway_raw_pct

同一个偏移,在施加对照组漂移校正之前的值。与校正后的数字并列展示,让校正始终看得见。

rawPct = round((朝标签的平均偏移 / 量表跨度)· 100)
目标
尚无站得住的目标
单位
百分比
计算位置
src/engine/bias.ts

对照组漂移

control_drift_pts

作答者对不带任何标签的录音,在第二轮里评分移动了多少;这是记忆、熟悉度和回归效应的基线(baseline)。

d̄ = 对照录音上(第二轮 − 第一轮)的均值
目标
尚无站得住的目标
单位
分
计算位置
src/engine/bias.ts

受量表上限影响而偏向零:处在最高分的对照评分只能往下走,所以它提供的校正系统性地偏小。

摇摆比例

sway_share

在有余地朝标签移动的录音里,真正移动了的比例。这是量表边缘效应唯一碰不到的摇摆统计量。

share =(朝标签移动的录音数)/(余地大于 0 的录音数)
目标
尚无站得住的目标
单位
比例
计算位置
src/engine/bias.ts

用到的分档数

degrees_used

听者在盲听一轮中实际用到了评分量表上多少个不同的分值;这对应休谟的比较标准:只有把作品相互掂量过的人,才能给出不同程度的称赞。

degreesUsed = |{ 盲听评分:所有录音,含对照组 }|
目标
尚无站得住的目标
单位
计数
计算位置
src/engine/comparison.ts

它既受量表限制,也受录音数量限制;如果录音的质量确实接近,窄的分布可能就是正确答案。测试分不清这两种情况。要拿它和随意打分会得出的数字对照着读,永远不要拿它和上限比。

随意打分会用到的分档数

degrees_if_indifferent

一个随机给每段录音打分的人,预计会用到多少个不同的分值。这是分档数的参照点,因为量表的最高档也可能碰巧达到。

n 段录音、D 点量表时为 D · (1 − ((D−1)/D)^n)
目标
尚无站得住的目标
单位
计数
计算位置
src/engine/comparison.ts

这是算术,并非常模。它是随机产生的结果,并非任何人的得分;没有样本人群,这也并非百分位。

评分跨度

rating_span

盲听中最高分和最低分之间的距离,以评分量表的分计。

span = max(blind) − min(blind)
目标
尚无站得住的目标
单位
分
计算位置
src/engine/comparison.ts

顺序颠倒

order_reversals

听者在盲听时排成一种顺序、在带标签一轮排成相反顺序的录音对;只计入所示标签把两段录音推向同一方向的情况,因为那时没有差别性的理由让人改主意。

颠倒数 / 确认数,取标签方向相同或两段都是对照组、盲听时相差至少达到确认下限的录音对
目标
尚无站得住的目标
单位
比例
计算位置
src/engine/comparison.ts

两个标签朝同一方向推,力度未必相同,所以这只去掉了颠倒的一阶理由,并非全部理由。变成相等的录音对留在分母里,永远算不上颠倒,这让这个数字偏向把听者判为稳定。没有任何一对拉开到足以计数时,结果为空。

细辨准确率

delicacy_accuracy

作答者正确认出两段录音中哪一段是未经改动的原版的试次比例。

accuracy =(选对的次数)/(试次数)
目标
高于随机水平 0.50
单位
比例
计算位置
src/engine/delicacy.ts

二选一的迫选:50% 等于掷硬币,并非中等成绩。

瑕疵辨认准确率

flaw_accuracy

在选对了的试次里,作答者还说对了损伤类别的比例。

accuracy =(说对瑕疵的次数)/(选对的试次数)
目标
高于随机水平 0.33
单位
比例
计算位置
src/engine/delicacy.ts

只在选对的试次上计分:在选错的文件里判断瑕疵,无从计分,谈不上错。

你在评论家拉开的作品之间的评分差距

spread_far_pairs

一位评论家在自己公开发表的排名里,把一些作品排得相隔至少 10 位;在这些作品配对上,你的两个评分之间的平均距离。

取 |Δposition| ≥ 10 的配对:mean |rating(a) − rating(b)|
目标
尚无站得住的目标
单位
分
计算位置
src/engine/spread.ts

要和挨得很近的配对的数字、以及随意打分会得出的数字放在一起读;单独看它什么也说明不了。它测的是你的评分有没有拉开,从不看拉开的方向是否和评论家一致:一致与否不计分,也无法从这项测试存下的数据里算出来。还有三条限制随它一起:40 秒的片段承载不了评论家对一部长达 40 分钟作品的评判,所以这里的片段比本产品其他测试的长,这是缓解,并非解决;听者说以前听过的录音,只凭本人的话就被剔除,未经核实;两个数字之间的差距从不报告,因为每边只有 4 对,取自每段都出现在好几对里的录音,而且还没有人做过两次,没有测得的波动可以用来判断一个差距确实存在。

你在评论家排得挨在一起的作品之间的评分差距

spread_close_pairs

在同一位评论家排得相距 3 位以内的作品配对上,你的两个评分之间的平均距离。

取 |Δposition| ≤ 3 的配对:mean |rating(a) − rating(b)|
目标
尚无站得住的目标
单位
分
计算位置
src/engine/spread.ts

这个曲库里的录音,频谱截止的位置相差可达 10,002 Hz,原因与任何排名无关:其中一个来源是 128 kbps 的 mp3,在 8,624 Hz 就截止了。实测下来,这种差别在这些配对上(平均 6,498 Hz)比在拉开的配对上(3,758 Hz)更大,所以这个混淆因素只会让差异更难被发现,不会让它更容易出现。不毁掉录音就去不掉它,于是改为守住它的方向。

随意打分会得出的数字

spread_if_indifferent

在这个量表上随机选出的两个评分之间的平均距离。随机不知道评论家拉开了哪些作品,所以在两类配对上给出同一个数字,这正是它能作为两者参照点的原因。

D 点量表时为 (D² − 1) / (3D)
目标
尚无站得住的目标
单位
分
计算位置
src/engine/spread.ts

这是算术,并非常模。它是随机产生的结果,并非任何人的得分;没有样本人群,这也并非百分位。

敏感阈值

sensitivity_threshold

听者仍能可靠察觉的某一类损伤的最小量,用这类损伤自己的物理单位表示:峰值失谐的音分(cents)、漂移的毫秒数,或 kbps。它由这次测试的全部回答拟合得出,并非对阶梯碰巧经过的几个级别取平均。

拟合出的心理测量曲线与目标察觉率相交处的量级,用本次运行中全部的量级与对错观测拟合;按类别以音分、毫秒或 kbps 报告
目标
尚无站得住的目标
单位
物理单位
计算位置
src/engine/threshold-fit.ts

这是关于一个人某一次测试的事实,并非描述测试本身的统计量;由于单位不同,不同类别之间也不可比较。大多数测试报告的是一个区间,并非单个数字,因为从有噪声的测量得出的点估计,是这个测量撑不起的论断。原先对阶梯转折点所在级别取平均的估计量已经撤下,因为它给出的 95% 区间只有 49% 到 72% 的时候覆盖真值;现在这个测得的覆盖率是 94% 到 100%,即使心理测量模型设错了,也有 94% 到 98%。

布里尔分数(Brier score)

brier

自报把握与实际结果之间的均方误差。越低越好;它奖励的是知道自己有多对。

brier = mean((自报概率 − 结果)²)
目标
低于 0.25(一直猜 50% 的基准)
单位
比例
计算位置
src/engine/calibration.ts

单独看会误导:一个完全准确、却总说 50% 的作答者,得分和瞎猜的人一样,都是 0.25。一定要和把握差距一起看。

把握差距

calibration_gap_pts

平均自报把握减去实际准确率。正值表示说得比做到的多。

gap = mean(confidence) − accuracy,两者都以百分点计
目标
在 ±10 个百分点以内
单位
分
计算位置
src/engine/calibration.ts

±10 这个界限是暂定的判断,并非数据。以一次测试的长度,差距的标准误可能超过这个界限本身。

心理测量

题目难度(p)

item_p_value

答对这道题的作答者比例。数值越高表示越容易,这是这个领域一个不太理想的惯例,保留它是因为验收区间就是按它写的。

p =(答对人数)/(作答人数)
目标
0.55 至 0.85
单位
比例
计算位置
src/analytics/estimate.ts

取决于人群:同一道题在能力更强的人群里更容易。它并非题目本身固有的属性。

题目区分度(校正后的 r-pbis)

item_discrimination

一道题把强的作答者和弱的作答者分开的程度,即答对这道题与在其余所有题上得分高之间的相关。

r = corr(本题得分,去掉本题后的总分)
目标
≥ 0.2
单位
相关系数
计算位置
src/analytics/estimate.ts

所有人答得一样时,它没有定义(并非零)。难度极端时它会被削弱,这限制了它追踪区分度真值的能力。

信度(Cronbach's α / KR-20)

alpha

各个试次测量同一种潜在能力的一致程度。α 低,意味着个人得分大多是噪声。

α = k/(k−1) · (1 − Σp·q / Var(total))
目标
≥ 0.70(惯例下限)
单位
比例
计算位置
src/analytics/estimate.ts

上线的 18 个试次的细辨题库,在模拟中测得 α ≈ 0.49,低于 0.70 的下限。按 Spearman-Brown 公式,要达到这个下限约需 44 个试次;二选一的试次丢掉的信息,再巧妙的计分也补不回来。

分半信度

split_half

把测试分成两半、求两半之间的相关并校正折半效应得到的信度。

按奇偶分半:r_sb = 2r / (1 + r)
目标
≥ 0.70(惯例下限)
单位
比例
计算位置
src/analytics/estimate.ts

奇偶只是一种随意的分法;换一种分法就会得到另一个数字。

题目难度复原误差

item_p_rmse

估计出的题目难度与生成数据时所用的已知难度之间的均方根误差。这是估计量可用的首要证据。

rmse = √mean((估计的 p − 设定的 p)²)
目标
随样本量增大而缩向 0
单位
比例
计算位置
src/analytics/recovery.ts

只能对照模拟数据计算,因为只有在那里,真值是按构造已知的。

能力复原相关

theta_recovery_r

作答者的得分与其潜在能力真值之间的相关。它受信度限制:在长度有限的测试上,它到不了 1。

r = corr(答对比例,设定的 θ)
目标
趋近 √信度
单位
相关系数
计算位置
src/analytics/recovery.ts

它随测试长度提高,并非随样本量提高。

摇摆度衰减偏差

mean_beta_bias

人群测得的平均摇摆度比平均易受影响程度的真值低多少。这是系统性的,并非噪声:招募更多作答者也减不掉它。

bias = mean(估计的摇摆度)− mean(设定的 β),对各次重复取平均
目标
0(目前约为 −0.065)
单位
分
计算位置
src/analytics/recovery.ts

它的大小取决于假定的模型参数,不得当作真实听者的实测属性来引用。

运营

完成的测试次数

sessions_completed

到达结果页的测试次数。每一个人群统计量底下的分母。

count(bias_result 事件),不含 ?ref=dev 的流量
目标
要有站得住的暂定常模需 ≥ 300;要有意义的图表需 ≥ 100
单位
计数
计算位置
scripts/analysis/kpi-status.mjs

目前为 0:这些测试从未投入使用。

还没建成

只列出来,不做假样子。空面板算不上面板,日期也算不上理由,所以每一项都说明了真正挡在路上的是什么。

  • 校准与偏差分布

    布里尔分数、过度与不足的自信,以及名气摇摆度在作答者之间的分布。

    分布是关于一群人的事实,而还没有任何一群人做过这些测试。模拟出一个分布,画的只是我们假定的模型,并非任何测量结果:一个不含任何信息的形状,却挂着研究发现的标记。

  • 漏斗与人群

    按渠道从进入到完成的过程,以及每个人群到来之后做了什么。

    漏斗是一组比率,而比率需要分母。这个漏斗没有分母:还没有人做过这些测试,所以它能打印出的每一个比率都是零除以零。它会测什么,以及每一步需要多少流量才能发布比率,都写在下面。

漏斗,按规格写出

上面的面板没有建成,所以这里写出它建成后的样子。每一步都注明据以计数的事件,每一条描述都译自代码自身的事件登记表,并非另写的一份副本;登记表里的英文一改,测试就会把对不上的译文拦下,所以这里不会悄悄偏离实际触发的事件。

  1. 01到达landing_view首页加载

    它并非分母。分享的链接会直接打开测试,所以有人可以不经过这一步就到达下一步,这意味着这个比率可能大于 1。真正的逐级下降从它下面开始。

  2. 02进入测试bias_frame_view/bias 上显示休谟的开场说明
  3. 03开始打分bias_start盲听一轮开始
  4. 04完成盲听一轮bias_blind_complete给出盲听的最后一个评分,这一轮结束
  5. 05完成带标签一轮bias_labeled_complete给出带标签的最后一个评分;计算出结果
  6. 06得到结果bias_result计算出结果,即 D6 的临时记录,带着原始评分
  7. 07阅读结果说明bias_debrief_view显示必读的结果说明,披露被调换的标签
  8. 08分享bias_share在结果揭晓页上使用了分享按钮

需要什么条件

一个步骤的比率,在能被估计之前不能发布。按比例最坏的情况算,即比率接近一半、不确定性最大时,一个步骤需要 385 次到达这一步的测试,才能把它的比率确定在五个百分点以内;要确定在十个百分点以内,需要 97 次。这些是每一步的要求,并非整个漏斗的要求:最后一步最贵。

要让 385 个人走到底需要多少访客,取决于步骤之间的通过率,而这里从未测量过它,所以本页不作估计。本页没有任何面板带着真实标记。

估计量,演示一遍

模拟

面板空缺,是因为没有流量。分析并没有空缺,下面演示它怎样运作。4,000 个合成访客依次经过下面各个步骤,共重复 200 次,每一步按事先选定的比率留下访客。随后,估计量在完全不知道这些比率如何产生的情况下,从计数里把它们读了回来。

第一列的通过率是编出来的。它们并非这个产品的比率,也并非任何人的比率,这里的任何东西都不应被读成对真实访客行为的估计。它们是答案:关键在于估计量能不能找到它们。

步骤设定比率复原值误差95% 区间覆盖率
landing_view90.0%90.0%+0.02 个百分点94.5%
bias_frame_view50.0%50.0%+0.04 个百分点95.0%
bias_start75.0%74.9%-0.06 个百分点96.5%
bias_blind_complete60.0%59.9%-0.13 个百分点95.0%
bias_labeled_complete55.0%54.9%-0.07 个百分点93.5%
bias_result45.0%45.2%+0.16 个百分点93.5%
bias_debrief_view70.0%69.9%-0.11 个百分点91.5%
bias_share65.0%64.6%-0.37 个百分点92.5%

最后一列是做什么的。没有区间的比率只是装饰;一个区间若不像它声称的那样经常包含真值,还不如没有。一个 95% 区间应该在大约 100 次里有 95 次包含答案,最后一列测的就是它有没有做到。

这一列要从上往下读,不要横着读。覆盖率在顶部停在 95,到底部掉了一两个点,这是本页最有用的一条信息。每一步的分母是它上面那一步,所以一次从 4,000 个访客开始的运行,到结果说明页时只剩几百人;建立在几百人上的区间,比建立在几千人上的差,偏偏这里是漏斗最常被引用的地方。这就是这个面板没有建成的算术理由,摆出来给你看,并非只是声称。

等流量到来的那天,跑的就是同一份代码;它已经在上面代码实际使用的事件名上运行过。没有作答者就做不到的事,也就是说出这些比率到底是多少,它现在仍然做不到,本页也会一直这样说明。

方法论 · 名气偏差测试(Prestige Test) · 细辨测试(Delicacy Trials) · 阈值测试(Threshold Test) · 排序测试(Ranking Test)