CramerVonMisesTest[data]
Cramér–von Mises検定を使い,data が正規分布に従っているかどうかを調べる.
CramerVonMisesTest[data,dist]
Cramér–von Mises検定を使い,data が dist に従った分布かどうかを調べる.
CramerVonMisesTest[data,dist,"property"]
"property"の値を返す.
CramerVonMisesTest
CramerVonMisesTest[data]
Cramér–von Mises検定を使い,data が正規分布に従っているかどうかを調べる.
CramerVonMisesTest[data,dist]
Cramér–von Mises検定を使い,data が dist に従った分布かどうかを調べる.
CramerVonMisesTest[data,dist,"property"]
"property"の値を返す.
詳細とオプション
- CramerVonMisesTestは data が分布 dist に従う母集団から取られたという帰無仮説
とそうではないという対立仮説
でCramér–von Misesの適合度検定を行う. - デフォルトで,確率値つまり
値が返される. - 小さい
値は data が dist から来ている可能性が低いことを示す. - dist は,記号および数値の母数,またはデータ集合,を持つ任意の記号分布でよい.
- data は一変量{x1,x2,…}でも多変量{{x1,y1,…},{x2,y2,…},…}でもよい.
- Cramér–von Mises検定はデータが連続分布のものであると仮定する.
- Cramér–von Mises検定は事実上
の予測値に基づく検定統計を使う.ただし,
は data の経験的累積分布関数,
は dist の累積分布関数である. - 一変量データについては,検定統計は
で与えられる. - 多変量検定では一変量限界
値の総和が使われる.総和は
のもとでUniformSumDistributionに従うものと想定される. - CramerVonMisesTest[data,dist,"HypothesisTestData"]は,HypothesisTestDataオブジェクト htd を返す.これは htd["property"]として追加的な検定結果と特性の抽出に使うことができる.
- CramerVonMisesTest[data,dist,"property"]を使って直接"property"の値を与えることができる.
- 検定結果のレポートに関連する特性
-
"PValue"
値"PValueTable" "PValue"のフォーマットされたバージョン "ShortTestConclusion" 検定結果の簡単な説明 "TestConclusion" 検定結果の説明 "TestData" 検定統計と
値"TestDataTable" "TestData"のフォーマットされたバージョン "TestStatistic" 検定統計 "TestStatisticTable" "TestStatistic"のフォーマットされたバージョン - 次の特性はどの検定が行われているかに依存しない.
- データ分布に関連する特性
-
"FittedDistribution" データのフィットした分布 "FittedDistributionParameters" データの分布母数 - 使用可能なオプション
-
Method Automatic
値を計算するメソッドSignificanceLevel 0.05 診断とレポートのための切捨て - 適合度検定では,
のときにのみ
が棄却されるような切捨て
が選択される.特性"TestConclusion"および"ShortTestConclusion"で使われる
の値はSignificanceLevelオプションで制御される.デフォルトで,
は0.05に設定されている. - Method->"MonteCarlo"の設定では,入力 si と同じ長さの
個のデータ集合が,フィットされた分布を使って
のもとで生成される.次に,CramerVonMisesTest[si,dist,"TestStatistic"]からの経験分布を使って
値が推定される.
例題
すべて開く すべて閉じる例 (3)
data = RandomVariate[NormalDistribution[], 10^4];CramerVonMisesTest[data]QuantilePlotを使って結果を検証する:
QuantilePlot[data]data = RandomVariate[LaplaceDistribution[1, 2], 10^3];Show[SmoothHistogram[data, PlotStyle -> ColorData[97, 2]], Plot[PDF[LaplaceDistribution[1, 2], x], {x, -10, 10}, PlotStyle -> Dashed]]CramerVonMisesTest[data, LaplaceDistribution[1, 2]]data1 = RandomVariate[NormalDistribution[], 100];data2 = RandomVariate[NormalDistribution[], 150];SmoothHistogram[{data1, data2}]CramerVonMisesTest[data1, data2]スコープ (9)
検定 (6)
data1 = RandomVariate[NormalDistribution[], 10^4];
data2 = RandomVariate[StudentTDistribution[3], 10^4];CramerVonMisesTest[data1]CramerVonMisesTest[data2]data1 = RandomVariate[NormalDistribution[], 10^3];
data2 = RandomVariate[CauchyDistribution[0, 1], 10^3];CramerVonMisesTest[data1, CauchyDistribution[0, 1]]CramerVonMisesTest[data2, CauchyDistribution[0, 1]]data1 = RandomVariate[NormalDistribution[], 10^3];
data2 = RandomVariate[NormalDistribution[], 10^3];CramerVonMisesTest[data1, data2]data3 = RandomVariate[NormalDistribution[0, 1.25], 10^3];CramerVonMisesTest[data1, data3]data1 = RandomVariate[BinormalDistribution[.5], 10^3];
data2 = RandomVariate[LaplaceDistribution[1, 2], {10^3, 2}];CramerVonMisesTest[data1]CramerVonMisesTest[data2]data1 = RandomVariate[BinormalDistribution[.5], 10^3];
data2 = RandomVariate[𝒹 = LaplaceDistribution[1, 2], {10^3, 2}];𝒟 = ProductDistribution[𝒹, 𝒹];CramerVonMisesTest[data1, 𝒟]CramerVonMisesTest[data2, 𝒟]繰り返し特性を抽出するためにHypothesisTestDataオブジェクトを作成する:
data = RandomVariate[NormalDistribution[], 10];ℋ = CramerVonMisesTest[data, Automatic, "HypothesisTestData"]ℋ["Properties"]レポート (3)
data = RandomVariate[NormalDistribution[], 100];ℋ = CramerVonMisesTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["PValueTable"]ℋ["TestStatisticTable"]カスタマイズされたレポート用にCramér–von Mises検定表から項目を取り出す:
data1 = RandomVariate[NormalDistribution[], 100];
data2 = RandomVariate[NormalDistribution[], 100];ℋ1 = CramerVonMisesTest[data1, Automatic, "TestData"]ℋ2 = CramerVonMisesTest[data2, Automatic, "TestData"]BarChart[{Labeled[ℋ1, "Set 1"], Labeled[ℋ2, "Set 2"]}, ChartLabels -> {"SuperscriptBox[ω, 2]", "p‐value"}]"ShortTestConclusion"と"TestConclusion"を使って検定の結論をレポートする:
data = BlockRandom[SeedRandom[1];RandomVariate[ParetoDistribution[1.05, 2], 100]];ℋ = CramerVonMisesTest[data, ParetoDistribution[1, 2], "HypothesisTestData"];ℋ["ShortTestConclusion"]ℋ["TestConclusion"]//TraditionalFormℋ = CramerVonMisesTest[data, ParetoDistribution[1, 2], "HypothesisTestData", SignificanceLevel -> .001];ℋ["ShortTestConclusion"]ℋ["TestConclusion"]//TraditionalFormオプション (3)
Method (3)
モンテカルロ(Monte Carlo)法に基づくメソッドまたは計算式を使う:
data = RandomVariate[NormalDistribution[], 100];CramerVonMisesTest[data, NormalDistribution[], Method -> "MonteCarlo"]CramerVonMisesTest[data, NormalDistribution[], Method -> Automatic]data = RandomVariate[NormalDistribution[], 100];pts = Table[{i, CramerVonMisesTest[data, NormalDistribution[], Method -> {"MonteCarlo", "MonteCarloSamples" -> i}]}, {i, Range[5, 100, 5]}];モンテカルロ推定は,サンプルを増やすと,真の
値に収束する:
pval = CramerVonMisesTest[data, NormalDistribution[]];Show[ListLinePlot[pts, PlotRange -> {0, 1}, FrameLabel -> {"Samples", "P-Value"}, Frame -> True, AxesOrigin -> {0, 0}], Graphics[{Dashed, Line[{{0, pval}, {100, pval}}]}]]モンテカルロ法に基づくメソッドで使われるランダムなシードを設定する:
data = RandomVariate[NormalDistribution[], 100];pts = Table[{i, CramerVonMisesTest[data, NormalDistribution[], Method -> {"MonteCarlo", "RandomSeed" -> i, "MonteCarloSamples" -> 50}]}, {i, Range[1, 10]}];シードは生成器の状態に影響を与え,結果の
値にもいくらか影響を与える:
pval = CramerVonMisesTest[data, NormalDistribution[]];Show[ListLinePlot[pts, PlotRange -> {Min[pts[[All, 2]]], Max[pts[[All, 2]]]}, FrameLabel -> {"Seed", "P-Value"}, Frame -> True, AxesOrigin -> {0, 0}], Graphics[{Dashed, Line[{{0, pval}, {100, pval}}]}]]アプリケーション (3)
data = Table[RandomVariate[UniformDistribution[{-4, 4}], {500, i}], {i, n = {7, 10, 15, 20, 25, 30, 50}}];ℋ = Table[CramerVonMisesTest[data[[i, j]], NormalDistribution[]], {i, Length[data]}, {j, Length[data[[i]]]}];pC = Interpolation[Transpose[{n, Table[Probability[x ≤ 0.05, xi], {i, ℋ}]}], InterpolationOrder -> 1];Plot[pC[x], {x, 7, 50}, PlotRange -> {0, 1}, Ticks -> {n, Automatic}, AxesOrigin -> {0, 0}]基礎となる分布がUniformDistribution[{-4,4}]であり,検定サイズが0.05,サンプルサイズが32である場合に,Cramér–von Mises検定の検出力を推定する:
pC[32.]同次ポワソン(Poisson)過程によって生成される観察は,完全な空間ランダム性を示すはずである.これは,観察が同一分布から導き出されたことを示唆する.以下の画像からの観察が均質ポワソン過程でうまくモデル化できるかどうかを見極める:
img1 = [image];img2 = [image];m = MorphologicalComponents[Binarize[#, {0, .7}]]& /@ {img1, img2};locs = ComponentMeasurements[#, "Centroid"][[All, 2]]& /@ m;s1 = MapThread[Rescale[#1, {0, #2}]&, {locs[[1]], ImageDimensions[img1]}];
s2 = MapThread[Rescale[#1, {0, #2}]&, {locs[[2]], ImageDimensions[img2]}];CramerVonMisesTest[s1, UniformDistribution[{{0, 1}, {0, 1}}], "TestDataTable"]2つ目のグループのモデルは,依存性を説明しなければならない:
CramerVonMisesTest[s2, UniformDistribution[{{0, 1}, {0, 1}}], "TestDataTable"]Cramér–von Mises検定統計を最小化する分布の母数を求める:
data = RandomVariate[NormalDistribution[], 100];f[μ_ ? NumericQ, σ_ ? NumericQ, dist_] := CramerVonMisesTest[data, dist[μ, σ], "TestStatistic"]par = FindMinimum[f[μ, σ, NormalDistribution], {{μ}, {σ}}]結果をFindDistributionParametersと比べる:
estPar = FindDistributionParameters[data, NormalDistribution[μ, σ]]Show[Plot3D[f[μ, σ, NormalDistribution], {μ, -3, 3}, {σ, 0, 6}, PlotStyle -> Directive[Opacity[0.5]], PlotRange -> {{-2, 2}, {0, 3}, {-10, 35}}], Graphics3D[{Red, Tube[{{μ, σ, 40}, {μ, σ, -20}} /. par[[2]], .05]}],
Graphics3D[{Green, Tube[{{μ, σ, 40}, {μ, σ, -20}} /. estPar, .05]}], AspectRatio -> 1]特性と関係 (8)
デフォルトで一変量データはNormalDistributionと比べられる:
data = RandomVariate[NormalDistribution[2, 3], 10];ℋ = CramerVonMisesTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["FittedDistribution"]多変量データは,デフォルトでMultinormalDistributionと比べられる:
data = RandomVariate[MultinormalDistribution[{1, 2, 3}, IdentityMatrix[3]], 1000];ℋ = CramerVonMisesTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["FittedDistribution"]//TraditionalForm検定分布の母数は,指定されない場合にはデータから推測される:
data = RandomVariate[NormalDistribution[1, 2], 1000];CramerVonMisesTest[data, NormalDistribution[μ, σ], "FittedDistribution"]CramerVonMisesTest[data, NormalDistribution[μ, 2], "FittedDistribution"]CramerVonMisesTest[data, NormalDistribution[1, 2], "FittedDistribution"]data = RandomVariate[ExponentialDistribution[3], 10^3];ℋ = CramerVonMisesTest[data, ExponentialDistribution[λ], "FittedDistribution"]CramerVonMisesTest[data, ExponentialDistribution[λ]]母数が未知の場合,CramerVonMisesTestは可能であれば修正を適用する:
data = RandomVariate[NormalDistribution[3, 4], 10^4];est = EstimatedDistribution[data, NormalDistribution[μ, σ]]CramerVonMisesTest[data, est]ℋ = CramerVonMisesTest[data, NormalDistribution[μ, σ], "HypothesisTestData"];ℋ["FittedDistribution"]ℋ["PValue"]data = RandomVariate[MultinormalDistribution[{0, 0}, {{0.118, 0.252}, {0.252, 0.665}}], 100];CramerVonMisesTest[data, MultinormalDistribution[{0, 0}, {{0.118, 0.252}, {0.252, 0.665}}], "TestStatistic"]CramerVonMisesTest[data, MultinormalDistribution[{0, 0}, {{0.118, 0}, {0, 0.665}}], "TestStatistic"]Cramér–von Mises検定はNExpectationを使って定義することができる:
n = 10;
h0 = NormalDistribution[1, 2];
data = RandomVariate[h0, n];f[x_] := CDF[h0, x]
Overscript[f, ^ ][x_] := CDF[EmpiricalDistribution[data], x]n NExpectation[(Overscript[f, ^ ][t] - f[t])^2, th0]CramerVonMisesTest[data, h0, "TestStatistic"]Cramér–von Mises検定は,入力がTimeSeriesのときにのみ値に使うことができる:
ts = TemporalData[TimeSeries, {{{1.224578634529677, 0.47929635789978015, 0.6572781300178168,
0.21496048742669355, 0.7299608014554928, -0.2495111111278263, -1.3286551762002712,
0.552725018274874, 0.19272112205837066, 1.1809144012420882, -1.1671 ... 40938613662046, 1.052394590214582, 0.9345044123980388, 0.38537803109557855,
-0.48660931166089394, -0.71203560340161}}, {{0, 100, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {ValueDimensions -> 1, ResamplingMethod -> None}}, False, 10.1];CramerVonMisesTest[ts]CramerVonMisesTest[ts["Values"]]考えられる問題 (3)
Cramér–von Mises検定は離散分布には使えない:
data = RandomVariate[PoissonDistribution[30], 35];CramerVonMisesTest[data, PoissonDistribution[30]]一般に連続性の訂正は検定サイズの保全の点からするとうまくいく:
sim = RandomVariate[PoissonDistribution[30], {500, 35}];p = Quiet[CramerVonMisesTest[#, PoissonDistribution[30]]]& /@ sim;Show[ListLinePlot[Table[{α, Probability[pv ≤ α, pvp]}, {α, .01, 1, .01}]], Plot[x, {x, 0, 1}, PlotStyle -> Dashed]]sim = RandomVariate[DiscreteUniformDistribution[{1, 3}], {500, 35}];p = Quiet[CramerVonMisesTest[#, DiscreteUniformDistribution[{1, 3}]]]& /@ sim;Show[ListLinePlot[Table[{α, Probability[pv ≤ α, pvp]}, {α, .01, 1, .01}]], Plot[x, {x, 0, 1}, PlotStyle -> Dashed]]そのような場合にはモンテカルロ法またはPearsonChiSquareTestを使う:
CramerVonMisesTest[sim[[1]], DiscreteUniformDistribution[{1, 3}], Method -> "MonteCarlo"]PearsonChiSquareTest[sim[[1]], DiscreteUniformDistribution[{1, 3}]]母数がデータから推定される場合には,Cramér–von Mises検定は,分布によっては有効ではないことがある:
data = RandomVariate[BetaDistribution[1, 2], 100];CramerVonMisesTest[data, BetaDistribution[1, b]]CramerVonMisesTest[data, BetaDistribution[1, 2]]CramerVonMisesTest[data, BetaDistribution[1, b], Method -> "MonteCarlo"]Cramér–von Mises検定のサンプルサイズは,有効な
値を得るためには少なくとも7でなければならない:
data = RandomVariate[NormalDistribution[], 5];DistributionFitTest[data, Automatic, "CramerVonMises"]DistributionFitTest[data, Automatic, "CramerVonMises", Method -> "MonteCarlo"]おもしろい例題 (1)
data = RandomVariate[NormalDistribution[], {2500, 100}];T1 = CramerVonMisesTest[#, NormalDistribution[], "TestStatistic"]& /@ data;T2 = CramerVonMisesTest[#, NormalDistribution[.5, 2], "TestStatistic"]& /@ data;SmoothHistogram[{T1, T2}, Filling -> Axis, PlotLegends -> {"SubscriptBox[H, 0]は真", "SubscriptBox[H, 0]は偽"}]関連するガイド
-
▪
- 仮説検定
テキスト
Wolfram Research (2010), CramerVonMisesTest, Wolfram言語関数, https://reference.wolfram.com/language/ref/CramerVonMisesTest.html.
CMS
Wolfram Language. 2010. "CramerVonMisesTest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/CramerVonMisesTest.html.
APA
Wolfram Language. (2010). CramerVonMisesTest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CramerVonMisesTest.html
BibTeX
@misc{reference.wolfram_2026_cramervonmisestest, author="Wolfram Research", title="{CramerVonMisesTest}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/CramerVonMisesTest.html}", note=[Accessed: 01-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_cramervonmisestest, organization={Wolfram Research}, title={CramerVonMisesTest}, year={2010}, url={https://reference.wolfram.com/language/ref/CramerVonMisesTest.html}, note=[Accessed: 01-September-2026]}