OrnsteinUhlenbeckProcess[μ,σ,θ]
長期平均μ,ボラティリティ
,平均回帰速度 θ の定常Ornstein–Uhlenbeck過程を表す.
OrnsteinUhlenbeckProcess[μ,σ,θ,x0]
初期条件 x0のOrnstein–Uhlenbeck過程を表す.
OrnsteinUhlenbeckProcess
OrnsteinUhlenbeckProcess[μ,σ,θ]
長期平均μ,ボラティリティ
,平均回帰速度 θ の定常Ornstein–Uhlenbeck過程を表す.
OrnsteinUhlenbeckProcess[μ,σ,θ,x0]
初期条件 x0のOrnstein–Uhlenbeck過程を表す.
詳細
- OrnsteinUhlenbeckProcessは,連続時間・連続状態のランダム過程である.
- OrnsteinUhlenbeckProcessはVasicekモデルとしても知られている.
- Ornstein–Uhlenbeck過程の状態
は伊藤微分方程式
を満足する.ただし,
は標準WienerProcess[]に従う. - OrnsteinUhlenbeckProcess[μ,σ,θ]の初期値はランダムでNormalDistribution[μ,σ/
]に従う. - 時点 t におけるOrnsteinUhlenbeckProcess[μ,σ,θ]の値は NormalDistribution[μ,σ/
]に従う. - 時点 t におけるOrnsteinUhlenbeckProcess[μ,σ,θ,x0]の値はNormalDistribution[ μ+(x0-μ)exp(-θ t),
]に従う. - OrnsteinUhlenbeckProcessでは,μ および x0は任意の実数値でよく,σ および θ は任意の正の実数値でよい.
- OrnsteinUhlenbeckProcessは,Mean,PDF,Probability,RandomFunction等の関数で使うことができる.
例題
すべて開く すべて閉じる例 (3)
ランダムな初期条件でOrnstein–Uhlenbeck過程のシミュレーションを行う:
data = RandomFunction[OrnsteinUhlenbeckProcess[0, .1, .3], {0, 10, .1}]ListLinePlot[data, Filling -> Axis]data = RandomFunction[OrnsteinUhlenbeckProcess[0, .1, .3, 1], {0, 20, .1}];ListLinePlot[data, Filling -> Axis]Mean[OrnsteinUhlenbeckProcess[μ, σ, θ][t]]Variance[OrnsteinUhlenbeckProcess[μ, σ, θ][t]]Mean[OrnsteinUhlenbeckProcess[μ, σ, θ, x][t]]Variance[OrnsteinUhlenbeckProcess[μ, σ, θ, x][t]]CovarianceFunction[OrnsteinUhlenbeckProcess[μ, σ, θ], s, t]Plot3D[CovarianceFunction[OrnsteinUhlenbeckProcess[0, 1, .2], s, t], {s, 0, 10}, {t, 0, 10}, ColorFunction -> "Rainbow"]CovarianceFunction[OrnsteinUhlenbeckProcess[μ, σ, θ, x], s, t]Plot3D[CovarianceFunction[OrnsteinUhlenbeckProcess[0, 1, .2, 1], s, t], {s, 0, 10}, {t, 0, 10}, ColorFunction -> "Rainbow"]スコープ (12)
基本的な用法 (7)
data = RandomFunction[OrnsteinUhlenbeckProcess[.3, .5, .4], {0, 1, 0.01}, 4]ListLinePlot[data, Filling -> Axis]RandomFunction[OrnsteinUhlenbeckProcess[1 / 10, 1 / 3, 1 / 2], {0, 1, 1 / 4}, WorkingPrecision -> 20]["Path"]sample[θ_] := (SeedRandom[14];RandomFunction[OrnsteinUhlenbeckProcess[0, 1, θ], {0, 1, .01}])ListStepPlot[sample[#], Filling -> Axis, PlotLabel -> StringJoin["θ = ", ToString[#]]]& /@ {.1, 1, 10}points = {-2, -1, 0, 1};
sample[x_] := RandomFunction[OrnsteinUhlenbeckProcess[0, .5, .3, x], {0, 10, 0.1}];ListLinePlot[sample[#]& /@ points, PlotRange -> All, Filling -> Axis, PlotLegends -> (StringJoin["x = ", ToString[#]]& /@ points)]data = RandomFunction[OrnsteinUhlenbeckProcess[0.8, 1, .2], {0, 1000, 0.01}];EstimatedProcess[data, OrnsteinUhlenbeckProcess[μ, σ, θ]]m = {"LeastSquares", "MaximumConditionalLikelihood"};FindProcessParameters[data, OrnsteinUhlenbeckProcess[μ, σ, θ, x0], ProcessEstimator -> #]& /@ mCorrelationFunction[OrnsteinUhlenbeckProcess[μ, σ, θ], s, t]CorrelationFunction[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]], s, t]AbsoluteCorrelationFunction[OrnsteinUhlenbeckProcess[μ, σ, θ], s, t]AbsoluteCorrelationFunction[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]], s, t]過程スライス特性 (5)
OrnsteinUhlenbeckProcess[μ, σ, θ][t]Plot[PDF[OrnsteinUhlenbeckProcess[0, 1, 1 / 3][t], x], {x, -3, 3}, Filling -> Axis]PDF[OrnsteinUhlenbeckProcess[μ, σ, θ][t], x]SliceDistribution[OrnsteinUhlenbeckProcess[μ, σ, θ, x0], t]Plot[Evaluate@Table[PDF[OrnsteinUhlenbeckProcess[0, 1, .5, 2][t], x], {t, {1 / 2, 1, 2}}], {x, -3, 3}, Filling -> Axis, PlotLegends -> {"t = 1/2", "t = 1", "t = 2"}]PDF[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]][t], x]SliceDistribution[OrnsteinUhlenbeckProcess[0, 1, 2], {s, t}]SliceDistribution[OrnsteinUhlenbeckProcess[0, 1, 2, 1], {1, 2, 3}]Mean[%]Expectation[x[t] + x[t] ^ 2, xOrnsteinUhlenbeckProcess[μ, σ, θ]]//SimplifyProbability[x[t] > -1, xOrnsteinUhlenbeckProcess[μ, σ, θ]]Skewness[OrnsteinUhlenbeckProcess[μ, σ, θ][t]]Skewness[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]][t]]Kurtosis[OrnsteinUhlenbeckProcess[μ, σ, θ][t]]Kurtosis[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]][t]]Moment[OrnsteinUhlenbeckProcess[μ, σ, θ][t], r]CharacteristicFunction[OrnsteinUhlenbeckProcess[μ, σ, θ][t], w]MomentGeneratingFunction[OrnsteinUhlenbeckProcess[μ, σ, θ][t], w]CentralMomentとその母関数:
CentralMoment[OrnsteinUhlenbeckProcess[μ, σ, θ][t], r]CentralMomentGeneratingFunction[OrnsteinUhlenbeckProcess[μ, σ, θ][t], w]FactorialMomentは,記号次数では閉形式がない:
FactorialMoment[OrnsteinUhlenbeckProcess[μ, σ, θ][t], r]FactorialMoment[OrnsteinUhlenbeckProcess[μ, σ, θ][t], 3]FactorialMomentGeneratingFunction[OrnsteinUhlenbeckProcess[μ, σ, θ][t], w]Cumulantとその母関数:
Cumulant[OrnsteinUhlenbeckProcess[μ, σ, θ][t], r]CumulantGeneratingFunction[OrnsteinUhlenbeckProcess[μ, σ, θ][t], w]一般化と拡張 (1)
𝒫 = TransformedProcess[p[2t + 1] ^ 2 + 3, pOrnsteinUhlenbeckProcess[0, 1, 0.2], t];data = RandomFunction[𝒫, {0, 30, 0.1}, 3];ListLinePlot[data, PlotRange -> All]{Mean[𝒫[t]], Variance[𝒫[t]]}過程のスライスのシミュレーションを行うことで,結果を証明する:
data1 = RandomVariate[𝒫[1.9], 2000];{Mean[data1], Variance[data1]}特性と関係 (9)
ランダムな値から始まるOrnsteinUhlenbeckProcessは弱定常である:
WeakStationarity[OrnsteinUhlenbeckProcess[μ, σ, θ]]WeakStationarity[OrnsteinUhlenbeckProcess[μ, σ, θ, a]]定常Ornstein–Uhlenbeck過程のパワースペクトル:
FourierTransform[CovarianceFunction[OrnsteinUhlenbeckProcess[μ, σ, θ], h], h, ω, FourierParameters -> {1, 1}]Ornstein–Uhlenbeckには,明確なStationaryDistributionが含まれる:
StationaryDistribution[OrnsteinUhlenbeckProcess[μ, σ, θ]]StationaryDistribution[OrnsteinUhlenbeckProcess[μ, σ, θ, a]]Ornstein–Uhlenbeck過程は独立増分は持たない:
proc = OrnsteinUhlenbeckProcess[μ, σ, θ];Expectation[(x[t2] - x[t1])(x[t4] - x[t3]), xproc, Assumptions -> 0 < t1 < t2 < t3 < t4]//SimplifyExpectation[(x[t2] - x[t1]), xproc, Assumptions -> 0 < t1 < t2] * Expectation[(x[t4] - x[t3]), xproc, Assumptions -> 0 < t3 < t4]% === %%proc = OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]];Expectation[(x[t2] - x[t1])(x[t4] - x[t3]), xproc, Assumptions -> 0 < t1 < t2 < t3 < t4]//SimplifyExpectation[(x[t2] - x[t1]), xproc, Assumptions -> 0 < t1 < t2] * Expectation[(x[t4] - x[t3]), xproc, Assumptions -> 0 < t3 < t4]% === %%Table[Plot[Evaluate@Probability[(x[5] <= Subscript[x, 2])(x[2] == Subscript[x, 1]), xOrnsteinUhlenbeckProcess[0, 1, .2]], {Subscript[x, 2], -4, 6}, Filling -> Axis, PlotLabel -> StringJoin["SubscriptBox[x, 1] = ", ToString[Subscript[x, 1]]]], {Subscript[x, 1], {-1.5, -.4, 1.3, 3}}]Probability[(x[Subscript[t, 2]] ≤ Subscript[x, 2])(x[Subscript[t, 1]] == Subscript[x, 1]), xOrnsteinUhlenbeckProcess[μ, σ, θ], Assumptions -> 0 < Subscript[t, 1] < Subscript[t, 2] && 0 ≤ Subscript[x, 1] ≤ Subscript[t, 1] && 0 ≤ Subscript[x, 2] ≤ Subscript[t, 2]]//Simplify固定された初期条件があるOrnstein–Uhlenbeckは,特殊なItoProcessである:
ItoProcess[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]]]特殊なStratonovichProcessでもある:
StratonovichProcess[OrnsteinUhlenbeckProcess[μ, σ, θ, Subscript[x, 0]]]Ornstein–Uhlenbeck過程は,確率微分方程式
の解である:
μ = 1.2;σ = 0.3;θ = 1;T = 5;noisysol = RandomFunction[OrnsteinUhlenbeckProcess[μ, σ, θ, 2], {0, T, 0.01}, 10 ^ 2];
meanFunction = TimeSeriesThread[Mean, noisysol];Show[ListLinePlot[noisysol, PlotStyle -> Directive[Opacity[.1]]], ListLinePlot[meanFunction, PlotStyle -> Directive[Black, Thick]]]smoothsol = NDSolve[{P'[t] == θ(μ - P[t]), P[0] == 2}, P, {t, 0, T}]Plot[P[t] /. smoothsol, {t, 0, T}, PlotRange -> {0.5, 2.5}]3引数のOrnstein–Uhlenbeckは平均エルゴードである:
proc = OrnsteinUhlenbeckProcess[μ, σ, θ];WeakStationarity[proc]abscorr[h_] = AbsoluteCorrelationFunction[proc, h]int[t_] = 1 / (2 * t)Integrate[(1 - Abs[u] / (2 * t))abscorr[u], {u, -2 * t, 2 * t}, Assumptions -> t > 0 && θ > 0]Limit[int[t], t -> ∞, Assumptions -> θ > 0]整数時におけるOrnstein–Uhlenbeck過程は,一次ARProcessとして振る舞う:
ou = OrnsteinUhlenbeckProcess[μ, σ, θ];モーメント方程式を作り,ARProcessについての母数を求める:
momEq = And[Mean[ou[t]] == Mean[ARProcess[c, {a}, b][t]],
CovarianceFunction[ou, h] == CovarianceFunction[ARProcess[c, {a}, b], h]]{sol} = Solve[And[(momEq /. h -> 0), momEq /. h -> 1], {a, b, c}, Reals]//FullSimplify[#, θ != 0 && σ > 0]&ARProcessを作る:
ar = ARProcess[c, {a}, b] /. solMean /@ {ou[t], ar[t]}//FullSimplifyCovarianceFunction[#, h]& /@ {ou, ar}//FullSimplifyおもしろい例題 (3)
Ornstein–Uhlenbeck過程のシミュレーションを二次元で行う:
SeedRandom[19];sample = RandomFunction[OrnsteinUhlenbeckProcess[-1, 1, .3], {0, 1, .001}, 2]["ValueList"];ListLinePlot[Transpose@sample, ColorFunction -> "FallColors"]Ornstein–Uhlenbeck過程のシミュレーションを三次元で行う:
SeedRandom[123];
sample = Table[RandomFunction[OrnsteinUhlenbeckProcess[0, 1, 1 / 4, 0], {0, 1, 0.01}, 3]["ValueList"], {8}];Graphics3D@Table[{ColorData["SolarColors"][RandomReal[]], Tube@Line@sample[[i]]}, {i, 8}]Ornstein–Uhlenbeck過程からの500経路のシミュレーションを行う:
data = RandomFunction[OrnsteinUhlenbeckProcess[0, 1, 1 / 3, 2], {0, 1, .01}, 500];sd = data["SliceData", 1];cf = ColorData["Rainbow"];
sliced = BarChart[Last[#], Axes -> False, BarOrigin -> Left, AspectRatio -> 4, ChartStyle -> (cf /@ Rescale[MovingAverage[First[#], 2], {Min[sd], Max[sd]}, {0, 1}]), ImageSize -> 68]&[HistogramList[sd, {Range[-3, 6, .3]}]];1におけるスライス分布の経路およびヒストグラム分布をプロットする:
ListLinePlot[data, ImageSize -> 400, PlotRange -> All,
AspectRatio -> 3 / 4, Epilog -> Inset[sliced, {1.01, 0}, {0, 8}], PlotStyle -> (cf /@ Rescale[sd]), BaseStyle -> Directive[Thin, Opacity[0.5]], PlotRangePadding -> {{0, .25}, {.5, .5}}]関連するガイド
-
▪
- 確率微分方程式過程 ▪
- パラメトリック確率過程
テキスト
Wolfram Research (2012), OrnsteinUhlenbeckProcess, Wolfram言語関数, https://reference.wolfram.com/language/ref/OrnsteinUhlenbeckProcess.html.
CMS
Wolfram Language. 2012. "OrnsteinUhlenbeckProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/OrnsteinUhlenbeckProcess.html.
APA
Wolfram Language. (2012). OrnsteinUhlenbeckProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/OrnsteinUhlenbeckProcess.html
BibTeX
@misc{reference.wolfram_2026_ornsteinuhlenbeckprocess, author="Wolfram Research", title="{OrnsteinUhlenbeckProcess}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/OrnsteinUhlenbeckProcess.html}", note=[Accessed: 15-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_ornsteinuhlenbeckprocess, organization={Wolfram Research}, title={OrnsteinUhlenbeckProcess}, year={2012}, url={https://reference.wolfram.com/language/ref/OrnsteinUhlenbeckProcess.html}, note=[Accessed: 15-November-2026]}