1

先生から次のような質問を受けました。

  1. 確率変数の N = 1000 個の独立した観測値のシーケンスを分布とともに生成します。(c) 逆法による、パラメーター λ = 1 の指数関数。
  2. 得られた配列をグラフィカルに表示する(ポイント e で生成されたものを除く)。ieeg (a) i. 座標にプロットする(観測番号、観測値) ii.i = 1、2、3 の座標 (obs no n、obs. no n + i) でプロットします。 iii. いくつかの値について、いわゆる共分散関数をプロットします。すなわち、平均:

ここに画像の説明を入力

私は次のコードを書きました、

(*****************************************************************)
(*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"]

ここに画像の説明を入力

彼は次のようにコメントしています。

共分散関数のプロットは、0 シフトから開始する必要があります。0より大きいシフトの場合、ゼロである独立した観測間の共分散を推定していることに注意してください.0シフトの場合、大きい観測の分散を推定しています。したがって、これら 2 つのケースの対比は、観測値が相関していないことを明確に示しています。

私は何を間違えましたか?

コードを修正するにはどうすればよいですか?

4

1 に答える 1

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}]

ここに画像の説明を入力

Variance[taskC]

0.93484

Covariance[taskC, taskC]

0.93484

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

0.00926913

于 2016-11-30T14:16:57.673 に答える