RandomVariate[dist]
記号分布 dist から変量を擬似乱数で与える.
RandomVariate[dist,n]
記号分布 dist から n 個の擬似乱数変量のリストを与える.
RandomVariate[dist,{n1,n2,…}]
記号分布 dist から変量の n1× n2×… 配列を擬似乱数で与える.
RandomVariate
RandomVariate[dist]
記号分布 dist から変量を擬似乱数で与える.
RandomVariate[dist,n]
記号分布 dist から n 個の擬似乱数変量のリストを与える.
RandomVariate[dist,{n1,n2,…}]
記号分布 dist から変量の n1× n2×… 配列を擬似乱数で与える.
詳細とオプション
- RandomVariateは,記号分布として指定された連続分布,離散分布,混合分布の確率変量を生成することができる.
- RandomVariateは,Wolfram言語を実行するたびに擬似乱数の異なる数列を与える.SeedRandomを使って特定のシードから始めることができる.
- WorkingPrecision->p と設定すると,精度 p の乱数が生成される.
例題
すべて開く すべて閉じる例 (5)
RandomVariate[NormalDistribution[]]data = RandomVariate[NormalDistribution[1, 3], 10 ^ 4];Show[
Histogram[data, 20, "ProbabilityDensity"],
Plot[PDF[NormalDistribution[1, 3], x], {x, -9, 9}, PlotStyle -> Thick]]RandomVariate[PoissonDistribution[3], 10]data = RandomVariate[PoissonDistribution[10], 10 ^ 4];Show[
Histogram[data, Automatic, "ProbabilityDensity"],
DiscretePlot[PDF[PoissonDistribution[10], x], {x, 0, 20}, PlotStyle -> PointSize[Medium]]]RandomVariate[BinormalDistribution[1 / 2], 5]data = RandomVariate[BinormalDistribution[1 / 2], 10 ^ 4];{Histogram3D[data, 20, "ProbabilityDensity"],
Plot3D[PDF[BinormalDistribution[1 / 2], {x, y}]//Evaluate, {x, -3, 3}, {y, -3, 3}]}RandomVariate[MultivariatePoissonDistribution[1, {2, 3}], 5]data = RandomVariate[MultivariatePoissonDistribution[1, {2, 3}], 10 ^ 4];{Histogram3D[data, 20, "Probability", PlotRange -> {{0, 10}, {0, 10}, All}],
DiscretePlot3D[PDF[MultivariatePoissonDistribution[1, {2, 3}], {x, y}], {x, 0, 10}, {y, 0, 10}, PlotRange -> All, ExtentSize -> Full]}dist = MixtureDistribution[{1, 2}, {NormalDistribution[1, 1 / 2], NormalDistribution[4, 5 / 3]}];data = RandomVariate[dist, 10 ^ 5];Show[
Histogram[data, 45, "ProbabilityDensity"],
Plot[PDF[dist, x], {x, -2, 10}, PlotStyle -> PointSize[Medium]]]スコープ (22)
基本的な用法 (5)
RandomVariateを使って種々のサイズと次元の配列を生成する:
dist = NormalDistribution[3, 5];RandomVariate[dist, {2}]Dimensions[%]RandomVariate[dist, {2, 3}]Dimensions[%]RandomVariate[dist, {2, 3, 4}]Dimensions[%]RandomVariate[NormalDistribution[], WorkingPrecision -> 20]RandomVariate[NormalDistribution[], WorkingPrecision -> 100]SeedRandomを使って反復可能な乱数値を得る:
SeedRandom[0];RandomVariate[NormalDistribution[], 3]SeedRandom[0];RandomVariate[NormalDistribution[], 3]RandomVariate[RayleighDistribution[3]]RandomVariate[GeometricDistribution[1 / 7], 4]RandomVariate[MultivariateTDistribution[{{1, 1 / 2}, {1 / 2, 1}}, 5], 2]RandomVariate[MultivariatePoissonDistribution[1, {3, 4, 5}], {2, 3}]RandomVariate[NormalDistribution[Quantity[180, "Centimeters"], Quantity[5, "Centimeters"]]]RandomVariate[NormalDistribution[Quantity[180, "Centimeters"], Quantity[5, "Centimeters"]], 100]RandomVariate[BinormalDistribution[{Quantity[17, "Miles"/"Hours"], Quantity[42, "DegreesFahrenheit"]}, {Quantity[0.1, "Miles"/"Hours"], Quantity[2.1, "DegreesFahrenheit"]}, 0.2], 30]パラメトリック分布 (4)
RandomVariate[BetaDistribution[2, 3]]RandomVariate[UniformDistribution[{-2, 11}], 5]RandomVariate[NormalDistribution[], {2, 3}]Show[Histogram[RandomVariate[ChiSquareDistribution[4], 10 ^ 5], {0, 15, 0.5}, "PDF"], Plot[PDF[ChiSquareDistribution[4], x], {x, 0, 15}]]RandomVariate[BinomialDistribution[12, 1 / 3]]RandomVariate[DiscreteUniformDistribution[{-2, 11}], 5]RandomVariate[PoissonDistribution[3], {2, 3}]Show[
Histogram[RandomVariate[SkellamDistribution[50, 30], 10 ^ 4], {0, 40, 2}, "PDF"],
DiscretePlot[PDF[SkellamDistribution[50, 30], x], {x, 0, 40}]]RandomVariate[UniformDistribution[{{-2, 11}, {3, 15}}]]RandomVariate[MultinormalDistribution[{1, 2, 3}, {{2, 1 / 2, -1 / 3}, {1 / 2, 1, 0}, {-1 / 3, 0, 2 / 3}}], 2]RandomVariate[DirichletDistribution[{1, 3, 5, 7}], {2, 3}]{Histogram3D[RandomVariate[BinormalDistribution[{1, 2}, {1.5, 2}, 0.6], 10 ^ 4], 20, "PDF"], Plot3D[PDF[BinormalDistribution[{1, 2}, {1.5, 2}, 0.6], {x, y}], {x, -5, 6}, {y, -3, 7}]}RandomVariate[DiscreteUniformDistribution[{{-2, 11}, {3, 15}}]]RandomVariate[MultinomialDistribution[12, {1 / 3, 1 / 2, 1 / 6}], 2]RandomVariate[MultivariateHypergeometricDistribution[10, {2, 3, 4, 7}], {2, 3}]{Histogram3D[RandomVariate[MultivariatePoissonDistribution[1, {2, 3}], 10 ^ 4], 40, "PDF"],
DiscretePlot3D[PDF[MultivariatePoissonDistribution[1, {2, 3}], {x, y}], {x, 0, 12}, {y, 0, 12}, ExtentSize -> 0.5]}ノンパラメトリック分布 (4)
一変量EmpiricalDistributionの確率変量を生成する:
𝒟 = EmpiricalDistribution[RandomVariate[ExponentialDistribution[1 / 2], 10 ^ 5]];Show[Histogram[RandomVariate[𝒟, 10 ^ 3], Automatic, "PDF"], Plot[PDF[ExponentialDistribution[1 / 2], x], {x, 0, 10}]]𝒟 = EmpiricalDistribution[RandomVariate[BinormalDistribution[1 / 7], 10 ^ 5]];RandomVariate[𝒟, 3]一変量HistogramDistributionを使う:
𝒟 = HistogramDistribution[RandomVariate[ExponentialDistribution[1 / 7], 10 ^ 5]];RandomVariate[𝒟, {3, 2}]𝒟 = HistogramDistribution[RandomVariate[BinormalDistribution[.75], 10 ^ 4]];EstimatedDistribution[RandomVariate[𝒟, 10 ^ 3], BinormalDistribution[a]]一変量KernelMixtureDistributionを使う:
𝒟 = KernelMixtureDistribution[RandomVariate[NormalDistribution[], 1000]];Show[Histogram[RandomVariate[𝒟, 10^4], Automatic, "PDF"],
Plot[PDF[𝒟, x], {x, -4, 4}]]打切りデータをSurvivalDistributionで使う:
eventTimes = {10, 7, 23, 22, 6, 25, 20, 19, 6, 17, 6, 13};censorIndicators = {0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0};𝒟 = SurvivalDistribution[EventData[eventTimes, censorIndicators]];RandomVariate[𝒟, 15]派生分布 (9)
TransformedDistributionの確率変量を生成する:
SeedRandom[0];RandomVariate[TransformedDistribution[Exp[-5 x], xExponentialDistribution[1]], {3, 5}]SeedRandom[0];
m = RandomReal[ExponentialDistribution[1], {3, 5}];Map[Exp[-5 #]&, m]ProductDistributionの確率変量を生成する:
𝒟 = ProductDistribution[ExponentialDistribution[2], ExponentialDistribution[3]];SeedRandom[0];RandomVariate[𝒟, 4]SeedRandom[0];Transpose[{RandomVariate[ExponentialDistribution[2], 4], RandomVariate[ExponentialDistribution[3], 4]}]𝒟 = MixtureDistribution[{1, 3}, {NormalDistribution[0, 1], NormalDistribution[6, 2]}];data = RandomVariate[𝒟, 10 ^ 5];Show[Histogram[data, 50, "PDF"], Plot[PDF[𝒟, x], {x, -20, 20}]]𝒟 = ParameterMixtureDistribution[ExponentialDistribution[λ], λUniformDistribution[{1, 2}]];data = RandomVariate[𝒟, 10 ^ 4];{Variance[data], Variance[𝒟]}//N𝒟 = TruncatedDistribution[{-2, 2}, NormalDistribution[]];data = RandomVariate[𝒟, 10 ^ 5];Show[Histogram[data, 50, "PDF", PlotRange -> {{-3, 3}, All}], Plot[PDF[𝒟, x], {x, -3, 3}], Frame -> True, Axes -> False]𝒟 = CensoredDistribution[{0, 20}, ExponentialDistribution[1 / 3]];data = RandomVariate[𝒟, 10 ^ 5];{Kurtosis[data], Kurtosis[𝒟]}//N𝒟 = MarginalDistribution[DirichletDistribution[{1, 3, 4, 5}], 2];data = RandomVariate[𝒟, 10 ^ 5];Probability[x ^ 2 + 3x < 1, xdata]//NNProbability[x ^ 2 + 3x < 1, x𝒟]𝒟 = CopulaDistribution[{"Frank", 3}, {UniformDistribution[{0, 1}], UniformDistribution[{0, 1}]}];data = RandomVariate[𝒟, 10 ^ 5];サンプルのモーメントの値をコピュラ分布のモーメントの値と比較する:
Moment[data, {2, 1}]Moment[𝒟, {2, 1}]N[%]𝒟 = ProbabilityDistribution[(Sqrt[2] / Pi)(1 / (1 + x ^ 4)), {x, -∞, ∞}];data = RandomVariate[𝒟, 10 ^ 5];Show[Histogram[data, 200, "PDF", PlotRange -> {{-3, 3}, All}], Plot[PDF[𝒟, x], {x, -3, 3}], Frame -> True, Axes -> False]オプション (1)
WorkingPrecision (1)
デフォルトで,連続分布には機械精度(MachinePrecision)の乱数が生成される:
SeedRandom[1234];
RandomVariate[ExponentialDistribution[2], 5]SeedRandom[1234];
RandomVariate[ExponentialDistribution[2], 5, WorkingPrecision -> MachinePrecision]WorkingPrecisionオプションを使って任意精度の数を生成する:
RandomVariate[ExponentialDistribution[2], 5, WorkingPrecision -> 25]アプリケーション (30)
ランダムなデータの画像 (6)
連続分布に従うランダムなデータを生成し,そのヒストグラムを確率密度関数と比較する:
data = RandomVariate[NormalDistribution[1, 3], 10 ^ 4];Show[
Histogram[data, 20, "PDF"],
Plot[PDF[NormalDistribution[1, 3], x], {x, -9, 9}, PlotStyle -> Thick]]離散分布に従うランダムなデータを生成し,そのヒストグラムを確率密度関数と比較する:
data = RandomVariate[BinomialDistribution[10, 0.4], 10 ^ 4];Show[
Histogram[data, {-0.5, 10.5, 1}, "PDF"],
DiscretePlot[PDF[BinomialDistribution[10, 0.4], x], {x, 0, 10}, PlotStyle -> PointSize[Medium]]]二変量分布に従うランダムなデータを生成し,そのヒストグラムを確率密度関数と比較する:
data = RandomVariate[BinormalDistribution[{1, 2}, {1.5, 2}, 0.6], 10 ^ 4];Show[Histogram3D[data, {{-5, 6, 1}, {-3, 7, 1}}, "PDF", ChartBaseStyle -> Opacity[0.5]],
Plot3D[PDF[BinormalDistribution[{1, 2}, {1.5, 2}, 0.6], {x, y}], {x, -5, 6}, {y, -3, 7}, PlotStyle -> ColorData[97, 1], Mesh -> None]]Table[Graphics[{Hue[RandomReal[]], PointSize[Small], Point[RandomVariate[dist, 10 ^ 3]]}, AxesOrigin -> {0, 0}], {dist, {DirichletDistribution[{1, 2, 3}], MultinormalDistribution[{0, 0}, {{1, 1 / 2}, {1 / 2, 1}}], MultivariateTDistribution[{0, 0}, {{1, 1 / 2}, {1 / 2, 1}}, 5]}}]Graphics[{Blue, Table[Arrow[{{0, 0}, RandomVariate[NormalDistribution[], 2]}], {100}]}]vectors = RandomVariate[NormalDistribution[], {10^4, 2}];Show[Histogram[Apply[ArcTan, vectors, {1}], Automatic, "PDF"], Plot[PDF[UniformDistribution[{-π, π}], x], {x, -π, π}, PlotStyle -> Thick]]Show[Histogram[Map[Norm, vectors], 25, "PDF"], Plot[PDF[RayleighDistribution[1], x], {x, 0, 5}, PlotStyle -> Thick]]TransformedDistribution[Norm[{u, v}], {uNormalDistribution[], vNormalDistribution[]}]Graphics3D[{Blue, Table[Arrow[{{0, 0, 0}, RandomVariate[NormalDistribution[], 3]}], {200}]}]vectors = RandomVariate[NormalDistribution[], {10^4, 3}];Show[Histogram[Apply[Function[{x, y, z}, ArcTan[y / x]], vectors, {1}], Automatic, "PDF"], Plot[PDF[UniformDistribution[{-π / 2, π / 2}], x], {x, -π, π}, PlotStyle -> Thick]]Show[Histogram[Map[Norm, vectors], 20, "PDF"], Plot[PDF[ChiDistribution[3], x], {x, 0, 5}, PlotStyle -> Thick]]TransformedDistribution[Norm[{x, y, z}], {x, y, z}ProductDistribution[{NormalDistribution[], 3}]]分布特性 (5)
確率変量を使って二項分布のポアソン(Poisson)近似を証明する:
n = 2000;p = 1 / 30;r1 = RandomVariate[BinomialDistribution[n, p], 10 ^ 5];{Mean[r1], StandardDeviation[r1], Kurtosis[r1]}//Nλ = n p;r2 = RandomVariate[PoissonDistribution[λ], 10 ^ 5];{Mean[r2], StandardDeviation[r2], Kurtosis[r2]}//Ndist = TruncatedDistribution[{1, 4}, TriangularDistribution[{0, 7}]];data = RandomVariate[dist, 10 ^ 5];Show[
Histogram[data, 20, "ProbabilityDensity", PlotRange -> All],
Plot[PDF[dist, x], {x, 0, 5}, PlotStyle -> Thick, Exclusions -> None], AxesOrigin -> {0, 0}]{N[Mean[dist]], Mean[data]}{N[Variance[dist]], Variance[data]}{N[Kurtosis[dist]], Kurtosis[data]}{N[Moment[dist, 5]], Moment[data, 5]}{N[CentralMoment[dist, 5]], CentralMoment[data, 5]}{NProbability[E ^ x < 3, xdist], Probability[E ^ x < 3, xdata]//N}{NExpectation[E ^ x, xdist], Expectation[E ^ x, xdata]//N}dist = TransformedDistribution[x ^ 2, xExponentialDistribution[1]];r = RandomVariate[dist, 10 ^ 6];{Mean[r], Variance[r]}{Mean[dist], Variance[dist]}𝒟 = NormalDistribution[2, 3];
data = RandomVariate[𝒟, 10 ^ 4];Histogram𝒟 = HistogramDistribution[data];KernelMixture𝒟 = KernelMixtureDistribution[data];SmoothKernel𝒟 = SmoothKernelDistribution[data];Empirical𝒟 = EmpiricalDistribution[data];Mean /@ {𝒟, Histogram𝒟, KernelMixture𝒟, SmoothKernel𝒟, Empirical𝒟}Variance /@ {𝒟, Histogram𝒟, KernelMixture𝒟, SmoothKernel𝒟, Empirical𝒟}proc = ARCHProcess[.3, {.5}];PDF[proc[2], x]data = RandomVariate[proc[2], 10 ^ 3];Histogram[data, 40, "PDF"]DistributionFitTest[data, NormalDistribution[0, 1], "TestConclusion"]ランダムな実験 (4)
RandomVariate[DiscreteUniformDistribution[{1, 6}], 10]公正な六面のサイコロのペアを7回投げるシミュレーションを行う:
RandomVariate[DiscreteUniformDistribution[{1, 6}], {7, 2}]コイントスの実験では表が出るまで公正なコインを投げ続ける.この過程のシミュレーションを行う:
RandomVariate[GeometricDistribution[1 / 2], 10]ListPlot[RandomVariate[GeometricDistribution[1 / 2], 100], Filling -> Axis]1秒間に平均3.2個の
粒子を放出する放射性物質がある.その分布を示す.10分間の典型的な放出粒子数のシミュレーションを行う:
ListLinePlot[RandomVariate[PoissonDistribution[3.2], 60 10]]randomWalk[n_] := FoldList[Plus, 0, RandomVariate[TransformedDistribution[2u - 1, uBernoulliDistribution[1 / 2]], n - 1]]ListPlot[randomWalk[100], Joined -> True]推定と仮説検定 (3)
data = RandomVariate[NormalDistribution[2, 3], 10 ^ 4];FindDistributionParameters[data, NormalDistribution[a, b]]data = RandomVariate[MixtureDistribution[{1 / 5, 4 / 5}, {GammaDistribution[2, 3], NormalDistribution[1, 1 / 2]}], 10 ^ 3, WorkingPrecision -> 20];EstimatedDistribution[data, MixtureDistribution[{p, 1 - p}, {GammaDistribution[2, 3], NormalDistribution[1, 1 / 2]}], WorkingPrecision -> 20]二変量正規分布に従うサンプルの場合,
統計はシフトされたFisherZDistributionに従う:
hStatistic[sample_] := Module[{x, y}, {x, y} = Transpose[sample];0.5 Log[Total[(x + y) ^ 2] / Total[(x - y) ^ 2]]]二変量正規分布に従う
サイズのサンプルの
統計分布を生成する:
data[ρ_, n_, m_] := Table[hStatistic[RandomVariate[BinormalDistribution[ρ], n]], {i, m}]
統計分布とシフトされたFisherZDistributionを視覚的に比較する:
𝒵𝒟[ρ_, n_] = TransformedDistribution[u + ArcTanh[ρ], uFisherZDistribution[n, n]];With[{ρ = 0.3, n = 25}, Show[Histogram[data[ρ, n, 10 ^ 4], 20, "PDF"], Plot[PDF[𝒵𝒟[ρ, n], x], {x, -1, 1}, PlotStyle -> Thick, PlotRange -> All]]]DistributionFitTestで結果を確かめる:
With[{ρ = 0.3, n = 25}, DistributionFitTest[data[ρ, n, 10 ^ 4], 𝒵𝒟[ρ, n]]]品質 (3)
10個組の製品の中に5個の欠陥品が混ざっており,6個が検査のために抜き出されるとする.見付かる欠陥品の数のシミュレーションを行う:
RandomVariate[HypergeometricDistribution[6, 5, 10], 20]ListPlot[%, Filling -> Axis]製造される10個の電球のうちの1つが欠陥品だとする.100個の電球の製造についてのシミュレーションを行う:
bulbs = RandomVariate[BernoulliDistribution[9 / 10], 100]Count[bulbs, 1]Mean[BernoulliDistribution[9 / 10]]100Probability[x == 1, xBernoulliDistribution[9 / 10]]出荷する製品に対し,60個一組として検査が行われる.どの組も,10個目の欠陥品が見付かった段階で出荷停止となる.製品の20パーセントが欠陥品だった場合,各組が出荷停止になる確率を求める:
Probability[x ≤ 50x ≤ 60, xNegativeBinomialDistribution[10, 0.2]]Probability[x ≤ 50, xTruncatedDistribution[{0, 60}, NegativeBinomialDistribution[10, 0.2]]]出荷停止になった組中の欠陥のない製品の数のシミュレーションを行う:
𝒟 = TruncatedDistribution[{0, 60}, NegativeBinomialDistribution[10, 0.2]];sample = RandomVariate[𝒟, 20]BarChart[Transpose[{sample, 60 - sample}], ChartLayout -> "Stacked"]出荷停止になった組の中の,欠陥品とそうではないものの割合の平均を求める:
Mean[𝒟] / Expectation[60 - x, x𝒟]トラフィック (3)
顧客カウンターを訪れる顧客数は平均0.6人でPoissonDistributionに従い,顧客カウンターが開く前に列に並んでいる顧客数は平均5人でPoissonDistributionに従う.列に並んでいる人がいなくなるまでに応対を受ける顧客数はPoissonConsulDistributionに従う:
gpd = PoissonConsulDistribution[5, 0.6];DiscretePlot[PDF[gpd, k], {k, 0, 25}]ListPlot[{RandomVariate[gpd, 30], {{0, Mean[gpd]}, {30, Mean[gpd]}}}, Joined -> {False, True}, Filling -> Axis]都市部での交通事故の平均数は1日につき100件である.1日あたりの事故数のシミュレーションを行う:
RandomVariate[PoissonDistribution[100], 30]ListPlot[%, Filling -> Axis]5秒間にバケツに落ちる雨滴数の期待値は20粒である.5秒ごとの雨滴数のシミュレーションを行う:
RandomVariate[PoissonDistribution[20], 20]ListPlot[%, Filling -> Axis]金融 (1)
株式市場の日ごとの対数収益率は安定分布に従うと仮定して,5年間の株価のシミュレーションを行い,可視化する:
logReturns = BlockRandom[SeedRandom[2010];RandomVariate[StableDistribution[1, 1.38, -0.096, -0.001, 0.005], 5 * 365]];ListLinePlot[1000Exp[Accumulate[logReturns]], AxesLabel -> {Text["days"], Text["stock price"]}]その他の応用分野 (5)
RandomVariateは,必要であれば,複素数を生成することができる:
RandomVariate[TransformedDistribution[x + I x ^ 2, xExponentialDistribution[1 / 3]]]g[x_] = Sqrt[x ^ 20 + 1];一様分布に従うランダムなノードによって定義された補間関数で近似する:
r = RandomVariate[UniformDistribution[], 10 ^ 2];nods = Join[Table[{x, g[x]}, {x, r}], {{0, g[0]}, {1, g[1]}}];g1 = Interpolation[nods]ListPlot[{g1, nods}, Joined -> {True, False}, PlotStyle -> {Thick, Red}]NIntegrate[g1[x], {x, 0, 1}]Integrate[g[x], {x, 0, 1}]N[%]m = RandomVariate[GaussianOrthogonalMatrixDistribution[10 ^ 3]];WignerSemicircleDistributionを固有値にフィットする:
edist = EstimatedDistribution[Eigenvalues[m], WignerSemicircleDistribution[r]]Show[Histogram[Eigenvalues[m], 20, "PDF"], Plot[PDF[edist, x], {x, -65, 65}, PlotStyle -> Thick, Exclusions -> None]]米国における女性の身長は,平均64インチ,標準偏差2インチで正規分布に従い,男性の身長は平均70インチ,標準偏差2インチで正規分布に従う.男性と女性の人口比が1対1であるなら,人口全体の身長は二峰分布に従う:
height𝒟 = MixtureDistribution[{0.5238, 1 - 0.5238}, {NormalDistribution[70, 2], NormalDistribution[64, 2]}];Plot[PDF[height𝒟, x], {x, 50, 80}, Filling -> Axis]人口100人の町の典型的な身長分布のシミュレーションを行う:
ListPlot[RandomVariate[height𝒟, 100], Filling -> Axis]Probability[x ≥ 73, xheight𝒟]あるバスケットボールの選手が4回目が入るまでフリースローを行う.この選手がスコアを入れる確率は,いずれのシュートでも0.7である.この過程のシミュレーションを行う:
4 + RandomVariate[NegativeBinomialDistribution[4, 0.7], 50]ListPlot[%, Filling -> Axis]Expectation[x + 4, xNegativeBinomialDistribution[4, 0.7]]特性と関係 (17)
RandomIntegerは一様離散確率変量を生成する:
RandomInteger[{0, 10}, 10]RandomRealは一様連続変量を生成する:
RandomReal[{0, 10}, 10]RandomChoiceはリストからの置換を使ってランダムな選択を行う:
RandomChoice[Range[10], 10]RandomSampleはリストからの置換を使わずにランダムな選択を行う:
RandomSample[Range[20], 10]RandomPrimeは素数をランダムに生成する:
RandomPrime[{1, 100}, 10]RandomImageはランダムな画像を生成する:
RandomImage[LaplaceDistribution[0, .2], {100, 100}]RandomGraphはランダムグラフを生成する:
RandomGraph[BarabasiAlbertGraphDistribution[100, 2]]RandomFunctionはランダム過程のための経路を生成する:
𝒫 = WienerProcess[3.4, 4];ListLinePlot[RandomFunction[𝒫, {0, 20, 0.7}]]RandomVariateを使って過程の時間スライスのためのサンプルを生成する:
data = RandomVariate[𝒫[3], 10 ^ 5];Show[Histogram[data, 20, "ProbabilityDensity"]]LocationTestを使って平均あるいは中央値が0かどうか調べる:
data = RandomVariate[NormalDistribution[0, 1], 10 ^ 2];LocationTest[data, 0, {"TestDataTable", All}]LocationEquivalenceTestを使っていくつかのデータ集合の平均あるいは中央値を比べる:
data1 = RandomVariate[NormalDistribution[.25, 1], 100];
data2 = RandomVariate[NormalDistribution[0, 1], 150];
data3 = RandomVariate[NormalDistribution[0, 1], 135];LocationEquivalenceTest[{data1, data2, data3}, {"TestDataTable", All}]VarianceTestを使って2つのデータ集合の分散が等しいかどうかを調べる:
data = RandomVariate[NormalDistribution[], {2, 100}];VarianceTest[data, Automatic, {"TestDataTable", All}]VarianceEquivalenceTestを使っていくつかのデータ集合の分散が等しいかどうかを調べる:
data = RandomVariate[NormalDistribution[], {3, 10^4}];VarianceEquivalenceTest[data, {"TestDataTable", All}]DistributionFitTestを使ってランダムなデータと分布の適合度を調べる:
data = RandomVariate[LaplaceDistribution[1, 2], 10 ^ 3];DistributionFitTest[data, LaplaceDistribution[1, 2], {"TestDataTable", All}]EstimatedDistributionを使ってランダムなデータの分布母数を推定する:
data = RandomVariate[GammaDistribution[1, 3], 10 ^ 5];dist = EstimatedDistribution[data, GammaDistribution[α, β]]Show[
Histogram[data, {0, 20, 0.5}, "PDF"],
Plot[Evaluate@PDF[dist, x], {x, 0, 20}, PlotStyle -> Thick, PlotRange -> All]]data = RandomVariate[NormalDistribution[], 100];{𝒟1, 𝒟2, 𝒟3} = {EmpiricalDistribution[data], HistogramDistribution[data], SmoothKernelDistribution[data]};{Plot[CDF[𝒟1, x], {x, -3, 3}, Exclusions -> None, PlotLabel -> "Empirical"], Plot[CDF[𝒟2, x], {x, -3, 3}, Exclusions -> None, PlotLabel -> "Histogram"], Plot[CDF[𝒟2, x], {x, -3, 3}, Exclusions -> None, PlotLabel -> "Kernel"]}統計的な可視化関数を使ってランダムなデータと分布を比較する:
data = RandomVariate[ExponentialDistribution[2], 10 ^ 3];{QuantilePlot[data, ExponentialDistribution[λ]], ProbabilityPlot[data, ExponentialDistribution[λ]]}data = Table[RandomVariate[NormalDistribution[μ, 1], 100], {μ, {0, 3, 2}}];{BoxWhiskerChart[data], DistributionChart[data]}{Histogram[RandomVariate[NormalDistribution[0, 1], 200]], Histogram3D[RandomVariate[BinormalDistribution[1 / 3], 400]]}{SmoothHistogram[RandomVariate[NormalDistribution[0, 1], 200], Filling -> Axis], SmoothHistogram3D[RandomVariate[BinormalDistribution[1 / 3], 400]]}考えられる問題 (3)
dist = NormalDistribution[];Table[Timing[RandomVariate[TruncatedDistribution[a, dist], 10 ^ 4];][[1]], {a, {{-1 / 20, 1 / 20}, {-1 / 200, 1 / 200}, {-1 / 2000, 1 / 2000}}}]離散分布の場合はWorkingPrecisionオプションが無視される:
RandomVariate[PoissonDistribution[3], 5, WorkingPrecision -> 20]RandomVariateの結果には無限量が含まれることがある:
SeedRandom[8396];data = RandomVariate[NormalDistribution[], {3, 3, 3}, WorkingPrecision -> 6]SeedRandom[8396];data = RandomVariate[NormalDistribution[], {3, 3, 3}, WorkingPrecision -> 7]テキスト
Wolfram Research (2010), RandomVariate, Wolfram言語関数, https://reference.wolfram.com/language/ref/RandomVariate.html.
CMS
Wolfram Language. 2010. "RandomVariate." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RandomVariate.html.
APA
Wolfram Language. (2010). RandomVariate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RandomVariate.html
BibTeX
@misc{reference.wolfram_2026_randomvariate, author="Wolfram Research", title="{RandomVariate}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/RandomVariate.html}", note=[Accessed: 21-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_randomvariate, organization={Wolfram Research}, title={RandomVariate}, year={2010}, url={https://reference.wolfram.com/language/ref/RandomVariate.html}, note=[Accessed: 21-June-2026]}