Eu tenho usado o Matlab para realizar mínimos quadrados sem restrição (mínimos quadrados comuns) e ele gera automaticamente os coeficientes, a estatística de teste e os valores de p.
Minha pergunta é que, ao executar mínimos quadrados restritos (coeficientes estritamente não negativos), ele apenas gera os coeficientes, SEM estatística de teste, valores de p.
É possível calcular esses valores para garantir significância? E por que não está disponível diretamente no software (ou em qualquer outro software?)
Respostas:
A resolução de mínimos quadrados não negativos (NNLS) baseia-se em um algoritmo que o diferencia dos mínimos quadrados regulares.
Expressão algébrica para erro padrão (não funciona)
Com mínimos quadrados regulares, você pode expressar valores de p usando um teste t em combinação com estimativas para a variação dos coeficientes.
Essa expressão para a variação da amostra da estimativa dos coeficientes é A variação dos erros geralmente será desconhecida mas pode ser estimado usando os resíduos. Essa expressão pode ser derivada algebricamente a partir da expressão dos coeficientes em termos das mediçõesθ^ Var(θ^)=σ2(XTX)−1 σ y
Isso implica / assume que o pode ser negativo e, portanto, quebra quando os coeficientes são restritos.θ
Matriz de informações inversa de Fisher (não aplicável)
A variação / distribuição da estimativa dos coeficientes também se aproxima assintoticamente da matriz de informações de Fisher observada :
Mas não tenho certeza se isso se aplica bem aqui. A estimativa do NNLS não é uma estimativa imparcial.
Método de Monte Carlo
Sempre que as expressões se tornarem muito complicadas, você pode usar um método computacional para estimar o erro. Com o método de Monte Carlo, você simula a distribuição da aleatoriedade do experimento, simulando repetições do experimento (recalculando / modelando novos dados) e, com base nisso, estima a variação dos coeficientes.
O que você pode fazer é tomar as estimativas observadas dos coeficientes do modelo e variância residual e com base nesses dados novos de computação (algumas milhares de repetições, mas depende da precisão desejada) a partir da qual você pode observar a distribuição (e variação e derivada disso a estimativa do erro) para os coeficientes. (e existem esquemas mais complicados para executar essa modelagem)θ^ σσ^
fonte
Se você estiver bem usando o RI, pense que também poderia usar
bbmle
amle2
função de para otimizar a função de probabilidade dos mínimos quadrados e calcular intervalos de confiança de 95% nos coeficientes nnls não negativos. Além disso, você pode levar em consideração que seus coeficientes não podem ficar negativos, otimizando o log de seus coeficientes, para que, em uma escala retro-transformada, eles nunca possam se tornar negativos.Aqui está um exemplo numérico que ilustra essa abordagem, aqui no contexto da desconvolução de uma superposição de picos cromatográficos em forma de gaussiana com ruído gaussiano: (quaisquer comentários são bem-vindos)
Primeiro vamos simular alguns dados:
Vamos agora desconvoluir o sinal barulhento medido
y
com uma matriz de faixas contendo cópias deslocadas do núcleo conhecido de desfocagem em forma de gaussianabM
(esta é a nossa matriz covariável / de design).Primeiro, vamos desconvoluir o sinal com mínimos quadrados não negativos:
Agora, vamos otimizar a probabilidade logarítmica negativa de nosso objetivo de perda gaussiana e otimizar o log de seus coeficientes para que, em uma escala retro-transformada, eles nunca possam ser negativos:
Não tentei comparar o desempenho desse método em relação à inicialização não paramétrica ou paramétrica, mas certamente é muito mais rápido.
Eu também estava inclinado a pensar que deveria poder calcular os intervalos de confiança de Wald para os
nnls
coeficientes não-negativos com base na matriz de informações de Fisher observada, calculada em uma escala de coeficientes transformados em log para reforçar as restrições de não-negatividade e avaliadas nasnnls
estimativas.Eu acho que isso acontece assim, e na verdade deve ser formalmente idêntico ao que eu fiz usando
mle2
acima:Os resultados desses cálculos e os retornados por
mle2
são quase idênticos (mas muito mais rápidos), então acho que isso é certo e corresponderia ao que estávamos implicitamente fazendo commle2
...Apenas reajustar as covariáveis com coeficientes positivos em um
nnls
ajuste usando um ajuste linear regular do modelo btw não funciona, pois esse ajuste do modelo linear não levaria em conta as restrições de não-negatividade e resultaria em intervalos de confiança sem sentido que poderiam ser negativos. Este artigo "Inferência exata de seleção pós-modelo para triagem marginal" de Jason Lee e Jonathan Taylor também apresenta um método para fazer inferência de seleção pós-modelo em coeficientes nnls não negativos (ou LASSO) e usa distribuições gaussianas truncadas para isso. Eu não vi qualquer implementação abertamente disponível deste método para NNLS fits embora - para ajustes Lasso há a selectiveInferencepacote que faz algo assim. Se alguém tiver uma implementação, entre em contato!No método acima, também é possível dividir os dados em um conjunto de treinamento e validação (por exemplo, observações ímpares e pares) e inferir as covariáveis com coeficientes positivos do conjunto de treinamento e, em seguida, calcular intervalos de confiança e valores de p do conjunto de validação. Isso seria um pouco mais resistente à super adaptação, mas também causaria uma perda de energia, uma vez que se usaria apenas metade dos dados. Eu não fiz isso aqui porque a restrição de não-negatividade em si já é bastante eficaz na proteção contra o excesso de ajuste.
fonte
Para ser mais específico sobre o método de Monte Carlo @Martijn referido, você pode usar o Bootstrap, um método de reamostragem que envolve a amostragem dos dados originais (com substituição) de vários conjuntos de dados para estimar a distribuição dos coeficientes estimados e, portanto, qualquer estatística relacionada, incluindo intervalos de confiança e valores-p.
O método amplamente utilizado é detalhado aqui: Efron, Bradley. "Métodos de inicialização: outro olhar sobre o canivete." Avanços nas estatísticas. Springer, Nova Iorque, NY, 1992. 569-593.
O Matlab implementou, consulte https://www.mathworks.com/help/stats/bootstrp.html, particularmente a seção intitulada Bootstrapping a Regression Model.
fonte