VarianceTest[data]
data の分散が1つであるかどうかの検定を行う.
VarianceTest[{data1,data2}]
data1と data2の分散が等しいかどうかの検定を行う.
VarianceTest[dspec,σ02]
σ02に対する分散量度の検定を行う.
VarianceTest[dspec,σ02,"property"]
"property"の値を返す.
VarianceTest
VarianceTest[data]
data の分散が1つであるかどうかの検定を行う.
VarianceTest[{data1,data2}]
data1と data2の分散が等しいかどうかの検定を行う.
VarianceTest[dspec,σ02]
σ02に対する分散量度の検定を行う.
VarianceTest[dspec,σ02,"property"]
"property"の値を返す.
詳細とオプション
- VarianceTestは,帰無仮説
と対立仮説
で検定を行う. -


data 

{data1,data2} 

- ただし,σi2は dataiの母分散である.
- デフォルトで,確率値すなわち
値が返される.
値が小さければ
が真である可能性は低い.- dspec 中の data は一変量{x1,x2,…}でなければならない.
- 引数
は任意の正の実数でよい. - VarianceTest[dspec,
]は dspec に適用可能な中で最も強力な検定を選ぶ. - VarianceTest[dspec,
,All]は dspec に適用可能なすべての検定を選ぶ. - VarianceTest[dspec,
,"test"]は"test"に従って
値をレポートする. - ほとんどの検定には正規分布に従うデータが必要である.ある検定が正規性の仮説についてそれほど敏感ではない場合,その検定は強力であると呼ばれる.データが中央値について対称であると仮定する検定もある.
- 使用可能な検定
-
"BrownForsythe" ロバスト 強力なLevene検定 "Conover" 対称性 data の順位の平方に基づく "FisherRatio" 正規性
に基づく"Levene" ロバスト,対称性 個々の分散と集合の分散を比較する "SiegelTukey" 対称性 集められた data の順位に基づく - VarianceTest[data,
,"HypothesisTestData"]はHypothesisTestDataオブジェクト htd を返す.htd["property"]を使うと追加的な検定結果と特性が抽出できる. - VarianceTest[data,
,"property"]は"property"の値を直接与えるために使うことができる. - 検定結果のレポートに関連する特性
-
"AllTests" 適用可能な検定すべてのリスト "AutomaticTest" Automaticが使われた場合に選ばれる検定 "DegreesOfFreedom" 検定で使われる自由度 "PValue"
値のリスト"PValueTable"
値のフォーマットされた表"ShortTestConclusion" 検定結果の短い説明 "TestConclusion" 検定結果の説明 "TestData" 検定統計と
値のペアのリスト"TestDataTable" 検定統計と
値のフォーマットされた表"TestStatistic" 検定統計のリスト "TestStatisticTable" 検定統計のフォーマットされた表 - 使用可能なオプション
-
AlternativeHypothesis "Unequal" 対立仮説のための不等式 SignificanceLevel 0.05 診断とレポートのための切捨て VerifyTestAssumptions Automatic 実行する診断検定を設定する - 分散の検定では,
の場合にのみ
が棄却されるように切捨て
が選ばれる."TestConclusion"特性と"ShortTestConclusion"特性に使われる
の値はSignificanceLevelオプションで制御される.この値
は正規性診断や対称性診断を含む仮定の診断検定にも用いられる.デフォルトで
は0.05に設定されている. - VarianceTestにおけるVerifyTestAssumptionsの名前付き設定
-
"Normality" すべてのデータが正規分布に従うことを証明する "Symmetry" 共通の中央値について対称性を証明する
例題
すべて開く すべて閉じる例 (3)
SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 100}];VarianceTest[data]さらに特性を抽出するためにHypothesisTestDataオブジェクトを作成する:
ℋ = VarianceTest[data, Automatic, "HypothesisTestData"]ℋ["TestDataTable", All]SeedRandom[1];data = RandomVariate[NormalDistribution[1, 2], 10^3];VarianceTest[data, 4, "TestDataTable"]Variance[data]SeedRandom[1];data1 = RandomVariate[NormalDistribution[0, 1], 100];
data2 = RandomVariate[NormalDistribution[0, 2.5], 250];VarianceTest[{data1, data2}, 1 / 4, "TestDataTable"]Variance[data1] / Variance[data2]VarianceTest[{data1, data2}, 1 / 4, AlternativeHypothesis -> "Less"]スコープ (15)
検定 (11)
SeedRandom[1];data1 = RandomVariate[NormalDistribution[], 500];
data2 = RandomVariate[NormalDistribution[1, 1 / 3], 500];VarianceTest[data1]VarianceTest[data2]SeedRandom[2];data1 = RandomVariate[NormalDistribution[0, 2], 10^4];
data2 = RandomVariate[NormalDistribution[0, 2.1], 10^4];VarianceTest[data1, 2^2]VarianceTest[data2, 2^2]SeedRandom["K"];
tempData = RandomVariate[NormalDistribution[Quantity[273, "Kelvins"], Quantity[5, "Kelvins"]], 26]VarianceTest[tempData, (Quantity[4.8, "Kelvins"])^2]SeedRandom[1];data1 = RandomVariate[NormalDistribution[], 500];
data2 = RandomVariate[StudentTDistribution[5], 500];
data3 = RandomVariate[NormalDistribution[], 350];VarianceTest[{data1, data3}]VarianceTest[{data1, data2}]SeedRandom[1];data1 = RandomVariate[NormalDistribution[0, 2], 500];
data2 = RandomVariate[NormalDistribution[0, 1], 500];Subscript[σ, 0] = 4;VarianceTest[{data2, data1}, 1 / Subscript[σ, 0]]VarianceTest[{data1, data2}, Subscript[σ, 0]]VarianceTest[{data2, data1}, Subscript[σ, 0]]Automaticを使うと,一般に最も強力で適切な検定が適用される:
SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 10^4}];VarianceTest[data, 1, Automatic]特性"AutomaticTest"は,どの検定が選ばれたのかを調べるのに使える:
VarianceTest[data, 1, "AutomaticTest"]SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 10^3}];VarianceTest[data, 1, "BrownForsythe"]VarianceTest[data, 1, {"PValue", {"Levene", "BrownForsythe"}}]SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 250}];VarianceTest[data, 1, All]特性"AllTests"を使ってどの検定が使われたのかを調べる:
VarianceTest[data, 1, "AllTests"]繰り返し特性を抽出するためにHypothesisTestDataオブジェクトを作成する:
SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ["Properties"]HypothesisTestDataオブジェクトから特性をいくつか抽出する:
SeedRandom[2];data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ["PValue", "Levene"]ℋ["TestStatistic", "Levene"]SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 100}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ[{{"PValue", "BrownForsythe"}, {"TestStatistic", "BrownForsythe"}}]レポート (4)
SeedRandom[1];data = RandomVariate[NormalDistribution[], {2, 10^3}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["TestDataTable", All]ℋ["TestDataTable", {"Conover", "BrownForsythe"}]data = BlockRandom[SeedRandom[1];RandomVariate[NormalDistribution[], {2, 10^3}]];ℋ = VarianceTest[data, 1, "HypothesisTestData"];res = ℋ["TestData", All];ℋ["AllTests"]
値が0.05より大きいので,このレベルでは正規性を退けるのに十分な証拠はない:
Show[BarChart[res[[All, 2]], ChartLabels -> Placed[ℋ["AllTests"], Center], BarOrigin -> Left], Graphics[{Dashed, InfiniteLine[{{.05, 0}, {.05, 1}}]}]]SeedRandom[2];data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ["PValueTable", "Levene"]ℋ["PValue", "Levene"]ℋ["PValueTable", All]ℋ["PValueTable", {"Levene", "Conover", "BrownForsythe"}]SeedRandom[1];data = RandomVariate[CauchyDistribution[1, 2], {2, 10^3}];ℋ = VarianceTest[data, 1, "HypothesisTestData"];ℋ["TestStatisticTable"]ℋ["TestStatistic"]ℋ["TestStatisticTable", All]オプション (10)
AlternativeHypothesis (3)
SeedRandom[1];
data = RandomVariate[NormalDistribution[], 100];VarianceTest[data, 1, AlternativeHypothesis -> "Unequal"]VarianceTest[data, 1, AlternativeHypothesis -> Automatic]SeedRandom[1];data = RandomVariate[NormalDistribution[0, 1.25], 100];VarianceTest[data, Automatic, AlternativeHypothesis -> "Unequal"]VarianceTest[data, Automatic, AlternativeHypothesis -> "Less"]VarianceTest[data, Automatic, AlternativeHypothesis -> "Greater"]SeedRandom[1];data1 = RandomVariate[NormalDistribution[0, .9], 100];
data2 = RandomVariate[NormalDistribution[0, 1], 100];Variance[data1] / Variance[data2]VarianceTest[{data1, data2}, 1, AlternativeHypothesis -> "Less"]VarianceTest[{data1, data2}, 1.5, AlternativeHypothesis -> "Less"]SignificanceLevel (3)
SeedRandom[1];data = BlockRandom[SeedRandom[5];RandomVariate[StudentTDistribution[3], 50]];VarianceTest[data, 1, "FisherRatio", SignificanceLevel -> .005]VarianceTest[data, 1, "FisherRatio", SignificanceLevel -> Automatic]有意水準を設定することによって自動的にどの検定が選ばれるかが変わることがある:
data = BlockRandom[SeedRandom[1];RandomVariate[StudentTDistribution[3], {2, 50}]];VarianceTest[data, 1, "AutomaticTest", SignificanceLevel -> .0001]VarianceTest[data, 1, "AutomaticTest", SignificanceLevel -> Automatic]有意水準は"TestConclusion"と"ShortTestConclusion"にも使われる:
data = BlockRandom[SeedRandom[1];RandomVariate[NormalDistribution[0, 1], 100]];ℋ1 = VarianceTest[data, 1.5, "HypothesisTestData", SignificanceLevel -> .05];ℋ2 = VarianceTest[data, 1.5, "HypothesisTestData", SignificanceLevel -> .01];ℋ1["TestConclusion"]//TraditionalFormℋ2["TestConclusion"]//TraditionalFormℋ1["ShortTestConclusion"]ℋ2["ShortTestConclusion"]VerifyTestAssumptions (4)
診断は,AllかNoneを使ってまとめて制御することができる:
SeedRandom[1];data1 = RandomVariate[StudentTDistribution[3], 1000];
data2 = RandomVariate[NormalDistribution[0, Sqrt[3]], 1000];VarianceTest[{data1, data2}, 1 / 4, "Levene", VerifyTestAssumptions -> All]VarianceTest[{data1, data2}, 1 / 4, "Levene", VerifyTestAssumptions -> None]SeedRandom[2];data1 = RandomVariate[StudentTDistribution[3], 1000];
data2 = RandomVariate[NormalDistribution[0, Sqrt[3]], 1000];VarianceTest[{data1, data2}, 1 / 4, "Levene", VerifyTestAssumptions -> "Symmetry"]VarianceTest[{data1, data2}, 1 / 4, "Levene", VerifyTestAssumptions -> "Normality"]data = RandomVariate[CauchyDistribution[0, 1], 100];VarianceTest[data, 1, "TestDataTable"]VarianceTest[data, 1, "TestDataTable", VerifyTestAssumptions -> "Normality" -> True]シミュレーションを行う場合は,診断検定を行わないようにすると有益であることが多い:
data = RandomVariate[NormalDistribution[], {1000, 100}];AbsoluteTiming[T = Quiet@VarianceTest[#, Automatic, {"TestStatistic", "FisherRatio"}]& /@ data;]検定の仮定は意図的に有効になっているので,時間が大幅に短縮できる:
AbsoluteTiming[T2 = Quiet@VarianceTest[#, Automatic, {"TestStatistic", "FisherRatio"}, VerifyTestAssumptions -> None]& /@ data;]SmoothHistogram[{T, T2}]アプリケーション (2)
SeedRandom[1];data1 = RandomVariate[NormalDistribution[0, 1], 100];
data2 = RandomVariate[NormalDistribution[0, 1], 100];
data3 = RandomVariate[NormalDistribution[0, 3], 100];BoxWhiskerChart[{data1, data2, data3}, "Notched", ChartStyle -> "SolarColors"]VarianceTest[{data1, data2}, Automatic, "TestDataTable"]VarianceTest[{data1, data3}, Automatic, "TestDataTable"]2つの異なるクラスで25人の小学生が,長さ2.15cmのものを同じ定規を使って測った:
group1 = {2.28, 2.13, 2.21, 2., 2.06, 2.09, 2.12, 2.27, 2.17, 2.09, 2.02, 2.28, 2.28, 2.03, 2.11, 2.05, 2.06, 2.28, 2.1, 2.35, 2.07, 2.22, 2.19, 2.33, 2.02};group2 = {2.03, 2.12, 1.92, 1.96, 2.05, 2.05, 2.02, 2.12, 2.02, 1.95, 2., 2.03, 1.93, 1.96, 2.08, 1.92, 2.12, 2.01, 1.84, 2.06, 2., 1.95, 1.90, 2., 1.94};{Variance[group1], Variance[group2]}VarianceTest[{group1, group2}, 1, "TestDataTable"]SqrErr1 = (group1 - 2.15)^2;SqrErr2 = (group2 - 2.15)^2;{Mean[SqrErr1], Mean[SqrErr2]}LocationTest[{SqrErr1, SqrErr2}, 0, "TestDataTable"]特性と関係 (7)
data = RandomVariate[NormalDistribution[], {1000, 10}];pvals = Table[VarianceTest[i, 1, "FisherRatio", VerifyTestAssumptions -> None], {i, data}];検定のサイズを0.05に設定すると,5%の割合で
が誤って退けられる結果になる:
Probability[x ≤ 0.05, xpvals]//Nn = 100;data1 = RandomVariate[NormalDistribution[0, .75], {1000, n}];
data2 = RandomVariate[NormalDistribution[0, 1], {1000, n}];tests = VarianceTest[{data1[[1]], data2[[1]]}, 1, "AllTests"]pvs = MapThread[VarianceTest[{#1, #2}, 1, tests, VerifyTestAssumptions -> None]&, {data1, data2}];α = {.001, .005, .01, .025, .05, .1};6つの異なるレベルにおける検定の力.Siegel–Tukey検定が最も低い力を持つ:
Grid[Join[{Join[{""}, α]}, Table[Join[{tests[[i]]}, (Probability[x ≤ #1, xpvs[[All, i]]]&) /@ α], {i, Length[tests]}]], Alignment -> Left, Background -> {None, {StandardGray, {StandardBlue, StandardPink}}}, Dividers -> {{False, True}, {False, True}}]//Nn = 10;data1 = RandomVariate[NormalDistribution[0, .75], {1000, n}];
data2 = RandomVariate[NormalDistribution[0, 1], {1000, n}];tests = VarianceTest[{data1[[1]], data2[[1]]}, 1, "AllTests"]pvs = MapThread[VarianceTest[{#1, #2}, 1, tests, VerifyTestAssumptions -> None]&, {data1, data2}];α = {.001, .005, .01, .025, .05, .1};Grid[Join[{Join[{""}, α]}, Table[Join[{tests[[i]]}, (Probability[x ≤ #1, xpvs[[All, i]]]&) /@ α], {i, Length[tests]}]], Alignment -> Left, Background -> {None, {StandardGray, {StandardPurple, StandardBlue}}}, Dividers -> {{False, True}, {False, True}}]//Ndata1 = RandomVariate[NormalDistribution[0, 1], 100];
data2 = RandomVariate[NormalDistribution[0, .5], 100];twoSided = VarianceTest[{data1, data2}, 1, All, AlternativeHypothesis -> "Unequal"];minOneSided = Min /@ Transpose[{VarianceTest[{data1, data2}, 1, All, AlternativeHypothesis -> "Less"], VarianceTest[{data1, data2}, 1, All, AlternativeHypothesis -> "Greater"]}];twoSided - 2 minOneSidedBrown–Forsythe検定とルベーン(Levene)検定は1つのサンプルについてフィッシャー(Fisher)の比率検定に等しい:
data = RandomVariate[NormalDistribution[], 100];VarianceTest[data, Automatic, {"TestDataTable", {"FisherRatio", "BrownForsythe", "Levene"}}]分散検定は,入力が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];VarianceTest[ts, Automatic, {"TestDataTable", All}]VarianceTest[ts["Values"], Automatic, {"TestDataTable", All}]%% == %分散検定は,入力がTemporalDataのときはすべての値に同時に使うことができる:
td = TemporalData[Automatic, {{{-0.25275046867718637, -0.7175779198306353, -1.9370139837317764,
0.006665621735740701, -0.3730807122324292, 0.6740106823161018, 0.8562214990564344,
0.955785083955732, 1.7020898014886303, 1.8523009430646802, 0.244 ... 3951759101545, -1.1611722313627828, 1.1602446901533021,
1.1052173095128992, 1.1089143920161917, -0.13837156328402}}, {{0, 100, 1}}, 2,
{"Continuous", 2}, {"Discrete", 1}, 1, {ValueDimensions -> 1, ResamplingMethod -> None}}, False,
10.1];VarianceTest[td]data = td["ValueList"]//Flatten;
VarianceTest[data]{data1, data2} = td["ValueList"];VarianceTest[{data1, data2}]考えられる問題 (2)
Conover検定とSiegel–Tukey検定は1つのサンプルについては定義されない:
data = RandomVariate[NormalDistribution[], 100];VarianceTest[data, Automatic, {"TestDataTable", {"Conover", "SiegelTukey"}}]data = RandomVariate[LaplaceDistribution[1, 2], {2, 100}];VarianceTest[data, Automatic, {"TestDataTable", {"BrownForsythe", "FisherRatio", "Levene"}}]
Conover検定とSiegel–Tukey検定は正規性を仮定しない:
VarianceTest[data, Automatic, {"TestDataTable", {"Conover", "SiegelTukey"}}]おもしろい例題 (1)
data = RandomVariate[NormalDistribution[], {250, 100}];T1 = VarianceTest[#, 1, "TestStatistic", VerifyTestAssumptions -> None]& /@ data;T2 = VarianceTest[#, 2, "TestStatistic", VerifyTestAssumptions -> None]& /@ data;SmoothHistogram[{T1, T2}, Filling -> Axis, PlotLegends -> {"SubscriptBox[H, 0] is True", "SubscriptBox[H, 0] is False"}]テキスト
Wolfram Research (2010), VarianceTest, Wolfram言語関数, https://reference.wolfram.com/language/ref/VarianceTest.html.
CMS
Wolfram Language. 2010. "VarianceTest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/VarianceTest.html.
APA
Wolfram Language. (2010). VarianceTest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/VarianceTest.html
BibTeX
@misc{reference.wolfram_2026_variancetest, author="Wolfram Research", title="{VarianceTest}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/VarianceTest.html}", note=[Accessed: 10-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_variancetest, organization={Wolfram Research}, title={VarianceTest}, year={2010}, url={https://reference.wolfram.com/language/ref/VarianceTest.html}, note=[Accessed: 10-October-2026]}