R包spThin中thin()与plotThin()函数输出解读及优化咨询
spThin包空间细化结果解读与优化建议
运行代码
library(spThin) thinned_dataset_full.100 <- thin(loc.data = AP.bioclim.combined.3, lat.col = "Latitude", long.col = "Longitude", spec.col = "Species", thin.par = 5, reps = 100, locs.thinned.list.return = TRUE, write.files = FALSE, write.log.file = FALSE)
运行输出
Script Started at: Wed Jun 17 16:02:22 2026 lat.long.thin.count 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 2 2 1 2 8 10 8 18 16 13 6 8 5 1 [1] "Maximum number of records after thinning: 1205" [1] "Number of data.frames with max records: 1" [1] "No files written for this run."
结果解读确认
你的解读完全正确:满足「每个数据点间距至少5km」约束的最大数据集规模为1205条记录,且100次重复生成的结果中仅有1次达到了这个最优规模。
图表解读与优化疑问解答
1. 累积最大记录数(CMR)曲线(图1)
你的理解准确:如果CMR随重复次数增加持续上升,说明当前重复次数不足以充分探索所有可能的最优解,仅靠100次重复很难稳定找到最大规模的数据集。建议增加重复次数,可以将reps参数调整至200-500(根据你的计算资源灵活调整),直到CMR曲线趋于平稳,不再出现明显上升趋势。
2. 记录数分布直方图(图3)
你的数据集确实不符合理想状态:理想直方图应在最高保留记录数附近形成明显峰值,证明最优规模的数据集可稳定生成。当前你的直方图峰值集中在1199-1201区间,而最高记录数1205仅出现1次,说明最优解的出现概率极低。调整方案如下:
- 优先增加重复次数,让算法有更多机会搜索到最优解;
- 若增加重复后仍无改善,可尝试微调
thin.par参数(比如在4.8-5.2km范围内调整),观察最优解的稳定性变化; - 检查原始数据集是否存在局部采样极度密集的区域,这类区域可能会限制算法生成最优规模数据集的效率,必要时可先对局部密集区域做预处理。
内容的提问来源于stack exchange,提问作者Insect_biologist
相关产品推荐
相关产品推荐

