Есть ли простой способ в R создать линейную регрессию по модели с 100 параметрами в R? Допустим, у нас есть вектор Y с 10 значениями и фрейм данных X с 10 столбцами и 100 строками. В математической записи я бы написал Y = X[[1]] + X[[2]] + ... + X[[100]]
. Как мне написать что-то подобное в синтаксисе R?
22
Ответы:
Попробуй это
источник
y ~ . + .^2
. И так далее.y ~ . + .:x1
даст вам взаимодействия каждой переменной (кромеx1
) сx1
. И так далее; Вы поняли идею.Отличные ответы!
Я бы добавил, что по умолчанию вызов
formula
adata.frame
создает аддитивную формулу для регрессии первого столбца на другие.Так что в случае ответа @ danas.zuokas вы можете даже сделать
который интерпретируется правильно.
источник
R
операторов :)Если есть другие столбцы, которые вы не хотите включать в качестве предикторов, вам придется удалить их,
X
прежде чем использовать этот трюк или использовать-
в формуле модели, чтобы исключить их. Например, если вы хотите исключить 67-й предиктор (имеющий соответствующее имяx67
), вы можете написатьКроме того, если вы хотите включить взаимодействия и т. Д., Вам нужно будет добавить их вручную как (например)
или убедитесь, что они введены в виде столбцов
X
.источник
Вы также можете использовать комбинацию из
formula
иpaste
функций.Данные настройки : Давайте представим , что мы быть_наст data.frame, содержащие предикторы
x1
кx100
и наши зависимые переменныхy
, но есть также неприятность переменныйasdfasdf
. Кроме того, переменные предиктора расположены в таком порядке, что они не являются непрерывными в data.frame.Представьте также, что у вас есть строка, содержащая имена переменных-предикторов. В этом случае это можно легко создать с помощью
paste
функции, но в других ситуацияхgrep
или для получения этой строки можно использовать другой подход.Применить подход : мы можем затем построить формулу следующим образом:
collapse
аргумент вставка+
между предикторамиformula
преобразует строку в объект формулы класса, подходящей дляlm
функции.В более общем смысле я использую следующую функцию довольно регулярно, когда я хочу предоставить переменные предиктора в качестве вектора имен переменных.
Например,
источник
do.call
формулу перед вызовомlm
.