4

申请很容易,但这对我来说是一个简单的破解:

在多参数回归中,优化器用于找到参数函数的最佳拟合,例如 x1,x2 数据。通常,特定于函数的优化器如果尝试优化转换后的参数(例如使用 R 优化器,例如 DEoptim、nls.lm),可以更快。根据我的经验,从一个参数函数对不同参数进行不同的转换甚至更好。

我希望将 x.trans 中的不同函数(参见下文)应用于 x.val 中不同但位置对应的元素:

一个可以使用的模拟示例。

#initialise
x.val <- rep(100,5);      EDIT: ignore this part ==>  names(x.val) <- x.names
x.select <- c(1,0,0,1,1)
x.trans <- c(log10(x),exp(x),log10(x),x^2,1/x)

#select required elements, and corresponding names
x.val = subset(x.val, x.select == 1)
x.trans = subset(x.trans, x.select == 1)

# How I tried: apply function in x.trans[i] to x.val[i]
...

有任何想法吗?(我尝试过 apply 和 sapply 但无法获取存储在 x.trans 中的函数)

4

1 回答 1

11

您必须改用它:

x.trans <- c(log10,exp,log10,function(x)x^2,function(x)1/x)

然后这个:

mapply(function(f, x) f(x), x.trans, x.val)
于 2013-07-05T14:01:12.793 回答