Gostaria de corrigir manualmente um certo coeficiente, digamos , e depois ajustar os coeficientes a todos os outros preditores, mantendo β 1 = 1,0 no modelo.
Como posso conseguir isso usando R? Eu particularmente gostaria de trabalhar com o LASSO ( glmnet
), se possível.
Como alternativa, como posso restringir esse coeficiente para um intervalo específico, digamos ?
Respostas:
Você precisa usar o
offset
argumento assim:Sobre a faixa ... Acho que isso não foi implementado
glmnet
. Se eles usam algum método numérico, convém cavar o código R e tentar restringi-lo por lá, mas você precisará de um bom e sólido histórico de programação.fonte
offset
realmente fazendo? Como é1.1*x1
determinado o valor da pergunta?offset
doglmnet
pacote, a resposta fornecida pelo Stat não faz sentido me. Quando executo fit1 beta)], não vejo β 1 = 1,0 . Você poderia esclarecer como o deslocamento está funcionando no seu exemplo? Para o intervalo dos betas, você pode usar os argumentos e .lower.limits
upper limits
Bem, vamos pensar. Você tem:
(para simplificar) Você quer forçar , então você querb1= 1
então você pode subtrair de cada lado deixando:x1
que pode então estimar .b2
fonte
Com relação à restrição de coeficientes para estar dentro de um intervalo, uma abordagem bayesiana de estimativa é um meio de conseguir isso.
Em particular, confiar-se-ia em uma cadeia de Markov Monte Carlo. Primeiro, considere um algoritmo de amostragem de Gibbs, que é como você ajustaria o MCMC em uma estrutura bayesiana sem a restrição. Na amostragem de Gibbs, em cada etapa do algoritmo, você coleta amostras da distribuição posterior de cada parâmetro (ou grupo de parâmetros), condicionada aos dados e a todos os outros parâmetros. A Wikipedia fornece um bom resumo da abordagem.
Uma maneira de restringir o alcance é aplicar uma etapa Metropolis-Hastings. A idéia básica é simplesmente jogar fora qualquer variável simulada que esteja fora de seus limites. Você pode continuar amostrando novamente até que esteja dentro de seus limites antes de passar para a próxima iteração. A desvantagem disso é que você pode ficar parado simulando várias vezes, o que torna o MCMC mais lento. Uma abordagem alternativa, originalmente desenvolvida por John Geweke em alguns artigos e estendida em um artigo de Rodriguez-Yam, Davis, Sharpe, é simular a partir de uma distribuição normal multivariada restrita. Essa abordagem pode lidar com restrições de desigualdade linear e não linear em parâmetros e eu tive algum sucesso com ela.
fonte
glmnet
.Não estou familiarizado com o LASSO ou
glmnet
, maslavaan
(abreviação de "análise de variáveis latentes") facilita vários modelos de regressão com restrições de igualdade e restrições de desigualdade de limite único (consulte a tabela na página 7 deste PDF ", lavaan: An R package para modelagem de equações estruturais " ). Não sei se você poderia ter limites superior e inferior no coeficiente, mas talvez você possa adicionar cada limite com linhas separadas, por exemplo:Obviamente, se você padronizar tudo antes de ajustar o modelo, não precisará se preocupar em impor um limite superior de 1 aos coeficientes de regressão. Eu diria que é melhor você omitir neste caso, caso algo dê errado! ( ainda
lavaan
está na versão beta, afinal ... eu já vi alguns resultados duvidosos em meu uso limitado até agora.)fonte