将误差添加到依赖值的变换向量中
发布时间:2020-12-13 20:47:37 所属栏目:百科 来源:网络整理
导读:我想模拟(添加error / rnorm)一个依赖值的变换向量,但我不知道如何保持变换的属性.我做了一个玩具示例来展示我的问题. 我有一个区间观测矢量(obs),我将其转换为建模: set.seed(123)sd=0.1obs=rnorm(10,10,3) # each value is an age class#transform observ
我想模拟(添加error / rnorm)一个依赖值的变换向量,但我不知道如何保持变换的属性.我做了一个玩具示例来展示我的问题.
我有一个区间观测矢量(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的总和应该仍然是一个. 我可以对预测值进行逆变换并模拟它,但是我的sd不再“合适”了. 我该如何处理?在进行上述操作时,我是否需要以某种方式转换我的SD(如果是这样的话)?或者还有其他方法吗?
这个问题不能删除,因为它有一个赏金,虽然我想这样做,因为问题是由我的逆变换函数中的一个小错误引起的.现在它工作正常;我可以添加错误,观察总和就是一个.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |