Implementação de laço não negativo em R


13

Estou procurando algum código-fonte aberto ou uma biblioteca existente que eu possa usar. Tanto quanto eu digo, o pacote glmnet não é muito facilmente extensível para cobrir o caso não negativo. Posso estar errado, qualquer pessoa com alguma idéia muito apreciada.

Por não negativo, quero dizer que todos os coeficientes são restritos a serem positivos (> 0).


1
Perdoe-me por perguntar, mas o que exatamente você quer dizer com laço não negativo? Manter todos os coeficientes> 0 ou permitir apenas previsões positivas? O Google não me esclareceu, mas parece algo que eu gostaria de saber.
Backlin 8/10/12

1
Desculpe por encerrar sua pergunta, mas é melhor perguntar e responder em www.crossvalidated.com. Eu sinalizei a pergunta para migração, para que os mods cuidem dela em breve. Dito isto, faça sua pergunta clara e explique exatamente o que você deseja. O especialista lasso em nosso grupo de pesquisa não poderia descobrir o que você estava visando ...
Joris Meys

Me desculpe por isso. Não negativo significa que todos os coeficientes são positivos. Eu tentei usar o pacote glmnet, mas isso resolve apenas para o caso geral.
gbh.

Respostas:


8

Dentro glmnetexiste a opção

lower.limits=0

que você pode usar e que seria a maneira apropriada de impor restrições de positividade aos coeficientes ajustados e se você definir o parâmetro alphacomo 1, estará ajustando o LASSO. Em combinação com o argumento, upper.limitsvocê também pode especificar restrições de caixa. O glmnetpacote também é muito mais rápido que o penalizedpacote, sugerido em outra resposta aqui.

Também está em preparação uma Rcppversão glmnetdisso que pode ajustar o laço e a rede elástica com suporte para restrições de positividade e caixa, e está disponível para teste em https://github.com/jaredhuling/ordinis


7

Veja o pacote penalizado para uma opção. A vinheta (PDF!) Que acompanha o pacote tem um exemplo disso na seção 3.9.

Defina essencialmente o argumento positive = TRUEna chamada para a penalized()função.


4

Isso e isso artigo demonstram que, em algumas condições, o limiar rígido da solução de mínimos quadrados não negativos pode ter desempenho equivalente ou melhor que a regularização L1 (LASSO), em termos de desempenho. Um exemplo é se sua matriz de design possui apenas entradas não negativas, o que geralmente ocorre.

Vale a pena conferir, pois o NNLS é amplamente suportado e também será mais fácil / rápido de resolver.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.