Функция не может правильно выполнить цикл - PullRequest
0 голосов
/ 24 февраля 2019

Я создал функцию, которая вычисляет вероятность наблюдения за событием.Вот код:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...