2017-04-04 17 views
0

このRの問題を解決するのに誰も助けてくれますか?私はログ演算子で二重合計を実行する必要があり、私はそれを行う方法を見つけることができません。この合計は、確率分布の対数尤度式の一部である。私はこれが最初は簡単な質問であることを知っていますが、私は解決なしでそれに時間を費やしています。前もって感謝します。ログインでの二重合計R

総和式は:と思う

\sum_{i=2}^{k} \sum_{j=1}^{i-1} n_i log(a + bi+pj)

これは、合計するデータを準備するためにRコードのチャンクです()。これについて

set.seed(123) 
y <- rpois(100, 5) 
a <- 5; b <- 1; p = 0.1 
# ni <- frequency of repetitions from 100 Poisson distributed numbers 
ni <- table(y);ni 
i <- 2:length(ni) 
j <- 1:(length(i)-1) 
#Sum <- sum(????) 
+0

's < - 0; log(a + b * i + p * j)についての、 (for i:2:length(ni)){ for(j in 1:(i-1)){ s < - s + ni [i] } }; s' –

+1

ありがとうございます@MichalMajka。 – user2154480

答えて

0
set.seed(123) 
y <- rpois(100, 5) 
a <- 5; b <- 1; p = 0.1 
n <- as.vector(table(y)) 


result_list <- sapply(2:length(ni), function(i) { 
    sapply(1:(i-1), function(j) { 
     n[i]*log(a + b*i+p*j) 
    }) 
}) 

result <- sum(unlist(result_list)) 

どのように?

+0

ありがとうございます@thc。 あなたの解決策を見て、私のループコードで何が間違っているかを見つけた。 *(i in i){ for(j in j){ l [paste(i、j、sep = "")] < - ni [i] * log(a + b * i + p * j) } } * – user2154480