📅  最后修改于: 2023-12-03 14:51:08.794000             🧑  作者: Mango
在统计学中,内核密度估计是一种基于样本数据集的非参数估计方法,用于估计概率密度函数。在 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")
此代码的输出图形如下所示:
density() 函数是一个非常实用的函数,它能够帮助我们在 R 中生成内核密度估计图。无论您是在探索数据还是在进行统计建模,该函数都非常有用。