A equação de uma função exponencial é $ y = ae ^ {bx} $

Os dados são plotados conforme mostrado abaixo: Gráfico exponencial não transformado

Transformando isso para regressão linear: $ ln (y) = ln (a) + bx $

Esta transformação é mostrada no gráfico abaixo: Transformação

Então a equação de regressão linear é: $ ln (y) = -369,9778 + 0,187693x $

Como faço para transformá-la de volta na forma de $ y = ae ^ { bx} $ ??

Meu problema está em $ ln (a) = -369,9778 $. De como obter o valor de $ a $.

Mesmo o Excel não consegue obter a equação corretamente, mas existe uma linha de tendência? Não entendo como é derivado. A linha de tendência não representa o cenário real com base nos dados: Comportamento errado

Mas é um tanto preciso quando uso os pontos de dados mais recentes: É mais preciso quando obtenho os dados mais recentes

Os dados são os seguintes:

Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264 

Comentários

  • Eu não ‘ uso o Excel rotineiramente e não ‘ não sei qual é a linha adicionada em seu primeiro gráfico. É ‘ certamente não é exponencial, pois não é monotônico. Aconselho os alunos e colegas a nunca fazerem uma curva se puderem ‘ t explicar como foi produzido. É ‘ é provavelmente um polinômio ou spline.
  • Acabei de pressionar exponencial no Excel. Você ‘ está certo, apenas cliquei aleatoriamente no que senti que era. Estou tentando descobrir como ajustar adequadamente qualquer tipo de linha. Estou familiarizado apenas com a regressão linear.
  • Obrigado por fornecer um arquivo Excel em outro site. Eu ‘ peguei os dados e os listei em sua pergunta. Essa ‘ é uma maneira melhor de dar exemplos, cortando um ou dois outros programas, sem usar o Excel, o que muitas pessoas ‘ não fazem ou ‘ não tenha, e apenas dando às pessoas algo que elas possam copiar e colar em seus softwares favoritos.

Resposta

Essas duas regressões não fornecerão valores de parâmetro que possam ser transformados um no outro exatamente:

$ ln (y) ~ vs. ~ A + B ~ x $

$ y ~ vs. ~ a ~ exp (b ~ x) $

porque minimizam diferentes somas de quadrados, a saber, o seguinte, respectivamente:

$ \ Sigma_i (ln (y_i) – (A + B ~ x_i)) ^ 2 $

$ \ Sigma_i (y_i – a ~ exp (b ~ x_i)) ^ 2 $

e esses não são problemas de minimização equivalentes.

A primeira regressão pode ser resolvida para $ A $ e $ B $ usando regressão linear .

Para resolver a segunda regressão, comece resolvendo a primeira. Em seguida, use $ a = exp (A) $ e $ b = B $ como valores iniciais para resolver o segundo problema de regressão usando um solucionador de regressão não linear (ou seja, no Excel seria o Solver). Além disso, se o modelo de regressão não linear estiver suficientemente longe do modelo de regressão linear, então é possível que esses valores iniciais não sejam adequados, caso em que você precisará tentar outros valores iniciais.

Adicionado

Os dados foram adicionados à pergunta para que agora possamos realizar a ação sugerida discutida no parágrafo acima. Abaixo, mostramos o código R para fazer isso. Se você instalar o R em sua máquina, basta copiar e colar esse código no console do R.

Primeiro, lemos os dados em DF e depois executamos um modelo linear, isto é, regressão, de log(Total) vs. Year. Observe que log em R é a base de log e. Vemos que os coeficientes de regressão produzidos são A = -369,977814 e B = 0,187693 para a interceptação e a inclinação. Em seguida, extraímos a inclinação para a variável b para usar como um valor inicial na regressão não linear. Não precisamos da interceptação como um valor inicial, pois o algoritmo de regressão não linear, plinear, requer apenas valores iniciais para parâmetros não lineares. Em seguida, executamos a regressão não linear de Total vs. a * exp(b * Year). Os coeficientes que ele produz são b = 2.838264e-01 e a = 3.117445e-245. Em seguida, plotamos o resultado e vemos que ele parece razoavelmente próximo aos dados.

Em geral, ao realizar a otimização não linear, as considerações numéricas implicam que queremos que os parâmetros tenham aproximadamente a mesma magnitude, o que não é o caso. Isso sugere a re-parametrização do modelo para:

$ y ~ vs. ~ exp (a ~ + ~ b ~ x_i) $ [modelo não linear re-parametrizado]

e no final do código abaixo fazemos isso. Vemos que agora os parâmetros são a = -562,9959733 e b = 0.2838263 onde agora a é conforme definido na definição do modelo não linear reparamaterizado. Esses parâmetros são valores muito mais comparáveis, portanto, nosso modelo não linear reajustado parece preferível.

O gráfico seria semelhante ao mostrado para o primeiro modelo de regressão não linear.

Lines <- "Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264" DF <- read.table(text = Lines, header = TRUE) 

Agora execute isto:

# run linear regression model fit.lm <- lm(log(Total) ~ Year, DF) coef(fit.lm) ## (Intercept) Year ## -369.977814 0.187693 b <- coef(fm.lm)[[2]] b ## [1] 0.187693 # run nonlinear regresion model fit.nls <- nls(Total ~ exp(b * Year), DF, start = list(b = b), alg = "plinear") coef(fit.nls) ## b .lin ## 2.838264e-01 3.117445e-245 plot(Total ~ Year, DF) lines(fitted(fit.nls) ~ Year, DF, col = "red") a <- coef(fit.lm)[[1]] a ## [1] -369.9778 # run reparameterized nonlinear regression model fit2.nls <- nls(Total ~ exp(a + b * Year), DF, start = list(a = a, b = b)) coef(fit2.nls) ## a b ## -562.9959733 0.2838263 

captura de tela

Comentários

  • Isso ‘ está correto. Na prática, linearizar primeiro não é apenas mais fácil de implementar, porque ‘ é apenas uma questão de regressão depois disso; para dados como esses, parece razoável em vista da estrutura de erro implícita no gráfico de log $ y $ versus ano, notavelmente que a dispersão aparece quase até mesmo na escala logarítmica. Não ‘ não temos os dados brutos para verificar, mas em exemplos como este, a linearização parece improvável de ser problemática ou inferior.
  • A regressão linear falhou em fornecer o resposta desejada. Esse é o ponto principal da pergunta.
  • Eu não ‘ não leio a pergunta dessa forma. O OP não ‘ não entendia tudo o que estava sendo feito (a) em geral (b) pelo Excel. (É desconcertante que o OP tenha revisitado o tópico, mas não esteja respondendo a nenhuma das respostas mais longas até agora.)
  • A discussão na pergunta bem no final e os gráficos que a acompanham apontam que o que foi obtido da regressão linear não era o que se pretendia.
  • Há ‘ muito que é confuso e até contraditório na questão. Se os dados fossem exatamente exponenciais, não ‘ importaria como o modelo foi ajustado. É ‘ possivelmente uma escolha entre um ajuste intermediário que é inferior em valores altos; um ajuste mediano que presta mais atenção a eles; e pensando em um modelo bem diferente. O OP é a autoridade sobre o que os incomoda, mas (como dito) ainda ‘ não esclareceu nenhum detalhe importante. Apesar disso, as respostas levantam vários pontos que podem ser úteis ou interessantes para outras pessoas neste território.

Resposta

Você está usando o ano civil como $ x $, então a consequência inevitável é que $ a $ em $ y = a \ exp (bx) $ é, ou era, o valor de $ y $ no ano $ x = 0 $. Deixando de lado o ponto pedante de que não houve ano zero, que foi o ano anterior a $ 1 $ AD (CE), e a projeção mental de sua curva para trás deve sublinhar que o valor ajustado será (teria sido!) Muito pequeno, de fato $ 0 $ (mas ainda positivo, pois a função exponencial garante isso).

Você não fornece os dados originais para que possamos verificar, mas não vejo razão para duvidar do que você mostra. Eu considero $ \ exp (-369,9778) $ $ 2,09 \ vezes 10 ^ {- 161 } $, realmente muito pequeno. Portanto, o Excel está correto para as duas casas decimais que mostra. Além disso, você precisará mostrar seu resultado em notação de potência.

Se esse fosse meu problema, eu ajustaria em termos de diga $ a \ exp [b (x – 2000)] $; então $ a $ terá a interpretação mais fácil de $ y $ quando $ x = 2000 $ e pode ser comparado com os dados mais facilmente. (A precisão numérica não é prejudicada ambos, e pode ser ajudado.)

JW Tukey argumentou que deveríamos ajustar “pontos centrais”, não interceptos, e este exemplo sublinha o ponto. Autoridade: Roger Koenker em esta página dele .

Traçar em escala logarítmica sugere que o exponencial é apenas um ajuste aproximado, mas isso não é “t the question.

Discussão relacionada sobre a escolha de origem em Faz sentido usar uma variável de data em uma regressão?

EDITAR Dados os dados, eu os li no Stata.

Eu ajustei $ \ text {total} = a \ exp [b (\ text {year} – 2000)] $ regredindo $ \ ln (\ text {total}) $ em $ \ text {year} – 2.000 $.

Isso produz uma equação linear de $ 5,40827 + 0,187693 (\ text {year} – 2000) $.

O “centercept” para $ 2.000 $, portanto, se transforma novamente em $ 223 $ ou mais. O valor dos dados era $ 123 $. Um detalhe importante aqui é que $ 0,187693 $ corresponde ao resultado do Excel.

I em seguida, ajustou a mesma equação diretamente usando mínimos quadrados não lineares e obteve ponto central de $ 105,2718 $ e coeficiente de $ 0,2838264 $. Isso é muito diferente e não é surpreendente, pois os mínimos quadrados não lineares não descontam t Os altos valores da linearização por logaritmos. Seu próprio gráfico em escala logarítmica mostra que os valores mais altos em anos posteriores são subestimados pelo ajuste em escala logarítmica. Por outro lado, os mínimos quadrados não lineares se inclinam para o outro lado.

Mesmo se um exponencial parecesse um ajuste muito bom, eu não tentaria extrapolá-lo muito no futuro.Com esses dados, onde um exponencial é a melhor aproximação zero grosseira e com uma extrapolação mais modesta do que você pediu, a incerteza é séria:

insira a descrição da imagem aqui

Comentários

  • Obrigado por essas referências i ‘ Vou ler sobre eles. Não sou muito bom com os fundamentos sobre as origens das equações e como elas funcionam, então aplico as ferramentas incorretamente. Bem, eu acho que ‘ é por que a maioria das pessoas acha matemática difícil

Resposta

Para começar, sugiro que você procure os vídeos da Khan Academy sobre funções de log e exponenciais.

Você deve ficar bem simplesmente fazendo a = e^(-369.9778).

Comentários

  • Não ‘ não entendo muito bem como você chegou a esse valor. Não é ‘ t log(a) = -369.9778 o mesmo que 10^(-369.9778) = a?
  • Espere, desculpe você ‘ acertou ‘ s e^(-369.9778). Embora não explique o comportamento das linhas de tendência e da equação de regressão. Talvez haja ‘ algo que eu ‘ que esteja faltando
  • Quando você escreveu a pergunta pela primeira vez, pensei que fosse um simples problema de matemática. Agora entendi.
  • Desculpe pela pergunta enganosa. Quando fiz a pergunta pela primeira vez, também pensei que era minha álgebra falha que causava o problema. Eu ‘ não sou tão bom com os fundamentos da matemática, tenho muitos buracos para preencher.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *