fishertest
フィッシャーの正確確率検定
説明
[___] = fishertest(
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、検定の判定を返します。たとえば、検定の有意水準を変更したり、片側検定を実行することができます。x
,Name,Value
)
例
フィッシャーの正確確率検定の実行
小規模の調査で、研究者は 17 人の対象者に今年インフルエンザの予防接種を受けたかどうか、またこの冬にインフルエンザに感染したかどうかを質問しました。結果は、インフルエンザの予防接種を受けなかった 9 人のうち、3 人がインフルエンザに感染し、6 人は感染しなかったことを示しています。インフルエンザの予防接種を受けた 8 人のうち、1 人はインフルエンザに感染しましたが、7 人は感染しませんでした。
調査データを含む 2 行 2 列の分割表を作成します。行 1 はインフルエンザの予防接種を受けなかった人のデータを、行 2 は予防接種を受けた人のデータを含みます。列 1 はインフルエンザに感染した人の数、列 2 はインフルエンザに感染しなかった人の数を含んでいます。
x = table([3;1],[6;7],'VariableNames',{'Flu','NoFlu'},'RowNames',{'NoShot','Shot'})
x=2×2 table
Flu NoFlu
___ _____
NoShot 3 6
Shot 1 7
フィッシャーの正確確率検定を使用して、インフルエンザ予防接種を受けることとインフルエンザの感染の間に無作為ではない関連性があるかどうかを判定します。
h = fishertest(x)
h = logical
0
返された検定の判定 h = 0
は、既定の 5% の有意水準においてカテゴリカル変数の間に非無作為な関連性がないという帰無仮説を、fishertest
が棄却しないことを示しています。したがって、検証結果に基づき、インフルエンザ予防接種を受けなかった人がインフルエンザに感染するオッズは、予防接種を受けた人と異なりません。
フィッシャーの正確確率検定の片側検定の実行
小規模の調査で、研究者は 17 人の対象者に今年インフルエンザの予防接種を受けたかどうか、またインフルエンザに感染したかどうかを質問しました。結果は、インフルエンザの予防接種を受けなかった 9 人のうち、3 人がインフルエンザに感染し、6 人は感染しなかったことを示しています。インフルエンザの予防接種を受けた 8 人のうち、1 人はインフルエンザに感染しましたが、7 人は感染しませんでした。
x = [3,6;1,7];
フィッシャーの正確確率検定の右側検定を使用して、インフルエンザ予防接種を受けなかった対象者がインフルエンザにかかる可能性が予防接種を受けた人よりも高いかどうかを判定します。有意水準 1% で検定を実行します。
[h,p,stats] = fishertest(x,'Tail','right','Alpha',0.01)
h = logical
0
p = 0.3353
stats = struct with fields:
OddsRatio: 3.5000
ConfidenceInterval: [0.1289 95.0408]
返された検定の判定 h = 0
は、1% の有意水準においてカテゴリカル変数の間に非無作為な関連性がないという帰無仮説を、fishertest
が棄却しないことを示しています。これは右側仮説検定であるため、インフルエンザ予防接種を受けない人がインフルエンザに感染するオッズは、予防接種を受けた人よりも高くないという結論になります。
crosstab
を使用した分割表の生成
病院データを読み込みます。
load hospital
hospital
データセット配列には病院患者 100 人の、姓、性別、年齢、体重、喫煙状況、収縮期および拡張期の血圧測定値を含めたデータがあります。
喫煙状況が性別と独立しているかどうかを判定するには、crosstab
を使用して喫煙者と非喫煙者の性別でグループ化された 2 行 2 列の分割表を作成します。
[tbl,chi2,p,labels] = crosstab(hospital.Sex,hospital.Smoker)
tbl = 2×2
40 13
26 21
chi2 = 4.5083
p = 0.0337
labels = 2x2 cell
{'Female'} {'0'}
{'Male' } {'1'}
生成される分割表 tbl
の行は患者の性別に対応し、行 1 には女性、行 2 には男性のデータが含まれています。列は患者の喫煙状況に対応し、列 1 には非喫煙者、列 2 には喫煙者のデータが含まれています。返された結果 chi2 = 4.5083
は独立性に対するカイ二乗検定のカイ二乗検定統計量の値です。返された値 p = 0.0337
は、カイ二乗分布に基づく 値の近似値です。
crosstab
によって生成された分割表を使用して、データに対するフィッシャーの正確確率検定を実行します。
[h,p,stats] = fishertest(tbl)
h = logical
1
p = 0.0375
stats = struct with fields:
OddsRatio: 2.4852
ConfidenceInterval: [1.0624 5.8135]
結果 h = 1
は fishertest
が有意水準 5% における喫煙状況と性別の間に関連付けがないという帰無仮説を棄却することを示します。つまり、性別と喫煙状況には関連付けがあります。オッズ比率から、男性患者が喫煙者であるオッズは女性患者の約 2.5 倍であることがわかります。
返された検定の 値 p = 0.0375
は、crosstab
で取得した結果に近くなっていますが、厳密には同じではありません。これは、fishertest
が標本データを使用して厳密な 値を計算するのに対して、crosstab
はカイ二乗近似を使用して 値を計算するためです。
入力引数
x
— 分割表
非負の整数値の 2 行 2 列の行列 | 非負の整数値の 2 行 2 列の表
分割表。非負の整数値を含む 2 行 2 列の行列または表として指定します。分割表は標本データの変数の頻度分布を含みます。crosstab
を使用して標本データから分割表を生成できます。
例: [4,0;0,4]
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Alpha',0.01,'Tail','right'
では、有意水準 1% で右裾仮説検定を指定します。
Alpha
— 有意水準
0.05 (既定値) | (0,1) の範囲のスカラー値
仮説検定の有意水準。'Alpha'
と、(0,1) の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。
例: 'Alpha',0.01
データ型: single
| double
Tail
— 対立仮説のタイプ
'both'
(既定値) | 'right'
| 'left'
対立仮説のタイプ。'Tail'
と以下のいずれかで構成される、コンマ区切りのペアとして指定します。
'both' | 両側検定。対立仮説は x の 2 つの変数の間に非無作為な関連性があるとして、オッズ比率は 1 と等しくありません。 |
'right' | 右側検定。対立仮説ではオッズ比率が 1 よりも大きくなります。 |
'left' | 左側検定。対立仮説ではオッズ比率は 1 よりも小さくなります。 |
例: 'Tail','right'
出力引数
h
— 仮説検定の結果
1
| 0
論理値として返される仮説検定の結果。
h
が1
の場合、fishertest
は有意水準Alpha
での帰無仮説を棄却します。h
が0
の場合、fishertest
は有意水準Alpha
での帰無仮説を棄却できません。
p
— p 値
[0,1] の範囲のスカラー値
検定の p 値。[0,1] の範囲のスカラー値として返されます。p
は、帰無仮説に基づく観測値と同様に、極端な検定統計量、またはより極端な検定統計量が観測される確率です。p
の値が小さい場合、帰無仮説の妥当性に問題がある可能性があります。
stats
— 検定データ
構造体
検定データ。以下のフィールドを含む構造体として返されます。
OddsRatio
— 2 つの変数間の関連付けの測定値。ConfidenceInterval
— オッズ比率の漸近的な信頼区間。x
の任意のセル度数が 0 の場合、fishertest
は信頼区間の計算を実行せず、代わりに[-Inf Inf]
を表示します。
詳細
フィッシャーの正確確率検定
フィッシャーの正確確率検定はノンパラメトリックな統計的検定であり、変数の間に非無作為な関連性があるという対立仮説に対して、2 つのカテゴリカル変数の間に非無作為な関連性がないという帰無仮説の検定に使用します。
フィッシャーの正確確率検定は、標本が小さいか、極めて不均等な周辺分布をもつ標本にカイ二乗検定の代替方法を提供します。カイ二乗検定と異なり、フィッシャーの正確確率検定は大きな標本分布の仮定に依存せず、代わりに標本データに基づいた正確な p 値の計算を行います。フィッシャーの正確確率検定は任意のサイズの標本に対して有効ですが、計算量が多いため大規模な標本には推奨されません。分割表内のすべての頻度数が 1e7
以上の場合は、fishertest
誤差です。大きなカウント値を含むまたはバランスの良い分割表には、crosstab
または chi2gof
を代わりに使用します。
fishertest
は 2 行 2 列の分割表を入力として受け入れ、検定の p 値を以下のように計算します。
分割表の各行、各列の合計および観測の総数を計算します。
帰無仮説が真で、行と列の合計が与えられる場合に、超幾何確率関数の多変量汎化を使用して、分割表内の正確な結果を観測する条件付き確率を計算します。条件付き確率は次のようになります。
ここで R1 および R2 は行の合計、C1 および C2 は列の合計、N は分割表内の観測値の総数、nij は表の i 行 j 列目の値です。
行と列の合計と一致する非負の整数のすべての可能な行列を検索します。各行列に対して、関連付けられた条件付き確率を Pcutoff の式を使用して計算します。
これらの値を使用して検定の p 値を対象の対立仮説を基にして計算します。
両側検定のために、観測した分割表の Pcutoff 以下のすべての条件付き確率を合計します。これは帰無仮説が真の場合、実際の結果と同様に極端な結果、またはより極端な結果が観測される確率を表しています。p 値が小さい場合、変数間に関連付けがあるという対立仮説が優先され、帰無仮説の妥当性に問題がある可能性があります。
左側検定の場合、(1,1) のセル度数が n11 以下であるすべての行列の条件付き確率が合計されます。
右側検定の場合、観測対象の分割表における (1,1) のセル度数が n11 以上であるすべての行列の条件付き確率が合計されます。
オッズ比率は次のようになります。
条件付きで独立しているという帰無仮説は、オッズ比率が 1 であるという仮説と同じです。左側検定の対立仮説はオッズ比率が 1 より小さいという仮説と、右側検定の対立仮説はオッズ比率が 1 より大きいという仮説と同じです。
オッズ比率に対する漸近的な 100(1 – α)% 信頼区間は、次のようになります。
ここで、L は対数オッズ比率、Φ-1( • ) は逆正規累積分布関数の逆関数、SE は対数オッズ比率の標準誤差です。100(1 – α)% 信頼区間に値 1 が含まれない場合、関連付けは有意水準 α で有意になります。4 つの任意のセル度数が 0 の場合、fishertest
は信頼区間の計算を実行せず、代わりに [-Inf Inf]
を表示します。
fishertest
は 2 行 2 列の分割表のみを入力として受け入れます。カテゴリカル変数の独立性を 3 水準以上で検定するには、crosstab
で提供されるカイ二乗検定を使用します。
バージョン履歴
R2014b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)