gpt4 book ai didi

r - 将误差添加到依赖值的转换向量

转载 作者:行者123 更新时间:2023-12-04 15:39:36 26 4
gpt4 key购买 nike

我想模拟(添加错误/范数)一个转换后的依赖值向量,但我不知道如何在这样做时保持转换的属性。我做了一个玩具示例来演示我的问题。

我有一个区间观察向量 (obs),我将其转换为建模:

set.seed(123)
sd=0.1
obs=rnorm(10,10,3) # each value is an age class

#transform observations (in reality something more complex based on cumulative logits)
obs=obs/sum(obs)

这些进入一个模型,根据转换估计标准偏差:
# model
predict=function(x){
pred=c(1:10)^x
pred=pred/sum(pred)
return(pred)
}

model= function(x){
nll=-sum(mapply(dnorm,predict(x),obs,sd)) #sd is estimated in reality
return(nll)
}

mypar=optim(0,model,lower=0,upper=2,method='Brent')$par

# from my model I get predictions
out=predict(mypar)

# I would now like to simulate observations like this :
# (in reality I do this for predicted future values)
simu=mapply(rnorm,1,out,sd)
sum(simu)
[1] 1.208622

但是如果我这样做,我的模拟当然不再遵循转换规则......在这个玩具箱中,simu 的总和应该仍然是 1。

我可以对预测值进行逆变换并模拟它,但是我的 sd 不再“合适”了。

我该如何处理?在执行上述操作时,我是否需要以某种方式转换我的 sd(如果需要,如何转换)?或者还有其他方法吗?

最佳答案

这个问题不能删除,因为它有赏金,尽管我想这样做是因为问题是由我的逆变换函数中的一个小错误引起的。现在它工作正常;我可以添加错误并且观察值的总和为一。

关于r - 将误差添加到依赖值的转换向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783540/

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