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 が棄却しないことを示しています。これは右側仮説検定であるため、インフルエンザ予防接種を受けない人がインフルエンザに感染するオッズは、予防接種を受けた人よりも高くないという結論になります。
病院データを読み込みます。
load hospital
hospital = dataset2table(hospital)hospital=100×7 table
LastName Sex Age Weight Smoker BloodPressure Trials
____________ ______ ___ ______ ______ _____________ _______________
YPL-320 {'SMITH' } Male 38 176 true 124 93 {[ 18]}
GLI-532 {'JOHNSON' } Male 43 163 false 109 77 {[ 11 13 22]}
PNI-258 {'WILLIAMS'} Female 38 131 false 125 83 {1×0 double }
MIJ-579 {'JONES' } Female 40 133 false 117 75 {[ 6 12]}
XLK-030 {'BROWN' } Female 49 119 false 122 80 {[ 14 23]}
TFP-518 {'DAVIS' } Female 46 142 false 121 70 {[ 19]}
LPD-746 {'MILLER' } Female 33 142 true 130 88 {[ 13]}
ATA-945 {'WILSON' } Male 40 180 false 115 82 {1×0 double }
VNL-702 {'MOORE' } Male 28 183 false 115 78 {[ 2]}
LQW-768 {'TAYLOR' } Female 31 132 false 118 86 {[ 11]}
QFY-472 {'ANDERSON'} Female 45 128 false 114 77 {[ 8 10 14]}
UJG-627 {'THOMAS' } Female 42 137 false 115 68 {[ 4 9]}
XUE-826 {'JACKSON' } Male 25 174 false 127 74 {1×0 double }
TRW-072 {'WHITE' } Male 39 202 true 130 95 {[ 8]}
ELG-976 {'HARRIS' } Female 36 129 false 114 79 {1×0 double }
KOQ-996 {'MARTIN' } Male 48 181 true 130 92 {[13 15 21 27]}
⋮
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 = 2×2 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 はカイ二乗近似を使用して 値を計算するためです。
入力引数
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: 'Alpha',0.01,'Tail','right' では、有意水準 1% で右裾仮説検定を指定します。
仮説検定の有意水準。'Alpha' と、(0,1) の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。
例: 'Alpha',0.01
データ型: single | double
対立仮説のタイプ。'Tail' と以下のいずれかで構成される、コンマ区切りのペアとして指定します。
'both' | 両側検定。対立仮説は x の 2 つの変数の間に非無作為な関連性があるとして、オッズ比率は 1 と等しくありません。 |
'right' | 右側検定。対立仮説ではオッズ比率が 1 よりも大きくなります。 |
'left' | 左側検定。対立仮説ではオッズ比率は 1 よりも小さくなります。 |
例: 'Tail','right'
出力引数
論理値として返される仮説検定の結果。
hが1の場合、fishertestは有意水準Alphaでの帰無仮説を棄却します。hが0の場合、fishertestは有意水準Alphaでの帰無仮説を棄却できません。
検定の p 値。[0,1] の範囲のスカラー値として返されます。p は、帰無仮説に基づく観測値と同様に、極端な検定統計量、またはより極端な検定統計量が観測される確率です。p の値が小さい場合、帰無仮説の妥当性に問題がある可能性があります。
検定データ。以下のフィールドを含む構造体として返されます。
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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)