Как сделать линейную регрессию с помощью матрицы? - PullRequest
1 голос
/ 16 марта 2012

У меня проблема с выполнением линейной регрессии с тремя объектами Matrix.

m1 = matrix(c(1:10))
m2 = matrix(c(10:19))
m3 = matrix(c(100:109))

У меня нет проблем, если я делаю:

mod = lm(m1+m2 ~ m3+0)

У меня проблема, если я использую только ДВА матрицы, например:

m1 = matrix(c(1:20), ncol=2)
m2 = matrix(c(1:10))

mod = lm(m1 ~ m2+0)

в этом случае я получаю ДВА коэффициента для м2 :

Coefficients:
    [,1]   [,2] 
m2  1.000  2.429

но я не хочу, мне бы хотелось, чтобы два столбца матрицы m1 были такими же, как в предыдущем примере (как два отдельных столбца)

Как это сделать?

1 Ответ

2 голосов
/ 16 марта 2012

В первом примере вы суммируете два вектора столбцов по строкам и используете их в качестве цели.Для матрицы m1 я думаю, что вы хотите, чтобы в качестве предиктора были строки.

вроде:

m1 = матрица (c (1: 2000), ncol = 200)

m2 = матрица (c (1:10))

msum = применять (m1,1, сумма)

теперь используйте msum для ответа.

mod = lm (мсум ~ м2 + 0)

Это дает только один коэффициент.Я думаю, что это то, что вы хотите, но я все еще не уверен почему вы хотели бы этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...