如何绘制平滑函数的一阶导数?
|
我有以下脚本可以模拟我拥有的数据结构的类型以及我想对此进行的分析,
library(ggplot2)
library(reshape2)
n <- 10
df <- data.frame(t=seq(n)*0.1, a =sort(rnorm(n)), b =sort(rnorm(n)),
a.1=sort(rnorm(n)), b.1=sort(rnorm(n)),
a.2=sort(rnorm(n)), b.2=sort(rnorm(n)))
head(df)
mdf <- melt(df, id=c(\'t\'))
## head(mdf)
levels(mdf$variable) <- rep(c(\'a\',\'b\'),3)
g <- ggplot(mdf,aes(t,value,group=variable,colour=variable))
g +
stat_smooth(method=\'lm\', formula = y ~ ns(x,3)) +
geom_point() +
facet_wrap(~variable) +
opts()
除此之外,我还要绘制平滑函数对t
和因子c(\'a\',\'b\')
的一阶导数。任何建议如何做到这一点将不胜感激。
没有找到相关结果
已邀请:
3 个回复
倾坞髓
然后,您可以根据预测值将导数定义为
,就像对离散函数进行微分一样。如果您获得足够的X点,这是一个很好的近似值。
如您所见,通过这种方式,您可以获得绘制导数的点。您将从这里弄清楚如何将其应用于两个级别并将这些点组合到所需的绘图中。在此示例代码的图下方:
括宠
踩什不
对数据进行平滑处理,则可以使用
中的参数the8ѭ指定预测数据的导数。来自@Joris的解决方案
输出中的任何差异很可能归因于平滑差异。