PillaiTraceTest[m1,m2]
行列 m1と m2が独立かどうかの検定を行う.
PillaiTraceTest[…,"property"]
"property"の値を返す.
PillaiTraceTest
PillaiTraceTest[m1,m2]
行列 m1と m2が独立かどうかの検定を行う.
PillaiTraceTest[…,"property"]
"property"の値を返す.
詳細とオプション
- PillaiTraceTestは,m1と m2に対して,行列が線形独立であるという帰無仮説
と,そうではないという対立仮説
で仮説検定を行う. - デフォルトで,確率値つまり
値が返される. - 小さい
値は
が真である可能性が低いことを示す. - 引数 v1と v2は任意の同じ長さの実ベクトルあるいは実行列でよい.
- PillaiTraceTestはPillaiTrace[m1,m2]で計算されたPillaiのトレースの統計量に基づく.
- PillaiTraceTest[m1,m2,"HypothesisTestData"]はHypothesisTestDataオブジェクト htd を返す.このオブジェクトは,htd["property"] の形を使って追加的な検定結果と特性の抽出に使うことができる.
- PillaiTraceTest[m1,m2,"property"]を使って"property"の値を直接与えることができる.
- 検定結果のレポートに関連する特性
-
"DegreesOfFreedom" 検定に使われる自由度 "PValue" 検定の
値"PValueTable"
値を含むフォーマットされた表"ShortTestConclusion" 検定結果の短い記述 "TestConclusion" 検定結果の記述 "TestData" 検定統計量と
値を含むリスト"TestDataTable"
値と検定統計量のフォーマットされた表"TestStatistic" 検定統計量 "TestStatisticTable" 検定統計量のフォーマットされた表 - 使用可能なオプション
-
Method Automatic
値の計算に使うメソッドSignificanceLevel 0.05 診断とレポートのための切捨て VerifyTestAssumptions Automatic 検証する仮定 - 独立性の検定については,
のときにのみ
が拒絶されるような切捨て
が選ばれる."TestConclusion"特性と"ShortTestConclusion"特性に使われる
の値はSignificanceLevelオプションで制御される.
の値は正規性の診断検定にも使われる.デフォルトで,
は0.05に設定されている. - IndependenceTestにおけるVerifyTestAssumptionsのための名前付き設定
-
"Normality" すべてのデータが正規分布に従っているかどうか検証する
例題
すべて開く すべて閉じる例 (2)
v1 = RandomVariate[NormalDistribution[], 10^3];
v2 = RandomVariate[NormalDistribution[], 10^3];ListPlot[Transpose[{v1, v2}]]ℋ = PillaiTraceTest[v1, v2, "TestDataTable"]BlockRandom[
SeedRandom[2];
data1 = RandomVariate[BinormalDistribution[.5], 100];
data2 = RandomVariate[BinormalDistribution[.5], 100];
]PillaiTraceTest[data1, data2, "TestDataTable"]スコープ (8)
検定 (5)
{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];{v3, v4} = Transpose[RandomVariate[BinormalDistribution[.7], 100]];PillaiTraceTest[v1, v2]PillaiTraceTest[v3, v4]Σ1 = {{12.8, 0.3, 3., -1.5, 5.1}, {0.3, 2.4, 0.9, -0.3, -0.8}, {3., 0.9, 6.5, 0.8, 1.3}, {-1.5, -0.3, 0.8, 1.4, 2.}, {5.1, -0.8, 1.3, 2., 11.1}};data1 = RandomVariate[MultinormalDistribution[{0, 0, 0, 0, 0}, Σ1], 100];PillaiTraceTest[data1[[All, 1 ;; 2]], data1[[All, 3 ;; 5]]]Σ2 = IdentityMatrix[5];data2 = RandomVariate[MultinormalDistribution[{0, 0, 0, 0, 0}, Σ2], 100];PillaiTraceTest[data2[[All, 1 ;; 2]], data2[[All, 3 ;; 5]]]繰り返し特性を抽出するためにHypothesisTestDataオブジェクトを作成する:
{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];ℋ["Properties"]HypothesisTestDataオブジェクトからいくつかの特性を抽出する:
{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];ℋ["PValue"]ℋ["TestStatistic"]{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];ℋ["PValue", "TestStatistic"]レポート (3)
{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];ℋ["TestDataTable"]レポートをカスタマイズするために検定の表から項目を取り出す:
{v1, v2} = Transpose[RandomVariate[BinormalDistribution[.1], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];res = ℋ["TestData"]Labeled[ProgressIndicator[res[[2]]], Row[{Style["Pillai Trace: ", Bold, FontSize -> 14], res[[1]]}]]{v1, v2} = Transpose[RandomVariate[BinormalDistribution[0], 100]];ℋ = PillaiTraceTest[v1, v2, "HypothesisTestData"];ℋ["PValueTable"]ℋ["PValue"]ℋ["TestStatisticTable"]ℋ["TestStatistic"]オプション (10)
Method (4)
{v1, v2} = Transpose@RandomVariate[CopulaDistribution[{"Clayton", 1}, {NormalDistribution[], NormalDistribution[]}], 100];PillaiTraceTest[v1, v2, Method -> Automatic]PillaiTraceTest[v1, v2, Method -> "Asymptotic"]{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 3}, {NormalDistribution[], NormalDistribution[]}], 10]];PillaiTraceTest[v1, v2, Method -> "Permutation"]{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 3}, {NormalDistribution[], NormalDistribution[]}], 10]];PillaiTraceTest[v1, v2, Method -> {"Permutation", "MonteCarloSamples" -> 10^4}]PillaiTraceTest[v1, v2, Method -> {"Permutation", "MonteCarloSamples" -> 10^3}]PillaiTraceTest[v1, v2, Method -> {"Permutation", "MonteCarloSamples" -> Automatic}]{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 3}, {NormalDistribution[], NormalDistribution[]}], 10]];PillaiTraceTest[v1, v2, Method -> {"Permutation", "RandomSeed" -> 0}]PillaiTraceTest[v1, v2, Method -> {"Permutation", "RandomSeed" -> 9}]SignificanceLevel (2)
BlockRandom[SeedRandom[2];{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 1}, {NormalDistribution[], NormalDistribution[]}], 100]];];PillaiTraceTest[v1, v2, SignificanceLevel -> .0001]デフォルトで0.05が使われる.このメッセージは2つの検定が行われたので0.025を示している:
PillaiTraceTest[v1, v2]"TestConclusion"と"ShortTestConclusion"にも有意水準が使われる:
BlockRandom[SeedRandom[3];{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 3}, {NormalDistribution[], NormalDistribution[]}], 100]];];ℋ1 = PillaiTraceTest[v1, v2, "HypothesisTestData", SignificanceLevel -> .05];ℋ2 = PillaiTraceTest[v1, v2, "HypothesisTestData", SignificanceLevel -> .000005];ℋ1["TestConclusion"]//TraditionalFormℋ2["TestConclusion"]//TraditionalFormℋ1["ShortTestConclusion"]ℋ2["ShortTestConclusion"]VerifyTestAssumptions (4)
BlockRandom[SeedRandom[2];{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 1}, {NormalDistribution[], NormalDistribution[]}], 100]];];PillaiTraceTest[v1, v2, VerifyTestAssumptions -> Automatic]BlockRandom[SeedRandom[2];{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 1}, {NormalDistribution[], NormalDistribution[]}], 100]];];PillaiTraceTest[v1, v2, VerifyTestAssumptions -> All]PillaiTraceTest[v1, v2, VerifyTestAssumptions -> None]BlockRandom[SeedRandom[2];{v1, v2} = Transpose[RandomVariate[CopulaDistribution[{"Clayton", 1}, {NormalDistribution[], NormalDistribution[]}], 100]];];PillaiTraceTest[v1, v2, VerifyTestAssumptions -> "Normality"]PillaiTraceTest[v1, v2, VerifyTestAssumptions -> {"Normality" -> True}]PillaiTraceTest[v1, v2, VerifyTestAssumptions -> {"Normality" -> False}]シミュレーション目的の場合は診断検定をバイパスしたほうがよいことが多い:
BlockRandom[SeedRandom[2];data = RandomVariate[BinormalDistribution[0], {100, 35}]];AbsoluteTiming[T = PillaiTraceTest[Sequence@@Transpose[#]]& /@ data;]//Quiet検定の仮定は設計上有効になっているので,時間が大幅に削減できる:
AbsoluteTiming[T2 = PillaiTraceTest[Sequence@@Transpose[#], VerifyTestAssumptions -> None]& /@ data;]//QuietSmoothHistogram[{T, T2}, PlotStyle -> {Thick, Dashed}]特性と関係 (4)
PillaiTraceTestはPillaiTraceを使って検定棟計量を測る:
n = 500;m1 = RandomVariate[BinormalDistribution[0], n];
m2 = RandomVariate[BinormalDistribution[0], n];t = PillaiTraceTest[m1, m2, "TestStatistic"]PillaiTrace[m1, m2]
値はChiSquareDistribution[r*s]を使って計算される:
r = Dimensions[m1][[2]];
s = Dimensions[m2][[2]];SurvivalFunction[ChiSquareDistribution[r * s], n t]PillaiTraceTest[m1, m2]PillaiTraceTestはIndependenceTestで使用可能な検定の一つである:
BlockRandom[SeedRandom[2];
m1 = RandomVariate[BinormalDistribution[0], 50];
m2 = RandomVariate[BinormalDistribution[0], 50];
]IndependenceTest[m1, m2, {"TestDataTable", All}]IndependenceTestを使って検定の選択を自動化することができる:
IndependenceTest[m1, m2, "TestDataTable"]Pillaiのトレース検定は,入力がTimeSeriesのときにのみ値に使うことができる:
ts1 = 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];ts2 = TemporalData[TimeSeries, {{{-1.2160757838495546, 0.5212591188357838, -0.0932747538180776,
-2.306367634798702, -2.5366722726947994, -0.7924813212437647, -2.65435901675047,
-1.1098678592653723, -0.7814091835518528, -1.9685555851254093, -0.0 ... 1001061264, -0.1887471329804458, -2.0547107874294928, -1.3896240275653011,
-0.5073077090484948, 0.13302942350391606}}, {{0, 100, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {ValueDimensions -> 1, ResamplingMethod -> None}}, False, 10.1];PillaiTraceTest[ts1, ts2]PillaiTraceTest[ts1["Values"], ts2["Values"]]Pillaiのトレース検定は,入力がTemporalDataのときはすべての値に同時に使うことができる:
td = TemporalData[Automatic, {{{0.6327956976018951, 0.49307164456668334, -0.11865815946302549,
-1.6346246228913748, -1.8053674367955113, -1.0171193599509663, -1.713536030590108,
-0.2441834126183119, 1.468610531363788, 2.5403283801476966, 0.862 ... 135928877112, 0.8411464201445826, 0.36308201253335104, -0.45737292436875443,
0.289078430933834, 0.12996366812717347}}, {{0, 100, 1}}, 4, {"Continuous", 4}, {"Discrete", 1},
1, {ValueDimensions -> 1, ResamplingMethod -> None}}, False, 10.1];PillaiTraceTest[td]paths = td["Components"]PillaiTraceTest[paths[[2]], paths[[3]]]{data[1], data[2], data[3], data[4]} = td["ValueList"];PillaiTraceTest[data[2], data[3]]おもしろい例題 (1)
data1 = RandomVariate[BinormalDistribution[0.], {1500, 100}];T1 = MapThread[PillaiTraceTest[#1, #2, "TestStatistic", VerifyTestAssumptions -> None]&, {data1[[All, All, 1]], data1[[All, All, 2]]}];data2 = RandomVariate[BinormalDistribution[0.7], {1500, 100}];T2 = MapThread[PillaiTraceTest[#1, #2, "TestStatistic", VerifyTestAssumptions -> None]&, {data2[[All, All, 1]], data2[[All, All, 2]]}];SmoothHistogram[{T1, T2}, Filling -> Axis, PlotLegends -> {"SubscriptBox[H, 0]は真", "SubscriptBox[H, 0]は偽"}]関連するガイド
-
▪
- 仮説検定
テキスト
Wolfram Research (2012), PillaiTraceTest, Wolfram言語関数, https://reference.wolfram.com/language/ref/PillaiTraceTest.html.
CMS
Wolfram Language. 2012. "PillaiTraceTest." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/PillaiTraceTest.html.
APA
Wolfram Language. (2012). PillaiTraceTest. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PillaiTraceTest.html
BibTeX
@misc{reference.wolfram_2026_pillaitracetest, author="Wolfram Research", title="{PillaiTraceTest}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/PillaiTraceTest.html}", note=[Accessed: 13-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_pillaitracetest, organization={Wolfram Research}, title={PillaiTraceTest}, year={2012}, url={https://reference.wolfram.com/language/ref/PillaiTraceTest.html}, note=[Accessed: 13-November-2026]}