¿Hay una manera fácil en R de crear una regresión lineal sobre un modelo con 100 parámetros en R? Digamos que tenemos un vector Y con 10 valores y un marco de datos X con 10 columnas y 100 filas. En notación matemática, escribiría Y = X[[1]] + X[[2]] + ... + X[[100]]. ¿Cómo escribo algo similar en la sintaxis R?
22

Respuestas:
Prueba esto
fuente
y ~ . + .^2. Y así.y ~ . + .:x1le dará las interacciones de cada variable (exceptox1) conx1. Y así; entiendes la idea.Grandes respuestas!
Agregaría eso de forma predeterminada, invocar
formulaadata.framecrea una fórmula aditiva para hacer retroceder la primera columna sobre las otras.Entonces, en el caso de la respuesta de @ danas.zuokas, incluso puedes hacer
que se interpreta correctamente
fuente
Rlos operadores :)Si cada fila es una observación y cada columna es un predictor, de modo que es un vector de longitud y es una matriz ( en este caso), puede hacerlo conn X n × p p = 100Y n X n×p p=100
Si hay otras columnas que no desea incluir como predictores, deberá eliminarlas
Xantes de usar este truco o usar-en la fórmula del modelo para excluirlas. Por ejemplo, si desea excluir el 67o predictor (que tiene el nombre correspondientex67), entonces podría escribirAdemás, si desea incluir interacciones, etc., deberá agregarlas manualmente como (por ejemplo)
o asegúrese de que se ingresen como columnas de
X.fuente
También puede usar una combinación de las funciones
formulaypaste.Los datos de configuración : Imaginemos que tenemos un hoja.de.datos que contiene las variables de predicción
x1ax100y la variable dependientey, sino que también es una variable estorboasdfasdf. Además, las variables predictoras se organizan en un orden tal que no todas son contiguas en el data.frame.Imagine también que tiene una cadena que contiene los nombres de las variables predictoras. En este caso, esto se puede crear fácilmente usando la
pastefunción, pero en otras situaciones,grepo se puede usar algún otro enfoque para obtener esta cadena.Aplicar enfoque : luego podemos construir una fórmula de la siguiente manera:
collapseargumento se inserta+entre las variables predictorasformulaconvierte la cadena en un objeto de fórmula de clase adecuada para lalmfunción.De manera más general, utilizo la siguiente función con bastante regularidad cuando deseo suministrar las variables predictoras como vector de nombres de variables.
P.ej,
fuente
do.callevaluar la fórmula antes de llamarlm.