问题描述
我应该定义一个可以将pdf函数作为输入并返回CDF函数的函数(如果输入是向量,则返回经验CDF)。要求我启用各种参数。 但是,r中的 integrate 函数仅处理一维函数,而pdf通常带有多个参数。 到目前为止,我只能使pdf具有x的功能,然后使用我编写的功能将pdf转换为CDF。
pdftocdf <- function(pdf,lower){
if(class(pdf)=="function"){
function(quantile) integrate(pdf,lower = lower,upper = quantile)
}
else if(class(pdf)=="numeric") return(ecdf(pdf))
else return("Invalid input")
}
现在我只能定义如下的卡方分布,明确指定自由度:
pdf <- function(x){
x^(1/2 - 1)*exp(-x/2) / (2^(1/2)*gamma(1/2))
}
这样,pdftocdf可以正常工作:
cdf <- pdftocdf(pdf,lower=0)
cdf(1) # try with quantile=1
但是我真正想做的是:
pdf <- function(x,k){
x^(k/2 - 1)*exp(-x/2) / (2^(k/2)*gamma(k/2))
}
然后将其放入函数pdftocdf中。 有什么建议?预先感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)