Gostaria de estimar a incerteza ou a confiabilidade de uma curva ajustada. Intencionalmente, não cito uma quantidade matemática precisa que estou procurando, pois não sei o que é.
Aqui (energia) é a variável dependente (resposta) e (volume) é a variável independente. Gostaria de encontrar a curva Energia-Volume, , de algum material. Então, eu fiz alguns cálculos com um programa de computador de química quântica para obter energia para alguns volumes de amostra (círculos verdes no gráfico).
Em seguida, ajustei esses exemplos de dados com a função Birch – Murnaghan : que depende de quatro parâmetros: . Também suponho que essa é a função de ajuste correta, portanto todos os erros vêm apenas do ruído das amostras. No que se segue, a função de ajuste vai ser escrito como uma função de .E 0 , V 0 , B 0 , B ' 0 ( E ) V
Aqui você pode ver o resultado (ajustando-se ao algoritmo de mínimos quadrados). A variável eixo y é e a variável do eixo-x é . A linha azul é o ajuste e os círculos verdes são os pontos de amostra.V
Agora preciso de alguma medida da confiabilidade (na melhor das hipóteses, dependendo do volume) dessa curva ajustada, , porque preciso calcular outras quantidades, como pressões de transição ou entalpias.
Minha intutição me diz que a curva ajustada é mais confiável no meio, então acho que a incerteza (por exemplo, faixa de incerteza) deve aumentar perto do final dos dados da amostra, como neste esboço:
No entanto, qual é o tipo de medida que estou procurando e como posso calculá-lo?
Para ser preciso, na verdade, existe apenas uma fonte de erro aqui: As amostras calculadas são barulhentas devido a limites computacionais. Portanto, se eu calcular um conjunto denso de amostras de dados, elas formarão uma curva irregular.
Minha idéia para encontrar a estimativa de incerteza desejada é calcular o seguinte '' erro '' com base nos parâmetros conforme você o aprende na escola ( propagação da incerteza ):
ΔE0,ΔV0,ΔB0ΔB′0
Essa é uma abordagem aceitável ou estou fazendo errado?
PS: Eu sei que também poderia resumir os quadrados dos resíduos entre minhas amostras de dados e a curva para obter algum tipo de "erro padrão", mas isso não depende do volume.
fonte
Respostas:
Este é um problema comum de mínimos quadrados!
Definindo
o modelo pode ser reescrito
onde os coeficientes estão algebricamente relacionados aos coeficientes originais viaβ= ( βEu)′
Este é simples de resolver algebricamente ou numericamente: escolher a solução para que , e são positivos. A única razão para fazer isso é obter estimativas de , e e para verificar se eles estão fisicamente significativa. Todas as análises do ajuste podem ser realizadas em termos de .B0 0, B′0 0 W B0 0, B′0 0, w E0 0 β
Essa abordagem não é apenas muito mais simples do que o ajuste não-linear, mas também é mais precisa: a matriz de variância-covariância para retornada por um ajuste não-linear é apenas uma aproximação quadrática local à distribuição da amostra desses parâmetros, enquanto que (para erros normalmente distribuídos na medição , de qualquer maneira), os resultados do OLS não são aproximações.( E0 0, B0 0, B′0 0, V0 0) E
Intervalos de confiança, intervalos de previsão, etc. podem ser obtidos da maneira usual sem a necessidade de encontrar esses valores: calcule-os em termos das estimativas e sua matriz de variância-covariância. (Até o Excel pode fazer isso!) Aqui está um exemplo, seguido pelo código (simples) que o produziu.β^
R
Se você estiver interessado na distribuição conjunta das estimativas de parâmetros originais, é fácil simular a partir da solução OLS: simplesmente gere realizações normais multivariadas de e converta-as nos parâmetros. Aqui está uma matriz de dispersão de 2000 dessas realizações. A forte curvilinearidade mostra por que o método Delta provavelmente apresenta resultados ruins.β
fonte
Existe uma abordagem padrão para isso chamada método delta. Você forma o inverso do hessiano da probabilidade logarítmica por seus quatro parâmetros. Há um parâmetro extra para a variação dos resíduos, mas ele não desempenha um papel nesses cálculos. Então você calcula a resposta prevista para os valores desejados da variável independente e calcula seu gradiente (a derivada wrt) nesses quatro parâmetros. Chame o inverso do Hessiano e o vetor gradiente . Você forma o produto da matriz vetorialI g
Isso pode ser feito para qualquer variável dependente no AD Model Builder. Um declara uma variável no local apropriado no código como este
e escreve o código para avaliar a variável dependente como esta
Observe que isso é avaliado para um valor da variável independente 2 vezes a maior observada no ajuste do modelo. Ajuste o modelo e obtenha o desvio padrão para essa variável dependente
Modifiquei o programa para incluir o código para calcular os limites de confiança para a função de volume de entalpia. O arquivo de código (TPL) parece
Em seguida, reajustei o modelo para obter os desenvolvedores padrão para as estimativas de H.
Eles são calculados para os valores de V observados, mas podem ser facilmente calculados para qualquer valor de V.
Foi apontado que este é realmente um modelo linear para o qual existe um código R simples para realizar a estimativa de parâmetros via OLS. Isso é muito atraente, especialmente para usuários ingênuos. No entanto, desde o trabalho de Huber há mais de trinta anos, sabemos ou devemos saber que provavelmente deve-se quase sempre substituir o OLS por uma alternativa moderadamente robusta. A razão pela qual isso não é feito rotineiramente, acredito, é que métodos robustos são inerentemente não-lineares. Deste ponto de vista, os métodos OLS simples e atraentes em R são mais uma armadilha do que um recurso. Uma vantagem da abordagem do AD Model Builder é o suporte integrado à modelagem não linear. Para alterar o código dos mínimos quadrados para uma mistura normal robusta, apenas uma linha do código precisa ser alterada. A linha
é alterado para
A quantidade de sobredispersão nos modelos é medida pelo parâmetro a. Se igual a 1,0, a variação é a mesma do modelo normal. Se houver inflação da variação por valores extremos, esperamos que a seja menor que 1,0. Para esses dados, a estimativa de a é de cerca de 0,23, de modo que a variação é de cerca de 1/4 da variação do modelo normal. A interpretação é que os valores discrepantes aumentaram a estimativa de variância em um fator de cerca de 4. O efeito disso é aumentar o tamanho dos limites de confiança dos parâmetros para o modelo OLS. Isso representa uma perda de eficiência. Para o modelo de mistura normal, os desvios padrão estimados para a função de volume de entalpia são
Vê-se que há pequenas mudanças nas estimativas pontuais, enquanto os limites de confiança foram reduzidos para cerca de 60% dos produzidos pelo OLS.
O ponto principal que quero destacar é que todos os cálculos modificados ocorrem automaticamente quando um altera a linha de código no arquivo TPL.
fonte
A validação cruzada é uma maneira simples de estimar a confiabilidade de sua curva: https://en.wikipedia.org/wiki/Cross-validation_(statistics)
A propagação da incerteza com diferenciais parciais é ótima: você realmente conhece e . No entanto, o programa que você está usando fornece apenas erros de ajuste (?). Eles serão otimistas demais (irrealisticamente pequenos). Δ B ′ΔE0,ΔV0,ΔB0 ΔB′
Você pode calcular o erro de validação de uma vez, deixando um de seus pontos afastados do ajuste e usando a curva ajustada para prever o valor do ponto que foi deixado de fora. Repita isso para todos os pontos, para que cada um seja deixado uma vez. Em seguida, calcule o erro de validação da sua curva final (curva ajustada com todos os pontos) como uma média dos erros de previsão.
Isso mostrará apenas o quão sensível é o seu modelo para qualquer novo ponto de dados. Por exemplo, não lhe dirá quão impreciso é o seu modelo de energia. No entanto, isso será uma estimativa de erro muito mais realista, um mero erro de ajuste.
Além disso, você pode plotar erros de previsão como uma função do volume, se desejar.
fonte