如何解决定义函数以将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 举报,一经查实,本站将立刻删除。