You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中如何使用PearsonFitM()解读皮尔逊分布拟合结果并绘图

R中基于PearsonDS包实现皮尔逊分布拟合、绘图与验证

一、pearsonFitM()返回值含义

传入前四阶矩调用pearsonFitM()得到的结果中,各字段作用如下:

  • type:皮尔逊分布族的具体分型,取值范围为1-7,由传入的偏度、峰度组合自动判定。不同分型对应不同的概率密度形式:1型属于Beta分布族、4型为无界偏态厚尾分布、5型属于逆Gamma分布族、6型属于F分布族、7型属于t分布族。
  • a、b:分布的形状参数,是决定分布偏斜程度、尾部厚度的核心参数。不同分型下参数的数学定义存在差异,不需要手动换算,直接传入包内置的密度、分布、分位数函数即可调用。
  • location:位置参数,控制分布整体的平移幅度,与传入的样本均值直接相关。
  • scale:尺度参数,控制分布的拉伸/压缩幅度,与传入的样本方差直接相关。

注意:pearsonFitM()要求传入的峰度为超额峰度,即常规计算得到的峰度值减3,直接传入原始峰度会得到完全错误的分型和参数。

二、拟合效果绘图方法

完成拟合后,通过两类图可以直观判断匹配程度,以下代码可直接运行,替换你自己的样本数据变量名即可:

library(PearsonDS)
# 第一步:拟合模型,替换为你自己计算的样本矩
# mu=样本均值,var=样本方差,skew=样本偏度,kurt=样本原始峰度
fit <- pearsonFitM(mean = mu, variance = var, skewness = skew, kurtosis = kurt - 3)

# 第二步:绘制直方图+理论密度对比图
hist(your_data, freq = FALSE, breaks = "FD", 
     main = "皮尔逊分布拟合密度对比", xlab = "观测值", col = "lightgray")
# 生成拟合分布的密度坐标
x_seq <- seq(min(your_data), max(your_data), length.out = 1000)
lines(x_seq, dpearson(x_seq, params = fit), col = "red", lwd = 2)
legend("topright", 
       legend = c("实际数据直方图", "拟合皮尔逊分布密度"),
       fill = c("lightgray", NA), col = c(NA, "red"), lwd = c(NA, 2), bty = "n")

# 第三步:绘制经验CDF与理论CDF对比图(不受直方图分组方式干扰,更适合判断尾部拟合效果)
plot(ecdf(your_data), main = "皮尔逊分布拟合CDF对比", 
     xlab = "观测值", ylab = "累积概率", col = "gray", lwd = 1)
lines(x_seq, ppearson(x_seq, params = fit), col = "blue", lwd = 2)
legend("bottomright", 
       legend = c("实际数据经验CDF", "拟合皮尔逊分布CDF"),
       col = c("gray", "blue"), lwd = 2, bty = "n")

如果红色密度线和直方图轮廓基本重合、蓝色CDF线和灰色经验CDF线几乎重叠,说明拟合效果较好。

三、量化拟合优度验证

除了可视化,还可以通过两个方法量化判断拟合效果:

  • K-S检验:检验样本是否来自拟合得到的理论分布
ks_res <- ks.test(your_data, "ppearson", params = fit)
print(ks_res)

若检验p值大于0.05,说明在95%置信水平下,无法拒绝数据服从该拟合皮尔逊分布的原假设。

  • 分位点对比:对比关键分位点的实际值和理论值,判断局部偏差
check_probs <- c(0.01, 0.05, 0.25, 0.5, 0.75, 0.95, 0.99)
q_compare <- data.frame(
  样本实际分位数 = quantile(your_data, probs = check_probs),
  拟合分布理论分位数 = qpearson(check_probs, params = fit)
)
print(q_compare)

两个分位数的差值越小,对应位置的拟合效果越好,重点关注1%、99%这类尾部分位点的偏差。

内容的提问来源于stack exchange,提问作者Anna Morelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:36:27