如何根据R中的参数集成函数?
我估计正态逆高斯最大似然。在如何根据R中的参数集成函数?,r,integral,integrate,R,Integral,Integrate,我估计正态逆高斯最大似然。在optim()之后 “误差f积分(f2,下限=0,上限=Inf,z=z):函数的计算结果长度错误” 代码中有bug的部分是 f2 <- function (t, z) { exp(-t)*t^(1-1/2)*(1+t/2*z)^(1-1/2) } int2 <- function (z) { integrate(f2, lower=0, upper=Inf, z=z)$value } f2如果yobs的长度大于1,那么zval也会这
optim()之后
“误差f积分(f2,下限=0,上限=Inf,z=z):函数的计算结果长度错误”
代码中有bug的部分是
f2 <- function (t, z) {
exp(-t)*t^(1-1/2)*(1+t/2*z)^(1-1/2)
}
int2 <- function (z) {
integrate(f2, lower=0, upper=Inf, z=z)$value
}
f2如果yobs
的长度大于1,那么zval
也会这样做,如果yobs
的长度大于1,zval
行K1中调用int2
时的f2
返回值也会这样做,调用int2
行K1中的f2
的返回值要将int2应用于向量参数,可以在公式中引入新函数int2vec
,并使用它代替int2
:
int2vec<-function(t) sapply(t,int2)
int2vec要将int2应用于向量参数,您可以在公式中引入新函数int2vec
,并使用它而不是int2
:
int2vec<-function(t) sapply(t,int2)
int2vec例如:
F2 <- function(z){
f2 <- function(t){
exp(-t)*t^(1-1/2)*(1+t/2*z)^(1-1/2)
}
return(f2)
}
int2 <- function (z) {
integrate(F2(z), lower=0, upper=Inf)$value
}
> int2(1)
[1] 1.156935
F2例如:
F2 <- function(z){
f2 <- function(t){
exp(-t)*t^(1-1/2)*(1+t/2*z)^(1-1/2)
}
return(f2)
}
int2 <- function (z) {
integrate(F2(z), lower=0, upper=Inf)$value
}
> int2(1)
[1] 1.156935
F2提示:F2是两个变量的函数。提示:F2是两个变量的函数。Nice(+1);我没有想到这是一个补丁;我没有想到这是一个解决办法。