Подгонка экспоненциальной модели к данным


21

У меня есть 2 переменные, оба из класса "числовой":

> 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

Я построил их, и теперь я хотел бы вписать экспоненциальную модель в данные (и добавить ее в график), но я не могу найти никакой информации о подборе моделей для многомерных данных в R! Может ли кто-нибудь помочь только для унификации данных? Я даже не знаю с чего начать ... Спасибо!


6
Это немного сбивает с толку. Вы говорите, что у вас есть две «независимые» переменные (я предпочитаю «предиктор», но это не важно). Есть ли у вас переменные "зависимый" / "ответ"? Если бы это были обе переменные отклика, я могу представить, как можно подобрать параметрическое, двумерное распределение вероятностей (с или без переменных предикторов, от которых зависят параметры распределения) - или двумерную оценку плотности ядра. Возможно, вы могли бы объяснить контекст немного больше. (PS, кто бы ни голосовал против вопроса, должен знать, что это означает ... кто-нибудь хочет вмешиваться?)
хочет присоединиться

В любом случае, вам лучше зайти на crossvalidated.com для таких вопросов. или на неизвестный веб-сайт под названием Google. Он нашел информацию о подборе моделей для многомерных данных. Довольно много (4 миллиона двести тридцать тысяч, если быть точным)
Йорис Мейс

Я бы порекомендовал Bing - это, в конце концов, механизм принятия решений, поисковые системы 20-го века ... просто посмотрите на Yahoo и спросите Дживса, насколько они не имеют отношения сегодня ?!
Погоня

@Ben Bolker - Спасибо за помощь, я вывел независимого, потому что это не было правильно. То, что у меня есть, это расстояние между местами (х) и корреляции осадков между точками (у)

обратите внимание, что вам придется использовать специальные методы, если вы хотите сделать статистические выводы на этих данных, потому что, если расстояния были рассчитаны на общем наборе местоположений, они не являются независимыми - поиск, например, для "теста Мантеля"
Ben Bolker

Ответы:


20

Я не совсем уверен, что вы спрашиваете, потому что ваш язык не работает. Но при условии, что ваши переменные не являются независимыми от друга (если они были, то они не имеют отношения к поиску), я попробую. Если xваша независимая (или предикторная) переменная и yваша зависимая (или ответная) переменная, то это должно сработать.

# 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)))

спасибо за ваш ответ, я вынул слово «независимый», как вы указали, оно не имело смысла. Используя ваш код для моих данных, я могу подогнать модель, но в результате на графике появятся десятки линий, а не одна. Есть идеи почему?

@sbg - Нет, извините, я не могу придумать причину почему. Подходит ли nls()модель?
Ричард Херрон

Я думаю, что получаю: Модель модели нелинейной регрессии: y ~ exp (a + b * x) Данные: DF ab -0,535834 -0,002024 Остаточная сумма квадратов: 18,62 Количество итераций до сходимости: 6 Достигнутый допуск сходимости: 8,08 e-06

3
@sbg попробуй отсортировать xпеременную:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))
Бен Болкер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.