gpt4 book ai didi

logit 的 R 代码生成大于 1 的值?

转载 作者:行者123 更新时间:2023-12-01 00:51:44 25 4
gpt4 key购买 nike

逻辑转换应该在 (0,1) 中生成值。但是,如果您查看以下逻辑转换,您会发现它创建的值大于 1。我哪里出错了?

lambda1=0
out=matrix(NA,400,1)
for (i in 1:400){
lambda1[i+1]=((exp(0.8*lambda1[i]+rnorm(1)))/(1+exp(0.8*lambda1[i]+rnorm(1))))
out[i]=lambda1[i]
}

最佳答案

每次调用rnorm(1)您将获得不同的随机抽奖,因此分子和分母中的随机值可能不同。

请注意 exp(x) / (1+exp(x))相当于1 / (1 + exp(-x)) ,所以你可以改为:

lambda1=0
out=matrix(NA,400,1)
for (i in 1:400){
lambda1[i+1]=(1/(1+exp(-(0.8*lambda1[i]+rnorm(1)))))
out[i]=lambda1[i]
}
summary(lambda1)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0.0000 0.4523 0.6352 0.6119 0.7719 0.9682

注意:对于非常大的向量,您可能会发现预分配 lambda1 更有效。并计算 out最后一口气(我假设您实际上想要 out 中的元素 2 到 401,而不是元素 1 到 400):
lambda1 <- rep(0, 401)
for (i in 1:400) lambda1[i+1]=(1/(1+exp(-(0.8*lambda1[i]+rnorm(1)))))
out <- matrix(tail(lambda1, -1))

关于logit 的 R 代码生成大于 1 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836083/

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