¿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 ~ . + .:x1
le dará las interacciones de cada variable (exceptox1
) conx1
. Y así; entiendes la idea.Grandes respuestas!
Agregaría eso de forma predeterminada, invocar
formula
adata.frame
crea 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
R
los 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
X
antes 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
formula
ypaste
.Los datos de configuración : Imaginemos que tenemos un hoja.de.datos que contiene las variables de predicción
x1
ax100
y 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
paste
función, pero en otras situaciones,grep
o se puede usar algún otro enfoque para obtener esta cadena.Aplicar enfoque : luego podemos construir una fórmula de la siguiente manera:
collapse
argumento se inserta+
entre las variables predictorasformula
convierte la cadena en un objeto de fórmula de clase adecuada para lalm
funció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.call
evaluar la fórmula antes de llamarlm
.