2016-11-28 4 views
1

Ниже был мой вопрос задается моим учителем,Графики функций ковариационных должны начинаться с 0-сдвига

  1. Сформировать последовательность N = 1000 независимых наблюдений случайной величины с распределением : (c) Экспоненциальный с параметром λ = 1, методом .
  2. Существующие графически полученные последовательности (за исключением тех, которые сгенерированы в точке e), т.е. (a) i. график в координатах (№ общ., значение обс.) ii. график в координатах (obs no n, obs. no n + i) для i = 1, 2, 3. iii. график так называемой ковариационной функции для некоторых значений . то есть и средние:

enter image description here

Я написал следующий код,

(*****************************************************************) 
(*Task 01(c) and 02(a)*) 
(*****************************************************************) 
n = 1000; 

taskC = Table[-Log[RandomReal[]], {n}]; 

ListPlot[taskC, AxesLabel->{"No. obs", "value of the obs"}] 

i = 1; 
ListPlot[Table[ 
    {taskC[[k]], taskC[[k+i]]}, 
    {k, 1, n-i,1}], 
AxesLabel->{"obs.no.n", "obs.no.n+1"}] 

i++; 
ListPlot[Table[ 
    {taskC[[k]], taskC[[k+i]]}, 
    {k, 1, n-i,1}], 
AxesLabel-> {"obs.no.n", "obs.no.n+2"}] 

i++; 
ListPlot[Table[ 
    {taskC[[k]], taskC[[k+i]]}, 
    {k,1,n-i,1}], 
AxesLabel->{"obs.no.n", "obs.no.n+3"}] 

avg = (1/n)*Sum[taskC[[i]], {i,n}]; 

ListPlot[Table[1/(n-tau) * Sum[(taskC[[i]]-avg)*(taskC[[i+tau]] - avg), n], {tau, 1,100}], 
    Joined->True, 
    AxesLabel->"Covariance Function"] 

enter image description here

Он отметил,

Графики функций совместной дисперсии должны начинаться с 0-сдвига. Примечание , что для смещения более 0 сдвигов вы оцениваете совпадение между независимыми наблюдениями, которые равны нулю, а для 0 сдвига - , оценивая дисперсию большого наблюдения. Таким образом, контраст между этими двумя случаями является четким указанием на то, что наблюдения являются некоррелированными.

Что я сделал не так?

Как я могу исправить свой код?

ответ

1

Нулевой сдвиг означает вычисление ковариации для tau = 0, что является просто дисперсией.

Labeled[ListPlot[Table[{tau, 
    1/(n - tau)*Sum[(taskC[[i]] - avg)*(taskC[[i + tau]] - avg), {i, n - tau}]}, 
    {tau, 0, 5}], Filling -> Axis, FillingStyle -> Thick, PlotRange -> All, 
    Frame -> True, PlotRangePadding -> 0.2, AspectRatio -> 1], 
{"Covariance Function K(n)", "n"}, {{Top, Left}, Bottom}] 

enter image description here

Variance[taskC] 

0,93484

Covariance[taskC, taskC] 

0,93484

(* n = 1 *) 
Covariance[Most[taskC], Rest[taskC]] 

0,00926913

+0

Можете ли вы порекомендовать книгу для программирования стохастического процесса с помощью Mathematica? – anonymous

+0

[Стохастические дифференциальные уравнения] (https://books.google.co.uk/books?id=ERYzXjt3iYkC&pg=PA25)? –

+0

Спасибо! Любая другая книга?Чем больше, тем лучше! – anonymous