r - Integrate-Function R:match.fun(f) 中的错误
问题描述
用户,
在尝试计算 Kullback-Leibler-Divergence 时,我遇到了 R 的积分函数的问题;对于我试图重现的公式,请参见此处:https ://wikimedia.org/api/rest_v1/media/math/render/svg/526682a951093613fe4c721db57b68ec991bdf07
而不是“p(x)”和“q(x)”,我分别使用了“f.1”和“f.2”。
这是代码:
f.1 = function(x){
dis.t = dt(x,df.1)
return(dis.t)
}
f.2 = function(x){
dis.norm = (1/sqrt(2*pi*sigma.sq))*exp(-((x-mu)^2)/2*sigma.sq)
return(dis.norm)
}
test = function(x){
kld = f.1(x)*log(f.1(x)/f.2(x))
return(kld)
}
KLd = function(x){integrate(test(x),-Inf,Inf)}
它返回一个错误:“match.fun(f) 中的错误:'test(x)' 不是函数、字符或符号”;如果我使用“is.function(test)”,它返回“TRUE”。
感谢您在确定问题和解决方案方面的帮助;
附加信息:输入函数的 xi 是伪随机 t 分布样本:df.1 = 3 n = 25 rt(n, df.1)
f.2 函数就是正态分布的密度函数;
最好的问候艾琳
解决方案
推荐阅读
- .net-core - 我可以知道我们是否可以将 json api 或 odata 与 ABP 3.x 集成?
- azure-ad-b2c - 从 dotnet core Razor 页面中的 Azure AD B2C SUSI 用户流捕获显示名称
- python - 如何将用户表单输入转换为整数或浮点数而不收到错误?
- python - 执行计算时从python中单个字符串中的多个单独值中去除多余的0
- python - 如何将另一个python文件中的函数调用到某个文件中
- reactjs - 无法更新子组件中的道具
- r - 计算多元线性回归的预测
- google-api - 谷歌课堂推送通知注册权限被拒绝仅限学生
- c# - httpclient调用c#中不支持的媒体类型
- xml - 用 powershell 将 '.00' 替换为 xml 中的空白值