Я создал функцию, которая вычисляет вероятность наблюдения за событием.Вот код:
eq1 <- function(theta1, theta2, lambda){
vektorN = (1:100)
loopVerdi = 0
if(deltakere[i]>=2){
for (N in deltakere[i]:20000) {
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)
loopVerdi = loopVerdi + (density * ngittN * sN)
}
return(loopVerdi)
}
}
Я хочу запустить функцию для всех моих наблюдений, что хорошо, когда я делаю простой цикл for
ola <- 1:length(bud)
for (i in 1:length(bud)){
ola[i] <- eq1(theta1=1, theta2=2, lambda=7)
}
Так как я хочу сделатьМетод максимального правдоподобия для моей функции правдоподобия. Мне нужно, чтобы цикл выше был самой функцией.Но когда я определяю новую функцию, она выдает одинаковое значение вероятности для всех моих наблюдений (что, я знаю, неверно). Что не так с кодом ниже?
hello <- function(theta1, theta2, lambda) {
ola <- 1:length(bud)
for (i in 1:length(bud)){
ola[i] <- eq1(theta1, theta2, lambda)
}
return(ola)
}
test <- hello(theta1=1,theta2=2,lambda=7)