假设有人给我画了一个直方图,我想对其进行平滑处理,并得到平滑函数。他们是在R中这样做的一种方式吗?(直方图不是来自数据,所以核密度估计器似乎不适应。如果你认为我在这方面错了,请告诉我。)
到目前为止,我选择将参数分布拟合到我的直方图。为此,我将直方图和 beta 分布之间的积分平方误差最小化。这是我的代码,其中 h 是支持 [0;1] 的分段常量函数。
h<-function(x) (x>0 & x<1)*1
fit.beta<-function(h){
dist<-function(alpha,beta){
diff2<-function(x)(h(x)-dbeta(x,alpha,beta))^2
return(integrate(diff2,0,1))
}
res<-constrOptim(theta = c(1,1), f = dist,grad=NULL, ui = matrix(c(1,1),1,2), ci = c(0,0))
return<-res
}
R 说:
Error in dbeta(x, alpha, beta) :
argument "beta" is missing, with no default
我不明白为什么 R 不理解 dbeta(x, alpha, beta)。我还尝试了 dbeta(x, shape1=alpha,shape2=beta) 它不起作用。你可以帮帮我吗?