gpt4 book ai didi

r - 在 R-fisher 评分中实现递归函数的问题

转载 作者:行者123 更新时间:2023-12-04 10:51:14 33 4
gpt4 key购买 nike

我正在尝试在模拟 i.i.d 上实现 Fisher Scoring。 Poisson 数据,但出现堆栈溢出错误。我从函数中做了一些简单的打印,发现第一次迭代后猜测值没有改变。

fs_pois <- function(data, true, guess) {
if (abs(guess-true) < 0.01) return(guess)
else return(fs_pois(data, true, guess + (mean(data)*exp(-guess))-1))
}

data <- rpois(100,lambda=0.34)
fs_pois(data, 0.34, 0.36)

产生
Error: C stack usage  7970416 is too close to the limit

有谁知道发生了什么?
非常感激

最佳答案

您正在更新 guess(mean(data)*exp(-guess))-1 ,什么用不了true您在 abs(guess-true) 中使用的内容决定退出。在您的情况下,在 7970416 步后未达到退出条件,典型的部分是 (mean(data)*exp(-guess))-1正在前往 0 .也许你应该使用 (mean(data)*exp(-guess))-1对于退出决定。

fs_pois <- function(data, guess) {
d <- (mean(data)*exp(-guess))-1
if (abs(d) < 0.01) return(guess)
fs_pois(data, guess + d)
}

set.seed(7)
data <- rpois(100,lambda=0.34)
fs_pois(data, 0.36)
#[1] -0.9326207

关于r - 在 R-fisher 评分中实现递归函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60498523/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com