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

R语言离散数据CDF/PDF计算、比值求解及可视化求助

离散向量的PDF/CDF计算与可视化方案

1. 数据准备与PDF计算

离散数据的PDF(实际为概率质量函数PMF)是每个值出现的概率,即频数除以总样本数,可通过table()统计后计算:

# 定义目标向量
MyVector <- c(99,100,100,98,99,101,99,101,102,100)

# 统计频数并计算PDF
freq_table <- table(MyVector)
pdf_values <- as.numeric(freq_table) / length(MyVector)

# 整理为数据框
stats_df <- data.frame(
  Value = as.numeric(names(freq_table)),
  PDF = pdf_values
)

2. 计算CDF与CDF/PDF比值

CDF可通过PDF累加得到,也可与你使用的ecdf()函数结果对应;CDF/PDF直接基于已计算的列做除法即可:

# 计算累积概率CDF
stats_df$CDF <- cumsum(stats_df$PDF)

# 计算CDF与PDF的比值
stats_df$CDFdivPDF <- stats_df$CDF / stats_df$PDF

# 用ecdf函数验证CDF值(以100为例)
MyCDF <- ecdf(MyVector)
MyCDF(100) # 输出0.7,与累加结果一致

3. 生成统计表格

直接输出数据框即可,也可用knitr美化表格:

# 基础输出
print(stats_df)

# 美化表格(需安装knitr包)
# install.packages("knitr")
knitr::kable(stats_df, caption = "离散向量统计结果")

输出表格示例:

ValuePDFCDFCDFdivPDF
980.10.11.0
990.30.41.3333
1000.30.72.3333
1010.20.94.5
1020.11.010.0

4. 绘制可视化图表

使用ggplot2绘制三条曲线,标记离散数值点:

# 安装并加载依赖包
# install.packages(c("ggplot2", "tidyr"))
library(ggplot2)
library(tidyr)

# 转换数据为长格式,方便多曲线绘图
stats_long <- pivot_longer(stats_df, cols = c(PDF, CDF, CDFdivPDF), names_to = "Metric", values_to = "Value")

# 生成可视化图表
ggplot(stats_long, aes(x = Value, y = value, color = Metric, group = Metric)) +
  geom_line(size = 1.2) +
  geom_point(size = 3) +
  labs(x = "数值", y = "指标值", title = "离散向量的PDF/CDF/CDFdivPDF曲线") +
  theme_minimal() +
  scale_color_manual(values = c("PDF" = "blue", "CDF" = "green", "CDFdivPDF" = "red"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:12:26