【问题标题】:How do you obtain the actual polynomial function associated with a PDF curve in R?您如何获得与 R 中的 PDF 曲线相关的实际多项式函数?
【发布时间】:2021-03-11 18:22:37
【问题描述】:

我正在学校做一个实验,分析扭转风力涡轮机转子叶片对涡轮机输出功率的影响。

在我的实验中,我分别进行了 50 次观察,其中我将涡轮机的一个转子叶片弯曲了特定的量(以度为单位),然后监测了 2 分钟的平均功率输出。我的数据集看起来像这样

X1P_Train_Arrange <- data.frame(
  Mean = runif(250),
  Degree = sample(c("0", "1", "2", "3", "4","5"), 10, replace = TRUE)
)

然后,我使用 geom_density 函数为我在执行实验时弯曲转子叶片的每个度数创建 PDF 图表。

Mean_Density <- ggplot(X1P_Train_Arrange, aes(x = Mean, color = Degree)) + 
                geom_density(lwd = 2.0) +
                labs(title = "Mean", x = "Mean", y = "Density") +
                theme_minimal() + theme_Publication() 

现在,我的问题是,有没有办法在绘制数据时获得与每条彩色曲线相关的实际多项式函数? 提前感谢您的任何帮助或帮助。

【问题讨论】:

  • 感谢您的反馈,我已根据您的建议编辑了我的问题。
  • 您真的想要每条曲线的代数方程,还是只需要能够在MeanDegree 的任何给定值下确定曲线的高度?

标签: r ggplot2


【解决方案1】:

Kernel Density Estimate 不是多项式函数。

但如果你愿意,你可以重建实际的功能。

请注意,KDE 只是以您的数据点为中心的许多高斯分布的总和,每个高斯分布具有算法选择的一些带宽。所以你只需要带宽,然后你就可以把它们放在一起。带宽只是构成 KDE 的高斯分布的标准偏差。更宽的带宽使曲线更平滑,但会导致特征丢失。太小,曲线太参差不齐。所以这是一个优化问题。

我怀疑使用ggplot 您可以提供自己的带宽,但要获得一个,我认为最好的办法是首先使用density 功能适合您自己的带宽。一旦你这样做了,你就可以看到$bw 的值。知道带宽后,您只需创建一个函数,该函数是许多以数据点为中心的正态密度函数的总和,每个函数的标准差为 bw

例如:

randomNumbers <- rnorm(100)
densityObject <- density(randomNumbers)

individualKernals <- lapply(randomNumbers, function(centerOfKernal){
  #return a function here, not a value
  function(x){dnorm(x, mean = centerOfKernal, sd = densityObject$bw)}
})

reproducedFunction <- function(x){
  toAverage <- sapply(individualKernals, function(f){f(x)})
  mean(toAverage)
}

plot(densityObject)

someXRange <- densityObject$x
y <- sapply(someXRange, reproducedFunction)

lines(x = someXRange, y = y, col = rgb(1,0,0,0.3), lwd = 3)

【讨论】:

  • 非常感谢您提供的有见地的建议,在我获得 $BW 值后,我能否就如何编写一个函数来对各个正态密度函数求和?
  • 见我上面的更新。如果您发现答案有用,您应该点赞,并将其作为正确答案接受,以便其他人受益。
  • Chechy,再次感谢您。我能够重现您提供的功能的结果。但是,我想知道是否可以从您那里得到一些澄清。 1.) 最后一行代码中行的输出是什么意思?当我运行那条曲线时,它似乎产生了另一条密度曲线?这条曲线是什么意思?
  • 非常欢迎。澄清点是评论部分的用途......
  • 2.) 代码倒数第二行输入的y是什么意思?
猜你喜欢
  • 2020-06-09
  • 2015-03-01
  • 2015-10-10
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2013-10-18
相关资源
最近更新 更多