Как рассчитать оптимальное количество независимой переменной, чтобы получить минимальный выход модели? - PullRequest
0 голосов
/ 24 апреля 2019

В RI сделана модель множественной линейной регрессии с 10 переменными, после того, как у меня есть модель с коэффициентами, я хотел бы знать, как рассчитать минимальное значение каждой независимой переменной, которое дало бы мне глобальное минимальное значение выходных данных » у "от модели?

Я попробовал оптимизированный пакет, который я прочитал, но я получаю ошибку

 Error in fn(par, ...) : could not find function "fn"

### calculate model
fit <- lm(Y ~., data=df2)

### create equation in function with parameters and coefficients to get ### global mínimum and with which values each value gets to that mínimum

f <- function(X,X1,X2,X3,X4,X5,X6,X7,X8,X9) -210.50200438 - 1.08319034 * X +  0.07467384 * X1  + 0.02106764 * X2 + 0.08280658 * X3 + 2.07585559 * X4 + 5.09223561 * X5 + -7.57592770 * X6 + 1.62970544 * X7 + 0.45169896 * X8  - 0.32157245 * X9

### Variables
X <- seq(19,75,by=1)
X1 <- seq(3780,9183,by=100)
X2 <- seq(7534,15840,by=100)
X3 <- seq(2810,5100,by=100)
X4 <- seq(185,596,by=1)
X5 <- seq(1.20,48.1,by=0.1)
X6 <- seq(38,78,by=1)
X7 <- seq(33,100,by=1)
X8 <- seq(160,358,by=1)
X9 <- seq(42,458,by=1)
z <- outer(X,X1,X2,X3,X4,X5,X6,X7,X8,X9,f) 
optim(X,X1,X2,X3,X4,X5,X6,X7,X8,X9,f)

Я хочу знать, что является глобальным минимумом "y" и значениями для каждой независимой переменной, чтобы достичь этого минимума, однако я получаю эту ошибку с optim, если это не то, что я должен использовать, пожалуйста, сообщите мне как я мог достичь этого.

Спасибо

1 Ответ

0 голосов
/ 24 апреля 2019

Как указано в комментариях @Luis, примите минимальное значение вашей переменной, если коэффициент положительный, и максимальное значение, если коэффициент отрицательный.

### Variables
X <- seq(19, 75, by = 1)
X1 <- seq(3780, 9183, by = 100)
X2 <- seq(7534, 15840, by = 100)
X3 <- seq(2810, 5100, by = 100)
X4 <- seq(185, 596, by = 1)
X5 <- seq(1.20, 48.1, by = 0.1)
X6 <- seq(38, 78, by = 1)
X7 <- seq(33, 100, by = 1)
X8 <- seq(160, 358, by = 1)
X9 <- seq(42, 458, by = 1)

f <- function(X, X1, X2, X3, X4, X5, X6, X7, X8, X9)
  (- 210.50200438 
   - 1.08319034 * X 
   + 0.07467384 * X1  
   + 0.02106764 * X2 
   + 0.08280658 * X3 
   + 2.07585559 * X4 
   + 5.09223561 * X5
   - 7.57592770 * X6 
   + 1.62970544 * X7 
   + 0.45169896 * X8  
   - 0.32157245 * X9)

f(max(X), min(X1), min(X2), min(X3), min(X4),  min(X5), max(X6), min(X7), min(X8), max(X9))
...