SignTest
詳細とオプション
- SignTestは,帰無仮説
と対立仮説
で検定を行う. -


data 

{data1,data2} 

- ただし,μ は data の母集団中央値であり,μ12は2つのデータ集合のペアになった差分
の中央値である. - デフォルトで,確率値つまり
値が返される. - 小さい
値は
が真である可能性が低いことを示す. - dspec 中のデータは一変量{x1,x2,…}でも多変量{{x1,y1,…},{x2,y2,…},…}でもよい.
- 2つのサンプルを与える場合,両者は同じ長さでなければならない.
- 引数 μ0は実数あるいはデータの次元と同じ長さの実ベクトルでよい.
- SignTest[dspec,μ0,"HypothesisTestData"]はHypothesisTestDataオブジェクト htd を返す.これは htd["property"]として追加的な検定結果と特性の抽出に使うことができる.
- SignTest[dspec,μ0,"property"]を使って直接"property"の値を与えることができる.
- 検定結果のレポートに関連する特性
-
"DegreesOfFreedom" 検定で使用される自由度 "PValue"
値のリスト "PValueTable"
値のフォーマットされた表"ShortTestConclusion" 検定結果の簡単な説明 "TestConclusion" 検定結果の説明 "TestData" 検定統計と
値のペアのリスト"TestDataTable" 検定統計と
値のフォーマットされた表"TestStatistic" 検定統計のリスト "TestStatisticTable" 検定統計のフォーマットされた表 - 一変量のサンプルについては,ペアになったサンプルの中央値についてSignTestは符号検定を行う.検定統計はBinomialDistribution[n,1/2] に従うと仮定される.ただし,n は dspec 中の μ0と等しくない要素数である.
- 多変量のサンプルについては,SignTestは空間的符号を用いてアフィン不変量検定を行う.検定統計はChiSquareDistribution[dim]に従うと仮定される.ただし,dim は dspec の次元である.
- 使用可能なオプション
-
AlternativeHypothesis "Unequal" 対立仮説のための不等式 MaxIterations Automatic 多変量中央値検定のための最大反復回数 Method Automatic
値を計算するメソッドSignificanceLevel 0.05 診断とレポートのための切捨て - SignTestでは,
のときにのみ
が棄却されるような切捨て
が選択される.特性"TestConclusion"および"ShortTestConclusion"で使われる
の値はSignificanceLevelオプションで制御される.デフォルトで,
は0.05に設定されている.
例題
すべて開く すべて閉じる例 (4)
data = RandomVariate[NormalDistribution[], 100];SignTest[data]data = RandomVariate[MultinormalDistribution[{0, 0, 0}, IdentityMatrix[3]], 10^3];SignTest[data, {.5, .5, .5}]SignTest[data, {.5, .5, .5}, "TestStatistic"]data = RandomVariate[MultinormalDistribution[{2, 0}, {{1, .75}, {.75, 1}}], 1000];SignTest[Transpose@data, 2]SignTest[Transpose@data, 2, "TestDataTable"]特性を繰り返し抽出するためにHypothesisTestDataオブジェクトを作成する:
data = RandomVariate[StudentTDistribution[4], 100];ℋ = SignTest[data, Automatic, "HypothesisTestData"]ℋ["Properties"]ℋ["TestData"]ℋ["TestDataTable", "PValue", "TestStatistic"]スコープ (13)
検定 (10)
data1 = RandomVariate[NormalDistribution[0, 1], 500];
data2 = RandomVariate[NormalDistribution[3, 1], 500];SignTest[data1]SignTest[data2]Automaticを使うことは,ゼロの中央値について検定することと同じである:
data = RandomVariate[NormalDistribution[0, 1], 500];SignTest[data, 0]SignTest[data, Automatic]data1 = RandomVariate[NormalDistribution[3, 1], 500];
data2 = RandomVariate[NormalDistribution[0, 1], 500];SignTest[data1, 3]SignTest[data2, 3]多変量母集団の中央値ベクトルがゼロベクトルであるかどうかを検定する:
data = RandomVariate[MultinormalDistribution[{.1, 0, -.05, 0}, IdentityMatrix[4]], 10^3];SignTest[data]SignTest[data, {0.1, 0, -.05, 0}]data1 = RandomVariate[NormalDistribution[0, 1], 100];
data2 = RandomVariate[NormalDistribution[1, 1], 100];
data3 = RandomVariate[NormalDistribution[0, 2], 100];SignTest[{data1, data2}, 0]SignTest[{data1, data3}, 0]data1 = RandomVariate[NormalDistribution[3, 1], 100];
data2 = RandomVariate[NormalDistribution[0, 1], 100];SignTest[{data1, data2}, 3]SignTest[{data2, data1}, 3]2つの多変量母集団の中央値の差分ベクトルがゼロベクトルであるかどうかの検定を行う:
data1 = RandomVariate[MultinormalDistribution[{.5, 0, -.5, 0}, IdentityMatrix[4]], 10^2];data2 = RandomVariate[MultinormalDistribution[{-.5, 0, .5, 0}, IdentityMatrix[4]], 10^2];SignTest[{data1, data2}]SignTest[{data1, data2}, {1, 0, -1, 0}]繰り返し特性を抽出するためにHypothesisTestDataオブジェクトを作成する:
data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = SignTest[data, 0, "HypothesisTestData"];ℋ["Properties"]HypothesisTestDataオブジェクトから特性を抽出する:
data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = SignTest[data, 0, "HypothesisTestData"];ℋ["PValue"]ℋ["TestStatistic"]data = RandomVariate[NormalDistribution[], {2, 10^4}];ℋ = SignTest[data, 0, "HypothesisTestData"];ℋ["PValue", "TestStatistic"]レポート (3)
data = RandomVariate[NormalDistribution[], {2, 20}];ℋ = SignTest[data, 0, "HypothesisTestData"];ℋ["TestDataTable"]data = RandomVariate[NormalDistribution[], {1000, 25}];res = Table[SignTest[v, 0, "TestData"], {v, data}];ListPlot[res, Filling -> Axis]data = RandomVariate[NormalDistribution[], {2, 10^2}];ℋ = SignTest[data, 0, "HypothesisTestData"];ℋ["PValueTable"]ℋ["PValue"]ℋ["TestStatisticTable"]ℋ["TestStatistic"]オプション (9)
AlternativeHypothesis (3)
data = RandomVariate[NormalDistribution[], {2, 100}];SignTest[data, 0, AlternativeHypothesis -> "Unequal"]SignTest[data, 0, AlternativeHypothesis -> Automatic]data = RandomVariate[NormalDistribution[], {2, 100}];SignTest[data, 0, AlternativeHypothesis -> "Unequal"]SignTest[data, 0, AlternativeHypothesis -> "Less"]SignTest[data, 0, AlternativeHypothesis -> "Greater"]data1 = RandomVariate[NormalDistribution[2.9, 1], 1000];
data2 = RandomVariate[NormalDistribution[0, 1], 1000];Mean[data1 - data2]SignTest[{data1, data2}, 3, AlternativeHypothesis -> "Less"]SignTest[{data1, data2}, 2.9, AlternativeHypothesis -> "Less"]MaxIterations (2)
data1 = RandomVariate[BinormalDistribution[.5], 25];
data2 = RandomVariate[BinormalDistribution[.5], 25];SignTest[{data1, data2}, Automatic, MaxIterations -> 500]SignTest[{data1, data2}, Automatic, MaxIterations -> Automatic]最大反復数を設定することによって,収束しなくなることがある:
BlockRandom[SeedRandom[2];
data1 = RandomVariate[BinormalDistribution[.5], 25];
data2 = RandomVariate[BinormalDistribution[.5], 25];]SignTest[{data1, data2}, Automatic, MaxIterations -> 1]SignTest[{data1, data2}, Automatic, MaxIterations -> Automatic]Method (3)
デフォルトでは,一変量データについては,BinomialDistributionを使って
値が計算される:
data = RandomVariate[NormalDistribution[], {2, 100}];SignTest[data, 0, Method -> Automatic]SignTest[data, 0, Method -> "Permutation"]data = RandomVariate[NormalDistribution[], {2, 500}];SignTest[data, 0, Method -> "Asymptotic"]SignTest[data, 0, Method -> "Permutation"]data = RandomVariate[NormalDistribution[], {35, 2}];SignTest[data, 0, Method -> "Asymptotic"]SignTest[data, 0, Method -> "Permutation"]SignificanceLevel (1)
有意水準は"TestConclusion"と"ShortTestConclusion"にも使われる:
BlockRandom[SeedRandom[1];data = RandomVariate[NormalDistribution[0, 1], {2, 100}]];ℋ1 = SignTest[data, .2, "HypothesisTestData", SignificanceLevel -> .05];ℋ2 = SignTest[data, .2, "HypothesisTestData", SignificanceLevel -> .001];ℋ1["TestConclusion"]//TraditionalFormℋ2["TestConclusion"]//TraditionalFormℋ1["ShortTestConclusion"]ℋ2["ShortTestConclusion"]アプリケーション (2)
8人の患者に対して,新しい睡眠薬について検定が行われた.それぞれの被験者が眠りにつくまでにかかる時間(単位:分)が薬を飲んだ夜とプラシーボを飲んだ夜について記録された:
sleepAid = {12, 9, 11, 21, 17, 22, 18, 11};
placebo = {21, 16, 8, 36, 28, 20, 29, 22};SmoothHistogram[{sleepAid, placebo}]SignTestは睡眠薬とプラシーボの違いを検出しない:
SignTest[{sleepAid, placebo}, 0, "TestDataTable"]データ集合は非常に小さいが,正規性についての検定には失敗しない:
DistributionFitTest /@ {sleepAid, placebo}より強力なPairedTTestは,睡眠薬によって眠りにつく時間が大幅に削減されたことを示す:
PairedTTest[{sleepAid, placebo}, 0, "TestDataTable"]数学と科学の評価が低い10人の学生のグループが個別指導プログラムに参加するように頼まれた.もとの評価に似たテストがプログラム後に行われた.学生たちの両方の評価における数学と科学の点数は以下の通りである:
preMath = {64, 51, 45, 37, 60, 67, 51, 59, 65, 53};
preSci = {58, 46, 62, 40, 58, 34, 69, 31, 26, 58};
postMath = {84, 68, 73, 72, 78, 72, 70, 65, 81, 78};
postSci = {66, 69, 64, 70, 60, 57, 59, 68, 59, 56};pre = Transpose[{preMath, preSci}];
post = Transpose[{postMath, postSci}];ContourPlot[Evaluate@PDF[SmoothKernelDistribution[N[post - pre]], {m, s}], {m, -8, 50}, {s, -25, 50}, PlotRange -> All]SignTest[{Transpose[{preMath, preSci}], Transpose[{postMath, postSci}]}, 0, "TestDataTable"]個々の要素に対するBonferroniの修正検定によって,数学の点数が上がったために改善が検出されたことが分かる:
α = .05;SignTest[{preSci, postSci}, 0, "ShortTestConclusion", SignificanceLevel -> α / 2]SignTest[{preMath, postMath}, 0, "ShortTestConclusion", SignificanceLevel -> α / 2]特性と関係 (6)
概念的には,SignTestはデータ集合内の正の符号の数を数える:
data = RandomVariate[BinomialDistribution[10, .5], 100];μ = 10 * .5;sgn = Sign[data - μ];T = Count[sgn, 1]一変量データについては,検定統計はBinomialDistributionに従い,ゼロを無視する:
n = Count[sgn, Except[0]];Probability[x <= T, xBinomialDistribution[n, .5]]SignTest[data, μ, "TestDataTable", AlternativeHypothesis -> "Less"]SignTestは一般に,位置についてのその他の仮説検定に比べて弱い:
data = RandomVariate[NormalDistribution[.5, 1], {1000, 25}];Subscript[p, sign] = Table[SignTest[i], {i, data}];
Subscript[p, sr] = Table[SignedRankTest[i, VerifyTestAssumptions -> None], {i, data}];
Subscript[p, T] = Table[TTest[i, VerifyTestAssumptions -> None], {i, data}];Probability[x < .05, xSubscript[p, sign]]//NProbability[x < .05, xSubscript[p, sr]]//NProbability[x < .05, xSubscript[p, T]]//N多変量データについては,検定統計を計算する場合,空間符号を使う:
SpatialSign[d_] := With[{norm = Norm[d]}, If[norm == 0, ConstantArray[0, Length[d]], d / norm]]data1 = RandomVariate[MultinormalDistribution[{0, 0}, IdentityMatrix[2]], 100];
data2 = RandomVariate[MultinormalDistribution[{2, 1}, IdentityMatrix[2]], 100];空間中央値が非零である場合,空間符号はクラスタ化することが多い:
{ListPlot[SpatialSign /@ data1, AspectRatio -> 1, PlotRange -> {{-1, 1}, {-1, 1}}], ListPlot[SpatialSign /@ data2, AspectRatio -> 1, PlotRange -> {{-1, 1}, {-1, 1}}]}t1 = SignTest[data1, {0, 0}, "TestStatistic"]t2 = SignTest[data2, {0, 0}, "TestStatistic"]検定統計はChiSquareDistribution[p]に従う:
p = Dimensions[data1][[2]]Probability[x > t1, xChiSquareDistribution[p]]SignTest[data1]data = RandomVariate[MultinormalDistribution[{0, 0}, IdentityMatrix[2]], 100];𝒯 = AffineTransform[{{{1, 2}, {3, 4}}, {1, 2}}];SignTest[data, {0, 0}, "TestDataTable"]SignTest[𝒯[data], 𝒯[{0, 0}], "TestDataTable"]符号検定は,入力が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];SignTest[ts]SignTest[ts["Values"]]符号検定は,入力が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];SignTest[td]data = td["ValueList"]//Flatten;
SignTest[data]{data1, data2} = td["ValueList"];SignTest[{data1, data2}]おもしろい例題 (2)
data1 = RandomVariate[NormalDistribution[], {2500, 100}];
data2 = RandomVariate[NormalDistribution[], {2500, 100}];T1 = MapThread[SignTest[{#1, #2}, 0, "TestStatistic"]&, {data1, data2}];T2 = MapThread[SignTest[{#1, #2}, 1, "TestStatistic"]&, {data1, data2}];SmoothHistogram[{T1, T2}, Filling -> Axis, PlotLegends -> {"SubscriptBox[H, 0]は真", "SubscriptBox[H, 0]は偽"}]三次元における空間符号の分布は,ゼロ平均ベクトルからの偏差がより大きい場合に,よりクラスタ化された空間符号とより大きい符号統計を返すことを示す:
SpatialSign[d_] := With[{norm = Norm[d]}, If[norm == 0, ConstantArray[0, Length[d]], d / norm]]data = Table[RandomVariate[MultinormalDistribution[{a, -.5a, a}, IdentityMatrix[3]], 500], {a, {0, 1, 2, 4}}];sPointPlot[data_] := Show[Graphics3D[{Directive[Yellow, Specularity[White, 20]], Sphere[{0, 0, 0}]}], ListPointPlot3D[SpatialSign /@ data, PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}], Boxed -> False, PlotLabel -> TextCell[SignTest[data, 0, "TestStatistic"], "Section"], Background -> GrayLevel[0]]GraphicsGrid[Partition[sPointPlot /@ data, 2]]関連するガイド
-
▪
- 仮説検定
テキスト
Wolfram Research (2010), SignTest, Wolfram言語関数, https://reference.wolfram.com/language/ref/SignTest.html.
CMS
Wolfram Language. 2010. "SignTest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SignTest.html.
APA
Wolfram Language. (2010). SignTest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SignTest.html
BibTeX
@misc{reference.wolfram_2026_signtest, author="Wolfram Research", title="{SignTest}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/SignTest.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_signtest, organization={Wolfram Research}, title={SignTest}, year={2010}, url={https://reference.wolfram.com/language/ref/SignTest.html}, note=[Accessed: 03-November-2026]}