我对Python非常陌生,我想使用lon lat数据来计算我在亚马逊盆地中拥有的子域面积。 域数为9,每个域有25 * 25个单元格。
bud <- runif(10, 1.1,1.55)
deltakere <- round(runif(10,5,9))
r=0.5
foo_inner <- function(i, theta1, theta2, lambda){
function(N){
density = (
(N) *
(N-1) *
(pWEI2(bud[i], theta1, theta2))^(N-2) *
pWEI2(bud[i], theta1, theta2, lower.tail = FALSE) *
dWEI2(bud[i], theta1, theta2)) /
(1-(pWEI2(r, theta1, theta2))^N)
ngittN =
dbinom(deltakere[i], size = N,
prob = pWEI2(r, theta1, theta2, lower.tail = FALSE))
sN =
dpois(N, lambda)
return(density * ngittN * sN)
}}
foo_outer <- function(theta1, theta2, lambda){
function(i){
listeObs <- sapply(deltakere[i]:20000, foo_inner(i, theta1, theta2, lambda))
return(sum(listeObs))
}}
eqThree <- function(theta1, theta2, lambda){
secondPart <- pbsapply(1:length(bud), foo_outer(theta1, theta2, lambda))
LL <- -sum(log(secondPart))
return(LL)
}
result_mle <- mle(minuslogl = eqThree, start=list(theta1 = 1,
theta2 = 2,
lambda = 7),
method="L-BFGS-B", lower=c(0.1,0.1,5),
nobs = length(bud))
那我该怎么办?