Математические заметки

-May 2012+
SMTWTFS
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

  • RSS
  • Add To My MSN
  • Add To Windows Live
  • Add To My Yahoo
  • Add To Google

Statistics

  • Entries (4)
  • Comments (0)

Categories

RStudio 

Monday, July 11, 2011 12:03:33 AM

Раз уж речь зашла про R, необходимо упомянуть соответствующую IDE -- RStudio. Рекомендую!

ПС Иначе приходится копипастиить команды в текстовый файл и держать его под рукой, чтобы позднее повторить вызов особо зубодробительной команды.

Нелинейная регрессия в R 

Thursday, July 07, 2011 11:58:57 PM

Нелинейная регрессия в R не допускает фиттинга точных данных из-за особенностей реализации на числах с ограниченной точностью. Выкрутиться можно введением минимального искуственного шума:

  • x<- -4:10
  • y<- x^2
  • plot(x, y)
  • lmfit1<-lm(y~x)   // линейная регрессия
  • par(mfrow=c(2,2))   // 4 графика на лист
  • plot(lmfit1)
  • par(mfrow=c(1,1))
  • fitted(lmfit1)
  • lines(x, lmfit1$fitted.values, col="red") // НЕВЕРНАЯ линейная регрессия
  • y[2]<-y[2]+0.001   // ИСКУСТВЕННОЕ(!) внедрение шума в данные
  • nlfit2<- nls(y~a*x^2 + b, control = list(maxiter = 500))
  • nlfit2                 // Здесь четко и ясно будут написаны коэффициенты a, b
  • fitted(nlfit2)
  • lines(x, fitted(nlfit2), col="green")

Короче: несмотря на отвратительный GUI, R рулит.

Slice Sampling 

Saturday, January 17, 2009 12:24:20 AM

Задача генерации случайной последовательности, которая имеет заданный нетривиальный закон распределения, возникает постоянно. Например, если необходимо выполнять моделирование развития каких-то случайных процессов во времени. Обычно мы можем оценить различные статистические характеристики моделируемого процесса на основании эмпирической выборки. Чаще всего нам не везёт и получившиеся оценки весьма далеки от аналитически разработанных распределений. В такой ситуации функция плотности вероятности может быть апроксимирована: полиномами, кусочно-линейной, ступенчатой или параметрической. Коль скоро это сделано, необходимо генерировать последовательность случайных чисел, которая подчиняется данному закону распределения.

В статье projecteuclid.org/euclid.aos/1056562461 детально и вполне доступно изложен достаточно общий метод Slice Sampling. Имеется его подробное разъяснение для одномерной выборки. Этого текста вполне достаточно  для реализации алгоритма на языке высокого уровня типа C#.

Low Descrepancy Sequences 

Thursday, January 15, 2009 8:20:38 AM

Мера Лебега допускает апроксимацию методом Монтекарло, поэтому многомерные интегралов можно оценивать с помощью генерации последовательности случайных чисел.

Обычно при реализации на компьютере мы используем псевдолучайные последовательности. Однако существуют строгие теоремы, которые позволяют строить более эффективные оценки для меры. В частности это low descrepance sequences.

В итоге время вычислений сокращается в 20-50-100 раз.

en.wikipedia.org/wiki/Discrepancy_of_a_sequence#Discrepancy

www-rocq.inria.fr/mathfi/Premia/Premia8_FreeVersion/doc/pdf_html/mc_quasi_doc/index.html

Реализация алгоритма генерации:

parallel.bas.bg/~emanouil/sequences.html

www.multires.caltech.edu/software/libseq/

Псевдокод для получения последовательности Гальтона:

orion.math.iastate.edu/reu/2001/voronoi/halton_sequence.html