Me gustaría corregir manualmente un cierto coeficiente, digamos , luego ajustar los coeficientes a todos los demás predictores, mientras en el modelo.β 1 = 1.0
¿Cómo puedo lograr esto usando R? En particular, me gustaría trabajar con LASSO ( glmnet
) si es posible.
Alternativamente, ¿cómo puedo restringir este coeficiente a un rango específico, digamos ?
Respuestas:
Necesitas usar el
offset
argumento así:Sobre el rango ... No creo que se haya implementado en
glmnet
. Si usan algún método numérico, es posible que desee profundizar en el código R e intentar restringirlo allí, pero necesitará un fondo de programación bueno y sólido.fuente
offset
haciendo realmente? ¿Cómo se1.1*x1
determina el valor de la pregunta?offset
delglmnet
paquete, la respuesta proporcionada por Stat no me hace sentido. Cuando ejecuto fit1 beta)] no veo ninguna . ¿Podría aclarar cómo funciona el desplazamiento en su ejemplo? Para el rango de las versiones beta, puede usar los argumentos y .lower.limits
upper limits
Bueno, pensemos. Tienes:
(para que sea simple) Desea forzar así que quiereb1=1
así que puedes restar de cada lado dejando:x1
que luego puede estimar .b2
fuente
Con respecto a los coeficientes de restricción para estar dentro de un rango, un enfoque bayesiano para la estimación es un medio para lograr esto.
En particular, uno confiaría en una Markov Chain Monte Carlo. Primero, considere un algoritmo de muestreo de Gibbs, que es cómo encajaría el MCMC en un marco bayesiano sin la restricción. En el muestreo de Gibbs, en cada paso del algoritmo, toma muestras de la distribución posterior de cada parámetro (o grupo de parámetros) condicional a los datos y a todos los demás parámetros. Wikipedia proporciona un buen resumen del enfoque.
Una forma de restringir el rango es aplicar un paso Metropolis-Hastings. La idea básica es simplemente descartar cualquier variable simulada que esté fuera de sus límites. A continuación, puede volver a tomar muestras hasta que esté dentro de sus límites antes de pasar a la siguiente iteración. La desventaja de esto es que puede quedarse atascado simulando muchas veces, lo que ralentiza el MCMC. Un enfoque alternativo, desarrollado originalmente por John Geweke en algunos documentos y extendido en un artículo por Rodriguez-Yam, Davis, Sharpe es simular a partir de una distribución normal multivariada restringida. Este enfoque puede manejar restricciones de desigualdad lineales y no lineales en los parámetros y he tenido cierto éxito con él.
fuente
glmnet
.No estoy familiarizado con LASSO o
glmnet
, perolavaan
(abreviatura de "análisis de variables latentes") facilita múltiples modelos de regresión con restricciones de igualdad y restricciones de desigualdad de límite único (consulte la tabla en la página 7 de este PDF, "lavaan: un paquete R para el modelado de ecuaciones estructurales " ). No sé si podría tener límites superiores e inferiores en el coeficiente, pero tal vez podría agregar cada límite con líneas separadas, por ejemplo:Por supuesto, si está estandarizando todo antes de ajustar el modelo, no debería tener que preocuparse por imponer un límite superior de 1 en sus coeficientes de regresión de todos modos. Diría que es mejor omitirlo en este caso, ¡en caso de que algo salga mal! ( todavía
lavaan
está en beta después de todo ... he visto algunos resultados ligeramente sospechosos en mi propio uso limitado hasta ahora).fuente