线性回归功效
这个方法是做什么的
回答“一个含 k 个自变量的多元线性回归,要检出模型整体的解释力,总共需要多少例”,以及“现有这批数据,整体 F 检验的把握有多大”。拖入 1 个定量因变量和若干个定量自变量,控件里只填显著性水平 α(默认 0.05)。效应量是回归专用的 Cohen's f² = R²/(1−R²),由真实的 OLS 拟合得到;惯例是 0.02 小、0.15 中、0.35 大,分别对应 R² 约 0.02、0.13、0.26。注意它检验的原假设是“全部回归系数同时为 0”,不是某一个自变量。
卡① 给样本构成、各变量描述统计、逐个自变量的 VIF 与容忍度,以及前提检验表:样本量是否大于自变量数加 1、每自变量观测数 n/k 是否达到 10 的经验下限、最大 VIF、残差的 Shapiro-Wilk 与 Breusch-Pagan 同方差检验。卡② 先列 R²、调整 R²、f² 与非中心参数 λ = f²·n,再给事后功效和达到 80% / 90% 功效所需的总样本量。卡③ 是功效随总样本量变化的曲线(k 固定)。卡④ 给四张表:MDES(f²) 及其换回的最小可检出 R²、α 三档对照、自变量个数 k 的敏感性、以及把解释力换成调整 R² 与 ×0.75 / ×0.50 的保守情景。卡⑤ 是速览表与论文表述。引擎是 scipy.stats.ncf(非中心 F),df₁ = k,df₂ = n − k − 1。
需要准备什么数据
- 放入[定量]因变量:1 个,定量变量(数值)
- 放入[定量]自变量:至少 1 个,定量变量(数值)
数据要求
- 数据表至少 20 行。
- 单列缺失率不超过 30%。
- 不接受取值全都一样的列(零方差列没有可分析的变异)。
以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。
什么时候用它
- 建模研究设计阶段,论证“带 5 个预测变量的回归要收多少例”
- 已有数据,想知道现有样本能检出多低的整体解释力(换算成 R² 门槛)
- 在“再加两个预测变量”和“再收 50 例”之间权衡,看卡④ 的 k 敏感性表
- 审稿要求补样本量论证,需要 MDES 与其对应的 R² 门槛
- 用预实验模型的调整 R² 做保守情景,为正式研究定例数
前提是设计矩阵满秩(自变量之间不能完全共线)、样本量大于自变量数加 1(否则没有残差自由度),以及 OLS 的常规假定:残差近似正态、同方差。卡① 把能查的都查了,包括 VIF 与 Breusch-Pagan。自变量拖拽区只接受定量列,分类预测变量得先自己做成哑变量,且每个哑变量都要计入 k。
什么时候不要用它
- 真正关心的是某一个自变量的偏效应:本模块只算整体检验,卡④ 的结论文案也写明了这一点。单个变量的功效要用它的增量 f² = ΔR²/(1−R²),那是「分层回归」里的 ΔR²;两者所需样本量通常差很多。
- 因变量是二分类:用「逻辑回归」做分析。产品没有它的功效模块,线性回归的 f² 与 R² 口径搬不过去。
- 只有一个自变量:用「相关分析(Pearson)功效」更直观——它与本模块 k = 1 时等价,但效应量直接就是 r,不必绕 R² 与 f²。
- 自变量是分组变量:拖拽区只收定量列。若因素只有一个、水平数不多,直接用「单因素方差(ANOVA)功效」,它按 Cohen's f 给按组均分的总样本量。
- 自变量高度共线、目的是稳住系数:加样本解决不了共线本身。先用「VIF共线性诊断」定位问题变量,必要时改用「岭回归(Ridge)」这类有偏但更稳的估计。
- 只想拟合模型、看系数和显著性:那是「线性回归 (最小二乘法)」的事,本模块不输出 p 值,卡② 的图注专门声明整体 F 检验属于回归模块的职责。
容易误读的地方
- 整体功效 1.0000 不代表你关心的那个系数也稳。 整体 F 的原假设是“全部系数为 0”,拒绝它只说明这组自变量合起来解释了点东西。完全可能出现整体功效饱和、而某个核心自变量的系数仍不显著的局面——那个变量的功效取决于它自己的增量 ΔR²,和整体 R² 是两码事。要论证它,得去「分层回归」里取 ΔR²,本模块给不出。
- 卡② 的达标样本量小得可疑时,别照单全收。 本例 f² = 0.5573 下 80% 功效只要 24 例。这个数只保证整体 F 检验能拒绝原假设,完全不保证系数估计稳定。卡① 的前提表里还有另一条底线:每自变量观测数 n/k ≥ 10(数据要求里写的是 10~20 的经验区间)。k = 3 时按这条底线至少要 30~60 例,比 24 大。两条底线要取严的那条,样本量论证里也应把 EPV 一并写上。
- R² 是偏大的估计,f² 与事后功效跟着偏乐观。 卡① 的结论文案原话:R² 在小样本、多自变量时会被系统性高估。卡④ 第四张表就是为此准备的——观测 R² = 0.3578 需 24 例,换成调整 R² = 0.3412 需 26 例,×0.75 需 34 例,×0.50 需 55 例。更极端的失效模式写在数据要求里:R² 接近 1 时 f² 会急剧放大、所需样本量趋近最小值,这种时候该怀疑的是过拟合,而不是庆幸样本量够用。
- 事后功效与整体 F 的 p 值是同一份信息。 本模块只有 α 一个控件,没有地方输入目标 R²,f² 只能由这次拟合估出来,非中心参数 λ = f²·n 也就完全由 R² 与 n 决定;而整体 F 统计量同样只由 R²、n、k 决定。两者一一对应,用事后功效说“模型不显著是因为样本量不够”是循环论证。设计阶段该代入的 R² 来自文献里同类模型的报告值,或专业上认为“值得建这个模型”的最低解释力。
- k 敏感性表要正着读,别反着用。 表注把它定位成“不要往模型里塞无关变量”的定量依据:固定 f² = 0.5573,k 从 1 涨到 8,达 80% 功效所需总样本量从 17 涨到 36,因为加变量同时抬高分子自由度并稀释残差自由度。但反过来“删掉变量就能省样本”不成立——删掉有解释力的变量会同时压低 R² 与 f²,这张表是固定 f² 只改 k 的对照,现实中两者是一起动的。同理,卡① 的 VIF 高也别理解成功效不够:表注写明共线性不影响整体 R² 与整体 F,因而不影响本模块的结论,它毁掉的是单个系数的可解释性。
报告里有什么
- 输出结果一:数据概览与前提检验
- 输出结果二:功效与所需样本量
- 输出结果三:功效曲线
- 输出结果四:敏感性分析(MDES 与 α/自变量数/效应量敏感性)
- 输出结果五:结论与样本量报告表述
横轴为总样本量 n,纵轴为在观测效应量 f² = 0.5573、自变量个数 k = 3、α = 0.050 下整体 F 检验的功效 (1-β),橙色虚线为 0.80 目标功效参考线。可用右上角切换器切到「表格」逐点读数。