Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算R中平滑曲线的斜率_R_Scatter Plot_Lm_Smoothing_Trendline - Fatal编程技术网

如何计算R中平滑曲线的斜率

如何计算R中平滑曲线的斜率,r,scatter-plot,lm,smoothing,trendline,R,Scatter Plot,Lm,Smoothing,Trendline,我有以下数据: 我绘制了该数据的点,然后使用以下代码在绘图上对其进行平滑处理: scatter.smooth(x=1:length(Ticker$ROIC[!is.na(Ticker$ROIC)]), y=Ticker$ROIC[!is.na(Ticker$ROIC)],col = "#AAAAAA", ylab = "ROIC Values", xlab = "Quarters since Feb 29th 2012 till Dec 31st 2016") 现在我想找到平滑

我有以下数据:

我绘制了该数据的点,然后使用以下代码在绘图上对其进行平滑处理:

scatter.smooth(x=1:length(Ticker$ROIC[!is.na(Ticker$ROIC)]), 
  y=Ticker$ROIC[!is.na(Ticker$ROIC)],col = "#AAAAAA", 
  ylab = "ROIC Values", xlab = "Quarters since Feb 29th 2012 till Dec 31st 2016")


现在我想找到平滑曲线的逐点斜率。还将趋势线拟合到平滑的图形。我该怎么做呢?

有一些有趣的R包实现了非参数导数估计。对Newell和Einbeck的简短回顾可能会有所帮助:

#DATA
set.seed(42)
x = rnorm(20)
y = rnorm(20)

#Plot the points
plot(x, y, type = "p")

#Obtain points for the smooth curve
temp = loess.smooth(x, y, evaluation = 50) #Use higher evaluation for more points

#Plot smooth curve
lines(temp$x, temp$y, lwd = 2)

#Obtain slope of the smooth curve
slopes = diff(temp$y)/diff(temp$x)

#Add a trend line
abline(lm(y~x))

这里,我们考虑了一个基于<代码> pTabase<代码>包(对m阶导数具有惩罚的光滑样条)的例子:

数据生成过程是带有加性噪声的负逻辑模型(因此y值都是负的,就像@Foreverleer的ROIC变量一样):

set.seed(1234)

有一些有趣的R包实现了非参数导数估计。对Newell和Einbeck的简短回顾可能会有所帮助:

这里,我们考虑了一个基于<代码> pTabase<代码>包(对m阶导数具有惩罚的光滑样条)的例子:

数据生成过程是带有加性噪声的负逻辑模型(因此y值都是负的,就像@Foreverleer的ROIC变量一样):

set.seed(1234)

x是,逐点斜率@李哲源哲远里@李哲源哲远里谢谢你!是的,黄土曲线函数和我的数据的问题是我有负数。我会试试你的建议。是的,按点倾斜@李哲源哲远里@李哲源哲远里谢谢你!是的,黄土曲线函数和我的数据的问题是我有负数。我会试试你的建议。@d.b谢谢你的解决方案,但由于我的数据是负数,我不能使用“黄土”。负数日志未定义,它会抛出一个错误。@Foreverleer是什么阻止您抵消这些值/规范化…@d.b感谢您提供的解决方案,但由于我的数据有负数,我无法使用“黄土”。负数日志未定义,它会抛出一个错误。@Foreverleer是什么阻止你抵消这些值/正常化…谢谢@Marco Sandri这非常有用!谢谢你@Marco Sandri这很有帮助!
set.seed(1234)
x <- sort(runif(200, min=-5, max=5))
y = -1/(1+exp(-x))-1+0.1*rnorm(200)
library(pspline)
pspl <- smooth.Pspline(x, y, df=5, method=3)
f0 <- predict(pspl, x, nderiv=0)
f1 <- predict(pspl, x, nderiv=1)
curve(-exp(-x)/(1+exp(-x))^2,-5,5, lwd=2, ylim=c(-.3,0))
lines(x, f1, lwd=3, lty=2, col="red")
f2 <- predict(pspl, x, nderiv=2)
curve((exp(-x))/(1+exp(-x))^2-2*exp(-2*x)/(1+exp(-x))^3, -5, 5, 
      lwd=2, ylim=c(-.15,.15), ylab=)
lines(x, f2, lwd=3, lty=2, col="red")