2017-01-25 14 views
-2

Я хочу свести к минимуму функцию (rmse) в R так же, как solver делает в excel. Использование ограниченных vaiables (I) и кондиционирования оно дляR-программирование - свести к минимуму функцию (RMSE) с ограниченными переменными

**i >= 0 && i<=2** 

ac = c(85,95,79,88,90,99,111,99,100,110) 
ff = c(100,110,105,95,115,105,110,120,105,110) 
ff1 = ff[2:5] ;ac1 = ac[2:5] 
i=1.1 #Assume-Constraint variable 
revff = ff1*i 
dev1 = abs(ac1-revff) 
rmse_function = function(ac1,ff1,i) sqrt(sum(abs(ac1-ff1*i)^2)) 

Я хочу, чтобы минимизировать функцию RMSE изменив переменную я.

+0

'rmse' не является функцией. – Spacedman

+0

Здравствуйте, я обновил функцию –

ответ

0

Написать функцию так ее аргумент первого вы хотите, чтобы свести к минимуму более, используйте optimise:

> rmse_function = function(i,ac1,ff1)sqrt(sum(abs(ac1-ff1*i)^2)) 
> optimise(rmse_function,c(0,2),ac1=ac1, ff1=ff1) 
$minimum 
[1] 0.8254548 

$objective 
[1] 13.87804 

Таким образом, минимум на i=0.825 и функция имеет значение 13.87 там.

+0

Спасибо! Это работало как шарм, теперь я даже написал его для Weighted Average и MAE. –