📜  在 R 编程中获取内核密度估计 – density()函数(1)

📅  最后修改于: 2023-12-03 14:51:08.794000             🧑  作者: Mango

在 R 编程中获取内核密度估计 – density()函数

在统计学中,内核密度估计是一种基于样本数据集的非参数估计方法,用于估计概率密度函数。在 R 编程中,我们可以使用 R 内置函数 density() 来生成内核密度估计图。

函数结构

density() 函数的一般语法如下所示:

density(x, bw = "nrd0", kernel = "gaussian", n = 512, from, to,
        cut = 3, na.rm = FALSE, weights = NULL, give.Rkern = FALSE,
        give.rho = FALSE, kernel.parameter = NULL)
参数说明
  • x:指定要生成密度估计的数据向量。
  • bw:指定带宽选择方法,取值为 "nrd0"(默认值,自适应带宽), "nrd"(带有非数据驱动的修正),或则指定一个实数来制定具体的带宽。
  • kernel:指定核的形状,通常取值为 "gaussian"(默认值)或 "rectangular"
  • n:指定样本量。
  • cut:指定在 x 的范围之外多少个标准偏差处停止密度估计。
  • na.rm:逻辑值。如果为 TRUE,则删除 x 中的缺失值。
  • weights:为 x 中的每个元素指定权重。
  • give.Rkern:如果为 TRUE,则返回每个观测值的估计核的标量或向量(以 kernel名称为标题)。这在图形表示时很有用。
  • give.rho:如果为 TRUE,则返回使内核平方正交(即零点),给出内核的相关变换。这对实现直方图坏点调整和经验分布函数等程序很有用。
  • kernel.parameter:指定一个给定内核的其他参数,例如,对于 Epanechnikov 内核,可以指定形状参数 a。
使用示例

以下代码会生成一个基于查尔斯·狄更斯小说《雾都孤儿》主角奥利弗·特威斯特的出生份额的内核密度估计图。

# 创建数据向量
birthdays <- c(21, 6, 14, 26, 24, 20, 11, 3, 26, 16, 29, 27, 20, 7, 26, 9, 1, 24, 5, 13)
# 生成密度估计
birthdays_density <- density(birthdays)
# 绘制密度估计图
plot(birthdays_density, main = "Oliver Twist's Birthdays Density Estimate")

此代码的输出图形如下所示:

Oliver Twist's Birthdays Density Estimate

结语

density() 函数是一个非常实用的函数,它能够帮助我们在 R 中生成内核密度估计图。无论您是在探索数据还是在进行统计建模,该函数都非常有用。