Eu tenho 2 variáveis, ambas da classe “numérica”:
> head(y)
[1] 0.4651804 0.6185849 0.3766175 0.5489810 0.3695258 0.4002567
> head(x)
[1] 59.32820 68.46436 80.76974 132.90824 216.75995 153.25551
Eu os plotei e agora gostaria de ajustar um modelo exponencial aos dados (e adicioná-lo ao plot), mas não consigo encontrar nenhuma informação sobre modelos de ajuste para dados multivariados em R! Só para dados univariados, alguém pode ajudar? Eu nem sei por onde começar … Obrigado!
Comentários
- Isso é um pouco confuso. Você diz que tem dois " variáveis " independentes (eu prefiro " preditor ", mas que ' não é importante). Você tem algum " dependente " / " variáveis de resposta "? Se ambas fossem variáveis de resposta, posso imaginar o ajuste de uma distribuição de probabilidade bivariada paramétrica (com ou sem variáveis preditoras das quais os ' s parâmetros de distribuição dependiam) – ou uma estimativa de densidade de kernel 2D. Talvez você pudesse explicar o contexto um pouco mais. (PS quem quer ' se estiver votando positivamente na pergunta, você deve saber o que significa … alguém se importa em intervir?)
- Em qualquer caso, você ' d melhor ir para crossvalidated.com para essas perguntas. ou para um site obscuro chamado Google. Ele encontrou informações sobre o ajuste de modelos a dados multivariados. Bastante (4 milhões, duzentos e trinta mil, para ser exato)
- Eu ' d recomendo bing – é um mecanismo de decisão, afinal, os mecanismos de pesquisa são então século 20 … basta olhar para o Yahoo e Ask Jeeves, quão irrelevantes eles são hoje?!?
- @Ben Bolker – Obrigado por ajudar, eu tirei o independente, porque não era correto. O que tenho é a distância entre os locais (x) e as correlações de precipitação entre os locais (y)
- note que você terá que usar métodos especiais se quiser fazer inferências estatísticas sobre esses dados, porque se as distâncias foram calculados em um conjunto comum de locais, eles não são independentes – pesquisa, por exemplo para " Teste Mantel "
Resposta
Não tenho certeza do que você está perguntando, porque seu jargão está errado. Mas supondo que suas variáveis não sejam independentes umas das outras (se fossem, então eles não têm relação para encontrar) Vou tentar. Se x
for sua variável independente (ou preditora) e y
for sua variável dependente (ou resposta), isso deve funcionar.
# generate data beta <- 0.05 n <- 100 temp <- data.frame(y = exp(beta * seq(n)) + rnorm(n), x = seq(n)) # plot data plot(temp$x, temp$y) # fit non-linear model mod <- nls(y ~ exp(a + b * x), data = temp, start = list(a = 0, b = 0)) # add fitted curve lines(temp$x, predict(mod, list(x = temp$x)))
Comentários
- obrigado por sua resposta, peguei a palavra " independente ", como você apontou, não ' não fazia sentido. Usando seu código para meus dados, posso ajustar o modelo, mas o resultado são dezenas de linhas no gráfico em vez de apenas uma. Alguma ideia do porquê?
- @sbg – Não, desculpe, não consigo ' não pensar em um motivo para isso.
nls()
se encaixa em um modelo? - Acho que sim, eu obtenho: Modelo de modelo de regressão não linear: y ~ exp (a + b * x) dados: DF ab -0,535834 -0,002024 soma dos quadrados residual: 18,62 Número de iterações para convergência: 6 Tolerância de convergência alcançada: 8,08e-06
- @sbg tente classificar seu
x
variável:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))