0

いくつかのデータ:

a <- function(a) {3*a+12*a^2}
dom1 <- seq(-1,4,0.1)
vec1 <- a(dom1)[1:10]

c <- function(c) {-5*c^2+2*c^3}
dom2 <- seq(-0.1,0.2,0.01)
vec2 <- c(dom2)[1:10]

d <- function(d) {2*d^2+5*d^3+12*d^4}
dom3 <- seq(0.1,0.5,0.01)
vec3 <- d(dom3)[1:10]

w <- function(w) {7*w-3*w^2}
dom4 <- seq(0.5,2.5,0.05)
vec4 <- w(dom4)[1:10]

lm modelここで、より大きなデータセットに適合しlm(y~a+c+d+w)、lm パラメーターが次のようになっているとします。c(-0.2,0.2,0.1,0.6)

fun.mean <- function(a,c,d,w) {-0.2*a+0.2*c+0.1*d+0.6*w}

私が試したことは、期待どおりに動作しません:

関連する関数 (&domains) から生成されたベクトルをループします。

for(a in vec1) {
 for(c in vec2) {
  for(d in vec3) {
   for(w in vec4) {
    sol <- fun.mean(a,c,d,w)
    if (sol %% 1 > 0.40 & sol < 0.50) print(c(a,c,d,w))
  }}}}

だから私が探しているのは、 c(a,c,d,w) の組み合わせを見つけることです。これは 0.5 に等しいか、理想的には interval に等しくなります0.4-0.5

c(a,c,d,w)そのため、出力に関数を掛けてもfun.mean、目的の値が得られません (間隔 0.4-0.5)。私が間違っていることは何ですか?「ターゲット」値が与えられた c(a,c,d,w) 値を見つけるためのより良いアプローチはありますか? for loop非常に遅いため 、代わりになるものは何ですか。

4

1 に答える 1