如何将置信带调整到R中的自定义函数?

时间:2015-07-22 15:29:57

标签: r confidence-interval

我刚刚在R开始,我正在努力为我定义的函数添加置信区间。我已经看到很多线性模型的例子,我知道ggplot2可以为某些函数做到这一点。但是,将频段拟合到我的自定义函数是非常棘手的。下面我有数据和我的功能:

data<-matrix(c(0.08, 0.1, 0.12, 0.13, 0.49, 0.11, 0.12, 0.15, 0.22, 0.47, 7, 8 , 9, 21, 30, 3, 8, 13, 15, 17),ncol=2)
mycurve<-function(x){a+(b*log(x))}
plot(data)
curve(mycurve,add=T)

这是一个例子,但除了这个之外,我还需要更多数据集和自定义曲线函数。 如果有人可以使用plotggplot(例如,可能使用geom_ribbon?)建议一种方法,我将不胜感激。我花了很长时间搜索stackoverflow,但还没有找到解决方案。如果有的话,或许你可以指点我......

提前致谢!

修改:抱歉,我忘记添加ab的参数。他们是:

a<-31
b<-9

编辑2:我已经尝试了@Ben Bolker和@Marcin Kosinski的建议,使用geom_smooth并将其与我的自定义曲线一起绘制:

data<-as.data.frame(data) #So that ggplot can use it ggplot(data,aes(V1,V2))+geom_smooth(method="lm",formula=y~1+log(x))+ geom_point()+stat_function(fun=mycurve,color="red")

结果是: enter image description here

红色曲线是我需要使用的自定义功能。所以我的问题是我需要geom_smooth来使用该函数(或者产生相同结果的替代方法)。

感谢您的帮助!

Edit3:协方差矩阵是:

29.3897 14.5805
14.5805 8.01302

2 个答案:

答案 0 :(得分:2)

你还没有说过a和b的来源。目前尚不清楚你正在做任何有关哪些信心带有意义的统计数据。如果a和b是固定/已知常数,则不需要置信带,或者置信带的宽度为0且与预测线相同。

如果a和b是某些参数的估计值,则存在置信带的可能性,但正确的值取决于a和b的计算方式。

答案 1 :(得分:0)

你有没有见过geom_smooth?

data<-matrix(c(0.08, 0.1, 0.12, 0.13, 0.49, 0.11, 0.12, 0.15, 0.22, 0.47, 7, 8 , 9, 21, 30, 3, 8, 13, 15, 17),ncol=2)
library(ggplot2)
qplot(data[,1], data[,2])+geom_smooth()