AndersonDarlingTest[data]
利用 Anderson–Darling 检验检测data 是否服从正态分布.
AndersonDarlingTest[data,dist]
利用 Anderson–Darling 检验检测data 是否服从分布 dist.
AndersonDarlingTest[data,dist,"property"]
返回 "property" 的值.
AndersonDarlingTest
AndersonDarlingTest[data]
利用 Anderson–Darling 检验检测data 是否服从正态分布.
AndersonDarlingTest[data,dist]
利用 Anderson–Darling 检验检测data 是否服从分布 dist.
AndersonDarlingTest[data,dist,"property"]
返回 "property" 的值.
更多信息和选项
- AndersonDarlingTest 执行 Anderson-Darling 拟合优度检验,其中零假设
为 data 从服从分布 dist 的群体中抽取,而备择假设
认为不是. - 缺省时返回一个概率值,即
值. - 如果
值较小,则 data 服从 dist 分布的可能性较小. - dist 可以是一个数据集,也可以是参数为数值型或符号型的任意符号式分布.
- data 可以为单变量 {x1,x2,…} 或多变量 {{x1,y1,…},{x2,y2,…},…}.
- Anderson–Darling 检验假设数据来自一个连续分布.
- Anderson–Darling检验实际使用的是基于
的检验统计量,其中
为 data 的经验 CDF,
为 dist 的 CDF. - 对于单变量数据,检验统计量为
,其中
是按顺序排列的数据. - 对于多变量检验,使用的是单变量边缘
值的和,并且假定在
下服从 UniformSumDistribution. - AndersonDarlingTest[data,dist,"HypothesisTestData"] 返回一个 HypothesisTestData 对象 htd,该对象可利用形式 htd["property"] 提取额外的检验结果与性质.
- AndersonDarlingTest[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" 下,在
下使用拟合分布,生成
个与输入
具有相同长度的数据集. 来自 AndersonDarlingTest[si,dist,"TestStatistic"] 的 EmpiricalDistribution 用于估计
值.
范例
打开所有单元 关闭所有单元基本范例 (3)
data = RandomVariate[NormalDistribution[], 10^3];AndersonDarlingTest[data]Show[SmoothHistogram[data, PlotStyle -> {Dashed, Red}], Plot[PDF[NormalDistribution[], x], {x, -4, 4}]]data = RandomVariate[PowerDistribution[1, 2], 10^4];AndersonDarlingTest[data, PowerDistribution[1, 2]]Show[Histogram[data, Automatic, "PDF"], Plot[PDF[PowerDistribution[1, 2], x], {x, 0, 1}, PlotStyle -> Thick, PlotRange -> All]]data1 = RandomVariate[NormalDistribution[], 100];data2 = RandomVariate[NormalDistribution[.1, 1], 150];AndersonDarlingTest[data1, data2]SmoothHistogram[{data1, data2}]范围 (9)
检验 (6)
data1 = RandomVariate[NormalDistribution[], 10^4];
data2 = RandomVariate[StudentTDistribution[3], 10^4];AndersonDarlingTest[data1]AndersonDarlingTest[data2]data1 = RandomVariate[NormalDistribution[], 10^3];
data2 = RandomVariate[CauchyDistribution[0, 1], 10^3];AndersonDarlingTest[data1, CauchyDistribution[0, 1]]AndersonDarlingTest[data2, CauchyDistribution[0, 1]]data1 = RandomVariate[NormalDistribution[], 10^3];
data2 = RandomVariate[NormalDistribution[], 10^3];AndersonDarlingTest[data1, data2]data3 = RandomVariate[NormalDistribution[0, 1.25], 10^3];AndersonDarlingTest[data1, data3]data1 = RandomVariate[BinormalDistribution[.5], 10^3];
data2 = RandomVariate[LaplaceDistribution[1, 2], {10^3, 2}];AndersonDarlingTest[data1]AndersonDarlingTest[data2]data1 = RandomVariate[BinormalDistribution[.5], 10^3];
data2 = RandomVariate[𝒹 = LaplaceDistribution[1, 2], {10^3, 2}];𝒟 = ProductDistribution[𝒹, 𝒹];AndersonDarlingTest[data1, 𝒟]AndersonDarlingTest[data2, 𝒟]创建一个 HypothesisTestData 对象以进行重复属性提取:
data = RandomVariate[NormalDistribution[], 10^5];ℋ = AndersonDarlingTest[data, Automatic, "HypothesisTestData"]ℋ["Properties"]报告 (3)
将 Anderson–Darling 检验的结果制作成表格:
data = RandomVariate[NormalDistribution[], 100];ℋ = AndersonDarlingTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["PValueTable"]ℋ["TestStatisticTable"]从 Anderson–Darling 检验表中提取项目,用于生成定制的报告:
data1 = RandomVariate[NormalDistribution[], 100];
data2 = RandomVariate[NormalDistribution[], 100];ℋ1 = AndersonDarlingTest[data1, Automatic, "TestData"]ℋ2 = AndersonDarlingTest[data2, Automatic, "TestData"]BarChart[{Labeled[ℋ1, "Set 1"], Labeled[ℋ2, "Set 2"]}, ChartLabels -> {"SuperscriptBox[A, 2]", "p‐value"}]使用 "ShortTestConclusion" 和 "TestConclusion" 报告检验结论:
data = BlockRandom[SeedRandom[1];RandomVariate[ParetoDistribution[1.05, 2], 100]];ℋ = AndersonDarlingTest[data, ParetoDistribution[1, 2], "HypothesisTestData"];ℋ["ShortTestConclusion"]ℋ["TestConclusion"]//TraditionalFormℋ = AndersonDarlingTest[data, ParetoDistribution[1, 2], "HypothesisTestData", SignificanceLevel -> .001];ℋ["ShortTestConclusion"]ℋ["TestConclusion"]//TraditionalForm选项 (4)
Method (3)
data = RandomVariate[NormalDistribution[], 100];AndersonDarlingTest[data, NormalDistribution[], Method -> "MonteCarlo"]AndersonDarlingTest[data, NormalDistribution[], Method -> Automatic]data = RandomVariate[NormalDistribution[], 100];pts = Table[{i, AndersonDarlingTest[data, NormalDistribution[], Method -> {"MonteCarlo", "MonteCarloSamples" -> i}]}, {i, Range[5, 250, 15]}];pval = AndersonDarlingTest[data, NormalDistribution[]];Show[ListLinePlot[pts, PlotRange -> {0, 1}, FrameLabel -> {"Samples", "P-Value"}, Frame -> True, AxesOrigin -> {0, 0}], Graphics[{Dashed, Line[{{0, pval}, {250, pval}}]}]]data = RandomVariate[NormalDistribution[], 100];pts = Table[{i, AndersonDarlingTest[data, NormalDistribution[], Method -> {"MonteCarlo", "RandomSeed" -> i, "MonteCarloSamples" -> 50}]}, {i, Range[1, 10]}];pval = AndersonDarlingTest[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}}]}]]SignificanceLevel (1)
设置用于 "TestConclusion" 和 "ShortTestConclusion" 的显著性水平:
data = BlockRandom[SeedRandom[1];RandomVariate[NormalDistribution[], 100]];AndersonDarlingTest[data, NormalDistribution[0, 1.5], "ShortTestConclusion", SignificanceLevel -> .05]AndersonDarlingTest[data, NormalDistribution[0, 1.5], "ShortTestConclusion", SignificanceLevel -> .01]AndersonDarlingTest[data, NormalDistribution[0, 1.5], "TestConclusion"]//TraditionalForm应用 (4)
可以证明 GammaDistribution[1,1/λ] 等价于 ExponentialDistribution[λ]. 该结论被模拟实验支持:
λvect = {2, 4, 6, 8, 10};data = Table[RandomVariate[GammaDistribution[1, (1/λ)], {1000, 100}], {λ, λvect}];执行 Anderson–Darling 检验,把每个数据集根据
的期望值分组:
p = Table[(AndersonDarlingTest[#1, ExponentialDistribution[λvect[[i]]]]&) /@ data[[i]], {i, Length[λvect]}];And@@(AndersonDarlingTest[#, UniformDistribution[], "PValue"] > 0.05& /@ p)data = Table[RandomVariate[UniformDistribution[{-4, 4}], {500, i}], {i, n = {5, 7, 10, 15, 20, 25, 30}}];ℋ = Table[AndersonDarlingTest[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, 5, 30}, PlotRange -> {.6, 1}, Ticks -> {n, Automatic}, AxesOrigin -> {0, 0.6}]当内在分布是 UniformDistribution[{-4,4}],检验大小为 0.05,并且样本大小为 6 时,估计 Anderson–Darling 检验的效能:
pC[6.]一组测量数据从来自3个物种、每个物种50个样本中采集. 据观察,物种 setosa 容易识别,但是另外两种,versicolor 和 virginica,经常被混淆:
data = ExampleData[{"Statistics", "FisherIris"}];petalLen = data[[All, 3]];species = data[[All, -1]];SmoothHistogram[Pick[petalLen, species, #], PlotLabel -> #, Filling -> Axis]& /@ DeleteDuplicates[species]对于 versicolor 和 virginica 的分布是一致的,但是与 setosa 有很大不同:
AndersonDarlingTest[Pick[petalLen, species, "versicolor"], Pick[petalLen, species, "viginica"]]AndersonDarlingTest[Pick[petalLen, species, "setosa"], Pick[petalLen, species, "virginica" | "versicolor"]]Subscript[μ, s] = 1.5;Subscript[μ, vv] = 4.9;Subscript[σ, s] = .2;Subscript[σ, vv] = .8;𝒟 = MixtureDistribution[{50 / 150, 100 / 150}, {NormalDistribution[Subscript[μ, s], Subscript[σ, s]], NormalDistribution[Subscript[μ, vv], Subscript[σ, vv]]}];𝒟data = SmoothKernelDistribution[petalLen, {"Adaptive", Automatic, .5}];Plot[{PDF[𝒟, x], PDF[𝒟data, x]}, {x, 0, 8}, PlotLegends -> {"𝒟", "𝒟data"}]AndersonDarlingTest[petalLen, 𝒟, "TestDataTable"]通过最小化 Anderson-Darling 检验统计量来估计分布的参数:
data = RandomVariate[StudentTDistribution[6.4], 500];adDistance[df_Real] := AndersonDarlingTest[data, StudentTDistribution[df], "TestStatistic"]Plot[adDistance[ν], {ν, 1, 10}]νMinAD = NArgMin[{adDistance[ν], ν > 0}, ν]νMLE = ν /. FindDistributionParameters[data, StudentTDistribution[ν]]比较采用这两个最优参数时的 Anderson-Darling 检验统计量:
{adDistance[νMinAD], adDistance[νMLE]}属性和关系 (9)
默认情况下,单变量数据与 NormalDistribution 相比较:
data = RandomVariate[NormalDistribution[2, 3], 10^4];ℋ = AndersonDarlingTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["FittedDistribution"]默认情况下,多变量数据与 MultinormalDistribution 相比较:
data = RandomVariate[MultinormalDistribution[{1, 2, 3}, IdentityMatrix[3]], 1000];ℋ = AndersonDarlingTest[data, Automatic, "HypothesisTestData"];ℋ["TestDataTable"]ℋ["FittedDistribution"]//TraditionalFormdata = RandomVariate[NormalDistribution[1, 2], 1000];AndersonDarlingTest[data, NormalDistribution[μ, σ], "FittedDistribution"]AndersonDarlingTest[data, NormalDistribution[μ, 2], "FittedDistribution"]AndersonDarlingTest[data, NormalDistribution[1, 2], "FittedDistribution"]data = RandomVariate[ExponentialDistribution[3], 10^3];ℋ = AndersonDarlingTest[data, ExponentialDistribution[λ], "FittedDistribution"]EstimatedDistribution[data, ExponentialDistribution[λ]]如果参数未知,则当可能的情况下,AndersonDarlingTest 应用一次校正:
data = RandomVariate[NormalDistribution[3, 4], 10^4];est = EstimatedDistribution[data, NormalDistribution[μ, σ]]AndersonDarlingTest[data, est]ℋ = AndersonDarlingTest[data, NormalDistribution[μ, σ], "HypothesisTestData"];ℋ["FittedDistribution"]ℋ["PValue"]data = RandomVariate[MultinormalDistribution[{0, 0}, {{0.118, 0.252}, {0.252, 0.665}}], 100];AndersonDarlingTest[data, MultinormalDistribution[{0, 0}, {{0.118, 0.252}, {0.252, 0.665}}], "TestStatistic"]AndersonDarlingTest[data, MultinormalDistribution[{0, 0}, {{0.118, 0}, {0, 0.665}}], "TestStatistic"]n = 100;data = Sort@RandomVariate[StudentTDistribution[3], n];F[x_] := CDF[NormalDistribution[], x];-n - Underoverscript[∑, k, n](2 k - 1/n) (Log[1 - F[data[[n - k + 1]]]] + Log[F[data[[k]]]])AndersonDarlingTest[data, NormalDistribution[], "TestStatistic"]Anderson–Darling 统计量可以使用 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/f[t] (1 - f[t])), th0]AndersonDarlingTest[data, h0, "TestStatistic"]仅当输入为 TimeSeries 时,Anderson–Darling 检验适用于值:
ts = TemporalData[TimeSeries, {{{0., -0.11029234344648474, 0.0345779635879646, 0.1743666051306928,
0.16967400225598006, 0.1411114639333355, 0.23851991945192513, 0.26921448263698,
0.24027115738328042, 0.17492509184799315, 0.2781622872829057, 0. ... 276577, -0.45856201940681207, -0.4228641161946517,
-0.21228762599990375}}, {{0, 1., 0.01}}, 1, {"Continuous", 1}, {"Continuous", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.1];AndersonDarlingTest[ts]AndersonDarlingTest[ts["Values"]]可能存在的问题 (2)
data = RandomVariate[PoissonDistribution[30], 35];AndersonDarlingTest[data, PoissonDistribution[30]]sim = RandomVariate[PoissonDistribution[30], {500, 35}];p = Quiet[AndersonDarlingTest[#, PoissonDistribution[30]]]& /@ sim;Show[ListLinePlot[Table[{α, Probability[pv ≤ α, pvp]}, {α, .01, 1, .01}]], Plot[x, {x, 0, 1}, PlotStyle -> {Gray, Dashed}]]sim = RandomVariate[DiscreteUniformDistribution[{1, 3}], {500, 35}];p = Quiet[AndersonDarlingTest[#, DiscreteUniformDistribution[{1, 3}]]]& /@ sim;Show[ListLinePlot[Table[{α, Probability[pv ≤ α, pvp]}, {α, .01, 1, .01}]], Plot[x, {x, 0, 1}, PlotStyle -> {Gray, Dashed}]]在这些情况下,使用蒙特卡罗方法或者 PearsonChiSquareTest:
AndersonDarlingTest[sim[[1]], DiscreteUniformDistribution[{1, 3}], Method -> "MonteCarlo"]PearsonChiSquareTest[sim[[1]], DiscreteUniformDistribution[{1, 3}]]当参数已经从数据中估计得到时,对于某些分布, Anderson-Darling 检验是无效的:
data = RandomVariate[BetaDistribution[1, 2], 100];AndersonDarlingTest[data, BetaDistribution[1, b]]AndersonDarlingTest[data, BetaDistribution[1, 2]]AndersonDarlingTest[data, BetaDistribution[1, b], Method -> "MonteCarlo"]巧妙范例 (1)
data = RandomVariate[NormalDistribution[], {2500, 100}];T1 = AndersonDarlingTest[#, NormalDistribution[], "TestStatistic"]& /@ data;T2 = AndersonDarlingTest[#, NormalDistribution[1, 2], "TestStatistic"]& /@ data;SmoothHistogram[{T1, T2}, Filling -> Axis, PlotLegends -> {"SubscriptBox[H, 0] is True", "SubscriptBox[H, 0] is False"}, PlotStyle -> Thick]文本
Wolfram Research (2010),AndersonDarlingTest,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AndersonDarlingTest.html.
CMS
Wolfram 语言. 2010. "AndersonDarlingTest." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/AndersonDarlingTest.html.
APA
Wolfram 语言. (2010). AndersonDarlingTest. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AndersonDarlingTest.html 年
BibTeX
@misc{reference.wolfram_2026_andersondarlingtest, author="Wolfram Research", title="{AndersonDarlingTest}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/AndersonDarlingTest.html}", note=[Accessed: 07-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_andersondarlingtest, organization={Wolfram Research}, title={AndersonDarlingTest}, year={2010}, url={https://reference.wolfram.com/language/ref/AndersonDarlingTest.html}, note=[Accessed: 07-August-2026]}