gpt4 book ai didi

r - 在 R : Vary 1 parameter (column), 中编程敏感性分析保持其他不变。更好的方法?

转载 作者:行者123 更新时间:2023-12-04 10:36:17 27 4
gpt4 key购买 nike

我想测试计算对 4 个参数值的敏感性。为此,我想一次改变一个参数——即,改变变量 1,将变量 2-4 保持在“默认”值(例如 1)。我认为组织这些值的一种简单方法是在 data.frame() 中,其中每一列对应一个不同的变量,每一行对应一组应该进行计算的参数。然后我将遍历数据框的每一行,在给定该行中的参数值的情况下评估一个函数。

这似乎应该是一件简单的事情,但我找不到一种快速的方法来做到这一点。

问题可能是我对敏感性分析进行编程的总体方法,但我想不出一种好的、简单的方法来对上述 data.frame 进行编程。

我用于生成 data.frame 的代码:

Adj_vals <- c(seq(0, 1, by=0.1), seq(1.1, 2, by=0.1)) #a series of values for 3 of the parameters to use
A_Adj_vals <- 10^(seq(1,14,0.5)) #a series of values for another one of the parameters to use
n1 <- length(Adj_vals)
n2 <- length(A_Adj_vals)

data.frame(
"Dg_Adj"=c(Adj_vals, rep(1, n1*2+n2)), #this parameter's default is 1
"Df_Adj"=c(rep(1, n1), Adj_vals, rep(1, n1+n2)), #this parameter's default is 1
"sd_Adj"=c(rep(1, n1*2), 0.01, Adj_vals[-1], rep(1, n2)), #This parameter has default of 1, but unlike the others using Adj_vals, it can only take on values >0
"A"=c(rep(1E7, n1*3), A_Adj_vals) #this parameter's default is 10 million
)

此代码生成所需的 data.frame。有没有更简单的方法来实现相同的结果?我会接受一个答案,其中 sd_Adj承担 0而不是 0.01 .

最佳答案

如果这更好,这是很有争议的,但另一种方法是遵循以下模式:


defaults<-data.frame(a=1,b=1,c=1,d=10000000)
merge(defaults[c("b","c","d")],data.frame(a=c(seq(0, 1, by=0.1), seq(1.1, 2, by=0.1))))


这应该很容易组合成一个函数,该函数根据您正在合并的数据框中的列名自动从默认值中删除正确的列等

关于r - 在 R : Vary 1 parameter (column), 中编程敏感性分析保持其他不变。更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570521/

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