研究综合
综合回答的是单个来源无法回答的问题:证据整体支持什么,人们能有多确定,来源之间存在什么分歧及其原因,以及当前决策的下一步是什么。一系列摘要不是综合。
三个问题
输出中的每个陈述都必须经受住三个问题的考验。整个方法以及 ledger.py 工具的存在,正是为了使得答案可被核查。
- 这具体来自哪里? 已读来源中的一个命名位置。答案是定位符。
- 它被独立观察到多少次? 重复一项研究的十篇文章算作一次观察。答案是谱系计数。
- 这一点能让我们有多确定? 证据的结构设定了一个确定性的上限;判断只能更低。
不可变更的规则
- 仅引用已读的内容。记录其阅读方式(
全文、仅摘要、二次引用);低于全文的内容无法支持确凿的声明。 - 任何参考文献、作者、年份、图表或引文均不得出自记忆。如果找不到,则不引用。
- 每个图表和引文都必须有定位符,并在阅读时捕获。
- 源报告的内容(发现)、其被理解的含义(解释)以及应如何行动(建议)必须分开,后两者的确定性绝不能超过其下的发现。
- 反对某个声明的证据要与支持它的证据一起记录。
- “证据不足”是一个合法的答案。没有证据不等于证据缺失。
选择模式
当不确定时,选择较轻的模式并说明原因。
| 模式 | 使用场景 | 来源数量 | 搜索 | 输出 |
|---|---|---|---|---|
| 快速 | 有边界的答案,主要来自提供的材料 | 约3至10个 | 无或极少 | 简短报告,通常在对话中发出 (assets/brief-template.md) |
| 标准 | 有真正的决策依据 | 约10至30个 | 结构化,已记录 | 完整报告 (assets/report-template.md) |
| 系统性 | 方法必须可重现 | 按方案执行 | 详尽、已记录、已计数 | 完整报告、方案和表格 |
两种变体:
- 主要定性数据(访谈、开放式调查回复、反馈、工单):相同的工作流程;先阅读 references/qualitative-data.md。
- 评估现有的综合报告:跳至下方的“审计他人的综合报告”。
工作流程
将此复制到工作笔记中并逐项勾选。顺序很重要:每个步骤产生下一步所需的内容,跳过一步会导致已知的失败模式 (references/failure-modes.md)。
- [ ] 1 框架化 在阅读前确定问题、决策、范围、标准
- [ ] 2 收集 启动分类账;记录搜索,或清点提供的语料
- [ ] 3 评估 筛选、评价每个来源,并分配谱系
- [ ] 4 提取 将带有定位符的证据提取到分类账中
- [ ] 5 构建 跨来源构建声明;解决或标记未解释的矛盾
- [ ] 6 评定 确定性等于或低于每个上限,并附理由
- [ ] 7 检验 检查关键证据,尝试竞争性解释,修订声明
- [ ] 8 撰写 先写答案,并与决策相关联
- [ ] 9 复核 确认工作表;`check` 和 `report` 检查干净;通过质量标准
1 框架化
分别用一两行确定:问题(以可以回答“否”或“视情况而定”的形式);它服务于的决策及其使用者;范围(人群或背景、时间、地点、来源类型);以及纳入和排除标准。
在阅读前确定标准。根据结果调整标准是导致综合报告证实其作者预期的方式。如果必须更改,请记录更改及其原因。
最多向用户提出两到三个问题,仅限答案会改变工作的那些(通常是决策、范围边界、模式)。如果他们不想回答,请继续并在输出的顶部列出假设。
问题框架、审查类型和方案大纲:references/scoping-and-protocol.md。
2 收集
启动分类账。这也将固定今天的日期,该日期绝不能假设:
python scripts/ledger.py new ledger.json --question "..." --purpose "..." --mode standard --corpus searched
--corpus 是 supplied、searched 或 mixed。分类账是一个JSON文件,包含方案、每个考虑过的来源以及每个带有证据的声明。它是综合的工作记忆:保存在磁盘上并保持最新。字段和填充示例:references/evidence-ledger.md 和 examples/flexible-start/。
提供的语料:为每个项目赋予一个来源ID(S1、S2……),并在报告中说明该综合仅涵盖所提供的内容。
搜索:
- 从简短、宽泛的查询开始,以了解该领域的词汇,然后缩小范围。
- 将每个查询记录在分类账中:地点、查询内容、日期、结果数量。
- 追溯原始来源。当一篇文章报告了一项研究时,找到并引用该研究;如果无法获得,则引用该文章并记录
二次引用。 - 有意搜索空结果、相反发现以及未发表或灰色资料。已发表的证据过度代表了积极结果。
- 向后追溯参考文献列表,向前追踪引文。
- 当新搜索返回大部分已知来源,或模式的预算耗尽时停止。说明原因。
对于需要子代理的大型或可分离任务:references/parallel-research.md。
3 评估
对每个候选来源应用标准。被排除的来源保留在分类账中并附有理由。
对于每个纳入的来源,记录:
- 评价(
高、中、低、非常低),并附带具体的担忧。根据此问题的适用性来评估,而非声望:references/source-appraisal.md; - 谱系(
L1、L2……)。当多个来源追溯到一个共同起源时,它们共享一个谱系:一项研究及其预印本、媒体报道和后续报道;基于同一数据集的几篇论文;重申一份报告的页面。确定性取决于谱系,而非引用数量。
4 提取
对于每个来源,记录与问题相关的证据项:来源ID、定位符、种类(引文、释义、数据)和文本。包括人群和背景,以及任何限制其适用性的因素。默认进行释义;仅引用关键措辞。记录来源报告的内容,而不是方便的内容。
5 构建
跨来源工作,绝不要一次只处理一个来源。
- 选择方法以契合问题和证据:定性或混合证据使用主题综合法;多样化的定量证据使用带有结构化效果摘要的叙事综合法;仅在研究足够相似以至于平均值有意义时才使用元分析。references/synthesis-methods.md
- 根据证据所说内容进行分组,而不是根据来源或共享的词汇。
- 将每个组写成一个声明:一个可能错误的句子。“反馈时机”是一个主题。“延迟反馈在保留任务上优于即时反馈,但在程序性任务上则不然”是一个声明。
- 双向附加证据:支持它的证据项,以及反驳它的证据项。
- 解决每个矛盾在项目的
reconciled字段中:人群、度量、剂量、时间跨度、比较、设计质量或利益方面的差异。如果没有任何东西可以解释它,则写入unexplained。未解决的矛盾会降低确定性上限。 - 绝不要统计显著与不显著的研究数量。 报告方向、大小和范围。在报告或比较任何效应之前,阅读 references/quantitative-evidence.md。
- 诚实地计数:“14名参与者中的9名”,“5项试验中的3项”,而不是“大多数”。
根据需要有多少声明就声明多少,不要更多。如果读者无法全部记住,那么分组尚未完成。
6 评定
python scripts/ledger.py ceilings ledger.json
这会打印每个声明在其记录证据下可以达到的最高确定性,以及限制条件:一个谱系、没有完整阅读的有效内容、未解决的矛盾,或建议下的薄弱声明。
然后进行判断。将每个声明的 certainty 设置等于或低于其上限,并根据偏倚风险、不一致性、间接性、不精确性和可能的证据缺失而降低,并给出一个句子作为 rationale,说明是什么设定了它。用词来匹配声明:
| 确定性 | 措辞 |
|---|---|
| 高 | “X 增加了 Y” |
| 中 | “X 可能增加了 Y” |
| 低 | “X 也许会增加 Y” |
| 非常低 | “目前尚不清楚 X 是否会增加 Y” |
规则、定性证据和非研究证据、工作示例:references/certainty.md。
7 检验
尝试在读者之前打破结论。
python scripts/ledger.py keystones ledger.json
关键证据 是一个声明无法缺少的谱系:移除它,声明将失去其证据或无法按所述方式评定。然后,对于底线所依赖的每个声明:
- 关键证据:完整重新阅读每个关键来源。如果它是对的,那么还有什么其他事情会是真实的,并且在其他地方能看到吗?
- 竞争性解释:写出相同证据的最佳替代解释(偶然性、选择性、混杂因素、测量偏差、反向因果关系、有利益冲突的来源)。指出能够区分两者的观察结果,并查找它。
- 反向论述:仅从分类账中,草拟一个期望相反结果的人会写的底线。只要该草稿是合理的,声明就是夸大其词的。
- 迁移性:证据是否来自与决策场景相似的设置?如果不是,将其视为间接证据并降低评定等级。
- 沉默:如果声明是真的,应该存在什么证据,并且是否搜索过?
将发现的这些东西放入分类账(新的反驳项目、更改的评定等级、更狭窄的声明)。如果没发现什么,也是一个可接受的结果,前提是这是真实的。在存在子代理的情况下,将此步骤交给仅持有分类账的新读者。
8 撰写
先写答案。报告有七个部分(快速简报可以省略方法部分):
- 底线:用两到四个句子给出答案,措辞要体现其确定性。
- 这对决策意味着什么:标签化的解释和建议,包括诚实的“不要行动”和“证据无法就此做出决定”,以及什么会改变结论。
- 发现:每个声明一个副标题,写为声明本身,带有其ID(
[C1])、Certainty:行(含理由)、证据和引文([S3, S7]),以及它适用于谁。 - 证据不一致之处及其原因。
- 空白与局限性:证据的,以及本综合本身的。
- 研究方法:问题、标准、搜索、计数、评估、方法。
- 来源:按ID列出的每个被引来源。
在证据允许的地方要肯定,在证据不支持的地方要坦诚。对每个句子均等地使用模棱两可的措辞,会掩盖强发现和弱发现之间的区别,而这正是读者最需要的信息。
9 复核
python scripts/ledger.py worksheet ledger.json
工作表列出了必须在其定位符处重新阅读的证据:每个图表、每个引文以及来自关键证据的所有内容。打开每个来源并进行比较。然后记录结果:
python scripts/ledger.py mark ledger.json confirmed C1.s1 C1.s2
python scripts/ledger.py mark ledger.json mismatch C2.s1 --note "表3显示的是0.03,而不是0.30"
在确认之前,纠正分类账和报告中的任何不匹配。在不重新阅读的情况下将项目标记为已确认,会破坏唯一能捕获错误引文的检查。
然后运行检查,修复报告的问题,并重复直到两者都干净:
python scripts/ledger.py check ledger.json
python scripts/ledger.py report report.md ledger.json
python scripts/ledger.py explain <CODE> 说明任何规则存在的原因。在快速模式之外,当必要的证据未被确认时,report 会失败。对于附录,python scripts/ledger.py tables ledger.json 渲染证据表格,trace ledger.json C1 显示任何声明的回溯路径到其来源。
最后,根据 references/quality-rubric.md 对草稿进行评分,并修复任何低于通过标准的内容。
更新综合报告
当新证据出现时,将来源添加到现有分类账中,将 as_of 设置为新日期,提取,然后再次运行 ceilings 和 keystones:一个新的谱系可能会提高上限,一个新的矛盾可能会降低它。在 protocol.deviations 下注意更改了什么,并在报告中说明哪些结论发生了变化及其原因。
审计他人的综合报告
- 重建其隐含的问题、标准和方法。
- 对照来源检查其引文,从结论所依据的那些开始。不要断言未读来源“真正”说了什么;将其报告为未经检查。
- 使用 references/quality-rubric.md 评分,并使用 references/failure-modes.md 进行测试。
- 先报告裁决,然后说明什么是正确的、什么是不受支持的,以及按重要性顺序进行特定更改以修复它。
参考文件
| 文件 | 何时阅读 |
|---|---|
| references/scoping-and-protocol.md | 框架化问题、选择审查类型、撰写方案 |
| references/source-appraisal.md | 评价来源或分配谱系 |
| references/evidence-ledger.md | 编辑分类账或添加来源 |
| references/synthesis-methods.md | 选择综合方法 |
| references/certainty.md | 评定确定性或识别上限 |
| references/failure-modes.md | 任何检查失败或结果似乎不令人信服时 |
| references/quality-rubric.md | 完成草稿后 |
| references/quantitative-evidence.md | 对任何定量证据进行排序 |
| references/qualitative-data.md | 综合访谈、回复或反馈 |
| references/parallel-research.md | 使用子代理进行大型或可分离的工作 |