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]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"];来自一个 Brown–Forsythe检验的
值和检验统计量:
ℋ[{{"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,所以在 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)
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"]两个班共 25 个小学生用同一把尺子测量一个长度为 2.15 厘米的物体:
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};检验功效有六种不同的水平. 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 minOneSided对于单个样本,Brown–Forsythe 和 Levene 检验等价于 Fisher Ratio 检验:
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 检验未定义:
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 语言. 2010. "VarianceTest." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/VarianceTest.html.
APA
Wolfram 语言. (2010). VarianceTest. Wolfram 语言与系统参考资料中心. 追溯自 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: 03-November-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: 03-November-2026]}