A pergunta acima diz tudo. Basicamente, minha pergunta é para uma função de ajuste genérico (poderia ser arbitrariamente complicada) que não será linear nos parâmetros que estou tentando estimar, como escolher os valores iniciais para inicializar o ajuste? Estou tentando fazer mínimos quadrados não lineares. Existe alguma estratégia ou método? Isso foi estudado? Alguma referência? Algo além de adivinhação ad hoc? Especificamente, no momento, uma das formas de ajuste com as quais estou trabalhando é uma forma gaussiana e linear com cinco parâmetros que estou tentando estimar, como
onde (dados de abscissa) e y = log 10 (dados ordenados), o que significa que no espaço de log-log meus dados se parecem com uma linha reta mais um solavanco que eu estou aproximando por um gaussiano. Não tenho teoria, nada para me guiar sobre como inicializar o ajuste não-linear, exceto, talvez, gráficos e globos oculares como a inclinação da linha e qual é o centro / largura do solavanco. Mas eu tenho mais de cem desses ajustes para fazê-lo, em vez de fazer gráficos e adivinhar, eu preferiria alguma abordagem que possa ser automatizada.
Não consigo encontrar nenhuma referência, na biblioteca ou online. A única coisa em que consigo pensar é escolher aleatoriamente os valores iniciais. O MATLAB oferece para escolher valores aleatoriamente entre [0,1] distribuídos uniformemente. Portanto, com cada conjunto de dados, eu executo o ajuste inicializado aleatoriamente mil vezes e, em seguida, escolho aquele com o r 2 mais alto ? Alguma outra (melhor) ideia?
Adendo # 1
Primeiro, aqui estão algumas representações visuais dos conjuntos de dados apenas para mostrar a vocês que tipo de dados eu estou falando. Estou postando os dados em sua forma original sem qualquer tipo de transformação e, em seguida, sua representação visual no espaço de log-log, uma vez que esclarece alguns dos recursos dos dados enquanto distorce outros. Estou postando uma amostra de dados bons e ruins.
Cada um dos seis painéis de cada figura mostra quatro conjuntos de dados plotados em vermelho, verde, azul e ciano e cada conjunto de dados possui exatamente 20 pontos de dados. Estou tentando encaixar cada um deles com uma linha reta mais uma gaussiana por causa dos solavancos vistos nos dados.
A primeira figura é alguns dos bons dados. A segunda figura é o gráfico log-log dos mesmos dados válidos da figura um. A terceira figura é alguns dos dados incorretos. A quarta figura é o gráfico log-log da figura três. Há muito mais dados, esses são apenas dois subconjuntos. A maioria dos dados (cerca de 3/4) é boa, semelhante aos bons dados que mostrei aqui.
Agora, alguns comentários, por favor, tenham paciência comigo, pois isso pode demorar, mas acho que todos esses detalhes são necessários. Vou tentar ser o mais conciso possível.
Originalmente, eu esperava uma lei de energia simples (ou seja, linha reta no espaço de log-log). Quando plotei tudo no espaço de log-log, vi um aumento inesperado em torno de 4,8 mHz. A colisão foi minuciosamente investigada e foi descoberta em outros trabalhos também, por isso não é que erramos. Está fisicamente lá e outros trabalhos publicados mencionam isso também. Então, acabei de adicionar um termo gaussiano à minha forma linear. Observe que esse ajuste deveria ser feito no espaço de log-log (daí minhas duas perguntas, incluindo esta).
Agora, depois de ler a resposta de Stumpy Joe Pete para outra pergunta minha (que não está relacionada a esses dados) e de ler isso e isso e fazer referência a elas (material de Clauset), percebo que não devo caber no log-log espaço. Então agora eu quero fazer tudo no espaço pré-transformado.
Pergunta 1: Observando os bons dados, ainda acho que um linear mais um gaussiano no espaço pré-transformado ainda é uma boa forma. Gostaria muito de ouvir de outras pessoas que têm mais experiência em dados o que pensam. Gaussian + linear é razoável? Devo fazer apenas um gaussiano? Ou uma forma completamente diferente?
Perguntas 2: Qualquer que seja a resposta à pergunta 1, eu ainda precisaria (provavelmente) de mínimos quadrados não lineares, por isso ainda precisaria de ajuda com a inicialização.
Nos dados em que vemos dois conjuntos, preferimos muito capturar a primeira colisão em torno de 4-5 mHz. Portanto, não quero adicionar mais termos gaussianos, e nosso termo gaussiano deve estar centrado no primeiro solavanco, que quase sempre é o maior solavanco. Queremos "mais precisão" entre 0.8mHz e cerca de 5mHz. Não nos importamos muito com as frequências mais altas, mas também não queremos ignorá-las completamente. Então, talvez algum tipo de pesagem? Ou B pode ser inicializado sempre em torno de 4.8mHz?
Os dados de abscissa são a frequência em unidades de milihertz, denotados por . A ordenada dados é um coeficiente que são computação, denotar que por L . Portanto, nenhuma transformação de log e o formulário é
- é frequência, é sempre positivo.
- é um coeficiente positivo. Então, estamos trabalhando no primeiro quadrante.
- , a amplitude sempre deve ser positiva também, eu acho, porque estamos apenas lidando com solavancos. Quando olho para os dados, sempre vejo picos e sem vales. Parece que em todos os dados existem vários inchaços em frequências mais altas. O primeiro solavanco é sempre muito maior que os outros. Em dados bons, os solavancos secundários são muito fracos, mas em dados ruins (painéis 2 e 5, por exemplo), os solavancos secundários são fortes. Então, na verdade, nãotemos um vale, mas sim dois solavancos. Significando que a amplitude A > 0 . E como nos preocupamos principalmente com o primeiro pico, mais uma razão para A ser positivo.
- é a largura do solavanco. Eu imagino que é simétrico em torno de zero significado
Perguntas 3: O que vocês acham extrapolar dessa maneira neste caso? Quaisquer prós / contras? Alguma outra idéia para extrapolação? Novamente, nos preocupamos apenas com as frequências mais baixas, extrapolando entre 0 e 1mHz ... às vezes, frequências muito pequenas, próximas de zero. Eu sei que este post já está empacotado. Fiz essa pergunta aqui porque as respostas podem estar relacionadas, mas se vocês preferirem, posso separar essa pergunta e fazer outra mais tarde.
Por fim, aqui estão dois conjuntos de dados de amostra, mediante solicitação.
0.813010000000000 0.091178000000000 0.012728000000000
1.626000000000000 0.103120000000000 0.019204000000000
2.439000000000000 0.114060000000000 0.063494000000000
3.252000000000000 0.123130000000000 0.071107000000000
4.065000000000000 0.128540000000000 0.073293000000000
4.878000000000000 0.137040000000000 0.074329000000000
5.691100000000000 0.124660000000000 0.071992000000000
6.504099999999999 0.104480000000000 0.071463000000000
7.317100000000000 0.088040000000000 0.070336000000000
8.130099999999999 0.080532000000000 0.036453000000000
8.943100000000001 0.070902000000000 0.024649000000000
9.756100000000000 0.061444000000000 0.024397000000000
10.569000000000001 0.056583000000000 0.025222000000000
11.382000000000000 0.052836000000000 0.024576000000000
12.194999999999999 0.048727000000000 0.026598000000000
13.008000000000001 0.045870000000000 0.029321000000000
13.821000000000000 0.041454000000000 0.067300000000000
14.633999999999999 0.039596000000000 0.081800000000000
15.447000000000001 0.038365000000000 0.076443000000000
16.260000000000002 0.036425000000000 0.075912000000000
A primeira coluna são as frequências em mHz, idênticas em cada conjunto de dados. A segunda coluna é um bom conjunto de dados (dados bons, figura um e dois, painel 5, marcador vermelho) e a terceira coluna é um conjunto de dados incorretos (dados ruins, figura três e quatro, painel 5, marcador vermelho).
Espero que isso seja suficiente para estimular uma discussão mais esclarecida. Obrigado a todos.