定义函数以将pdf转换为cdf时出现多个参数问题

问题描述

我应该定义一个可以将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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...