Как я могу оценить логарифмическую форму точек данных, используя R? - PullRequest
1 голос
/ 03 февраля 2010

У меня есть точки данных, которые представляют логарифмическую функцию.

Есть ли подход, в котором я могу просто оценить функцию, которая описывает эти данные, используя R?

Спасибо.

Ответы [ 2 ]

1 голос
/ 23 июня 2010

Я предполагаю, что вы имеете в виду, что у вас есть векторы y и x, и вы пытаетесь подобрать функцию y(x)=Alog(x).
Прежде всего, подгонка бревна - плохая идея, потому что она плохо себя ведет. К счастью, у нас есть x(y)=exp(y/A), поэтому мы можем установить экспоненциальную функцию, которая гораздо удобнее. Мы можем сделать это, используя нелинейные наименьшие квадраты:

 nls(x~exp(y/A),start=list(A=1.),algorithm="port")

, где start - начальное предположение для A. Этот подход является численной оптимизацией, поэтому он может потерпеть неудачу.
Более стабильный способ - преобразовать его в линейную функцию log(x(y))=y/A и установить прямую линию, используя lm:

lm(log(x)~y)
0 голосов
/ 03 февраля 2010

Если я правильно понимаю, вы хотите оценить функцию по некоторым (x, y) значениям ее.Если да, проверьте следующие ссылки.

Прочитайте об этом:

http://en.wikipedia.org/wiki/Spline_%28mathematics%29
http://en.wikipedia.org/wiki/Polynomial_interpolation
http://en.wikipedia.org/wiki/Newton_polynomial
http://en.wikipedia.org/wiki/Lagrange_polynomial

Прогуглил его:

http://www.stat.wisc.edu/~xie/smooth_spline_tutorial.html
http://stat.ethz.ch/R-manual/R-patched/library/stats/html/smooth.spline.html
http://www.image.ucar.edu/GSP/Software/Fields/Help/splint.html

Я никогда не использовал R, поэтому я не уверен, что это работаетили нет, но если у вас есть Matlab, я могу объяснить вам больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...