Baseline Table Generator
About this tool
Upload an Excel file with a group column to get a publication-ready Table 1 (with test methods and missing-data notes)
自动判断每个变量该用哪种检验(先做正态性检验),P<0.05 自动标出。
写论文最花时间、又最容易被审稿人挑毛病的一步,就是Baseline table(Table 1):几十个变量,每个都要判断该用卡方还是 Mann-Whitney U,还要一个个数出 n(%)、算中位数和四分位距、标出 P 值,最后排成Three-line table——手工做一遍经常要一整天。
这tools把流程自动化:上传你原始的那份 Excel(不需要先做任何编码转换,汉字、英文、数字混着都行),告诉它哪一列是分组列、两组的取值是什么,剩下的它来做——判断变量类型、做正态性检验、选检验方法、算 P 值、排版Three-line table。
连续变量的处理是「看得见」的:每个变量先做正态性检验(两组分别算 Shapiro-Wilk 的 P 值和偏度,两组都近似正态才走 t,并按 Levene 方差齐性在 t 与 Welch t 之间选;否则走 Mann-Whitney U),统计量跟着检验走——用 t 的变量显示均数±标准差,用非参数的显示中位数(四分位距)。这样表里不会出现「写均数±SD、P 值却来自非参数检验」的错配。当然也可以一键「全部强制 Mann-Whitney」或「全部强制 t」。
和很多「一键出表」的工具不同,它会把判定依据一并交给你:每个变量是按分类还是连续处理、正态性检验的 P 值与偏度是多少、最终用了哪个检验、统计量是什么、最小期望频数是多少、有没有缺失值。判定不符合你的预期时,可以在表单里手工指定某几列的处理方式,再生成一次。
适用范围:两组比较(训练集 vs 测试集、有并发症 vs 无、预后好 vs 差)。超过两组的基线和多因素回归不在此工具范围内。所有计算在服务器上完成,上传的文件只用于本次计算、不保存。
数据要先做「汉字转数字」编码吗?
不用,直接上传原始 Excel 最好。工具内部会按列分别识别取值,表格里显示的仍是你在 Excel 里看到的内容(「男」「女」而不是 0/1)。
怎么知道每个变量是按分类还是连续处理的?
结果里有一张「变量判定说明」表:写明类型、判定依据、检验方法和缺失数。默认规则是——文本取值、或只有少数几个整数取值(如 0/1、分级 1–4)按分类处理;小数或取值较多的按连续处理。不符合预期时,在表单最后两栏填列名强制指定。
某一组里没有出现的类别会怎样?
照实显示为 0 (0.0%),整个变量不会消失。例如 TNM 分期 4 期只有训练集里有 1 例,测试集那一栏就是 0 (0.0%),P 值仍然由两组的完整列联表算出。
数据里有空格(缺失值)怎么办?
工具不会强行填 0:缺失值按变量排除,分母用各组实际填了的例数,并在结果里明确列出哪个变量缺了几个、缺在哪一组。正式Submission前建议先把缺失补齐。
上传的数据会被保存吗?
不会。文件只在服务器内存里参与本次计算,生成的 Excel/Word 放在临时目录,1 小时后自动删除,不写入数据库、不做任何留存。
为什么 P 值有时候写 <0.001?
小于 0.001 的 P 值一律显示为 <0.001,这是多数期刊的要求。Word 版里 P<0.05 的行会自动加粗。
为什么 TNM 分期这种 4 个类别的变量,检验方法写的是「蒙特卡洛 Fisher 精确检验」?
因为 Python 的 scipy 只在 2×2 表上能算出与 R 一致的 Fisher 精确 P 值;2×C(3 个类别以上)的精确算法在不同 scipy 版本之间结果会不一致——同一个列联表能被算成 0.1267 到 0.1309 之间的不同值。所以这里改用蒙特卡洛版 Fisher(10 万次抽样、固定随机种子,与 R 的 fisher.test(simulate.p.value=TRUE) 同法):同一个表实测 0.1255,R 的精确值是 0.1264,而卡方给的是 0.1548 —— 蒙特卡洛精确检验更靠近真值。同一种数据每次生成都得到同一个 P 值,没有随机波动。
生成的 P 值可以直接写进论文吗?
可以直接用,但有两条边界:一是分类变量用的是未校正 P 值(多重比较要自己做 Bonferroni 等校正);二是连续变量默认走「自动」——程序会对每个变量做正态性检验(两组分别算 Shapiro-Wilk P 值和偏度,两组都近似正态才走 t),并且统计量跟着检验走(用 t 的显示均数±标准差,用非参数的显示中位数(四分位距))。每个变量走了哪条路、依据是什么,都写在结果页的「变量判定说明」表里,可以直接核对。正式Submission前建议挑关键变量用 SPSS / R 交叉验证一次。
正态性是怎么判断的?为什么有时候看着不正态却给了 t?
判据是组合的,不是只看一个 P 值:例数 ≥8 时算 Shapiro-Wilk 的 P 和偏度,要求 P ≥ 0.05 且 |偏度| ≤ 1;例数 >5000 时 Shapiro 对微小偏离也会显著(几乎必然判不正态),改成只看偏度;例数 <8 不做检验、直接按偏态保守处理。每个变量的 P 值、偏度和最终结论都写在「变量判定说明」表里。如果你就是想全部用 t(或全部用非参数),在表单里选对应的「全部强制」那一档。