Оптимизация наименьших квадратов в R


Мне интересно, как можно было бы решить следующую задачу в R.

Имеем вектор v (из n элементов) и матрицу B (размерности m x n). Например:

    > v 
    [1] 2 4 3 1 5 7

    > B
         [,1] [,2] [,3] [,4] [,5] [,6]
    [1,]    2    1   5    5    3    4
    [2,]    4    5   6    3    2    5
    [3,]    3    7   5    1    7    6

Я ищу m - длинный вектор u такой, что

    sum( ( v - ( u %*% B) )^2 )

Минимизируется (т. е. минимизирует сумму квадратов).

1 2

1 ответ:

Вы описываете линейную регрессию, которую можно выполнить с помощью функции lm:

coefficients(lm(v~t(B)+0))
#      t(B)1      t(B)2      t(B)3 
#  0.2280676 -0.1505233  0.7431653