人工知能を作りたい!

統計的仮説検定

t 検定、F検定、カイ二乗検定の使い方




母平均に関する t 検定(1群、母分散が未知)

はじめに

母集団分布が正規分布、母分散σ2が既知の場合、検定統計量 Z を求める数式は以下のようになります。

Z = Z 分子/ Z 分母
Z 分子:標本平均- μ
Z 分母: ( σ2 /サンプルデータ数 n )の平方根
( σ2 の値は既知の値を使う)

しかし、母集団分布が正規分布、母分散σ2 が未知の場合、検定統計量 Z の値を計算できません。そこで、検定統計量 t を使います。tを求める数式は以下のようになります。

t = t 分子/ t 分母
t 分子:標本平均-μ
t 分母: ( σ2 /サンプルデータ数 n )の平方根
( σ2 の値は不偏分散の値を使う)

不偏分散は「サンプルデータと標本平均の偏差の二乗和」を「サンプルデータ数 n -1」で割った値です。

不偏分散 = 不偏分散の分子 / 不偏分散の分母
不偏分散の分子:(データ1-標本平均)2+(データ2-標本平均)2+ . . . +(データ n -標本平均)2
不偏分散の分母:サンプルデータ数 n -1

ちなみに、標本分散は「サンプルデータと標本平均の偏差の二乗和」を「サンプルデータ数 n 」で割った値です。

標本分散 = 標本分散の分子/標本分散の分母
標本分散の分子:(データ1-標本平均)2+(データ2-標本平均)2+ . . . +(データ n -標本平均)2
標本分散の分母:サンプルデータ数 n

母数の推定量である不偏推定量を優先するなら不偏分散を使います。最尤(さいゆう)推定量を優先するなら標本分散を使います。

検定統計量 t は自由度 df (degrees of freedom) = n -1の t 分布に従います。それでは、 t 分布を用いた検定( t 検定と言います)により一つの平均値の検定を行います。




例題(両側検定の場合)

新しい数学習得法のもとで数学を学んだ学生群から無作為に20人を選び、数学テストを受けてもらいました。その得点データは以下のようになりました。

41, 52, 60, 73, 32, 53, 62, 70, 81, 48, 55, 62, 45, 85, 27, 72, 66, 77, 58, 40

過去の数年のデータの蓄積から、従来の数学習得法を受けた学生の数学テスト得点は、母平均 μ =40の正規分布に従うことが知られています。つまり、母集団分布は X~N(40, σ2) です。

新しい数学習得法を受けた20人の数学テスト得点の母平均は40から変化しているでしょうか。




帰無仮説と対立仮説の設定

帰無仮説 H0: μ =40(数学テストの母平均は40である)
対立仮説 H1: μ ≠40(数学テストの母平均は40ではない)
有意水準 α =0.05
両側検定である




Rによる統計解析

Rに用意されている関数 t.test() を使って t 検定を行います。

関数 t.test() の書式は
t.test(検定対象となるデータ, mu=帰無仮説に設定された平均値)
です。


> x <- c(41, 52, 60, 73, 32, 53, 62, 70, 81, 48, 55, 62, 45, 85, 27, 72, 66, 77, 58, 40)


数学テストの得点を変数「x」に格納します。


> t.test(x,mu=40)

        One Sample t-test

data: x
t = 5.0126, df = 19, p-value = 7.73e-05
alternative hypothesis: true mean is not equal to 40
95 percent confidence interval:
 50.45488 65.44512
sample estimates:
mean of x
    57.95


「One Sample t-test」は「一つのサンプルの t 検定」というタイトルです。

「data:」の横に検定の対象となる変数が示されます。下の行に行くと、検定統計量 t の実現値、t分布の自由度 ( df = n -1=20-1=19) 、 p 値(デフォルトでは両側検定を行う)が示されます。

p 値が7.73e-05、つまり、0.0000773となり、有意水準0.05より小さいので「帰無仮説 H0: μ =40(数学テストの母平均は40である)」は棄却され、検定の結果は有意となります。

「alternative hypothesis: true mean is not equal to 40」は「対立仮説 H1: μ ≠40(数学テストの母平均は40ではない)」を示しています。これより、両側検定であることが分かります。

「95 percent confidence interval:」は、95%信頼区間の下限と上限の値を示しています。「sample estimates:」は、標本から計算された標本平均の実現値を示しています。




例題(片側検定の場合)

新しい数学習得法のもとで数学を学んだ学生群から無作為に20人を選び、数学テストを受けてもらいました。その得点データは以下のようになりました。

41, 52, 60, 73, 32, 53, 62, 70, 81, 48, 55, 62, 45, 85, 27, 72, 66, 77, 58, 40

過去の数年のデータの蓄積から、従来の数学習得法を受けた学生の数学テスト得点は、母平均 μ =40の正規分布に従うことが知られています。つまり、母集団分布は X~N(40, σ2) です。

新しい数学習得法を受けた20人の数学テスト得点の母平均は40より大きくなっているでしょうか。




帰無仮説と対立仮説の設定

帰無仮説 H0: μ =40(数学テストの母平均は40である)
対立仮説 H1: μ >40(数学テストの母平均は40より大きい)
有意水準 α =0.05
片側検定である




Rによる統計解析

Rに用意されている関数 t.test() を使って t 検定を行います。

関数 t.test() の書式は
t.test(検定対象となるデータ, mu=帰無仮説に設定されたμの値, alternative="greater")
です。

デフォルトでは両側検定が行われますが、以下のようにオプションにて対立仮説の方向を指定することができます。
上片側検定: alternative="greater"
下片側検定: alternative="less"


> x <- c(41, 52, 60, 73, 32, 53, 62, 70, 81, 48, 55, 62, 45, 85, 27, 72, 66, 77, 58, 40)


数学テストの得点を変数「x」に格納します。


> t.test(x, mu=40, alternative="greater")

        One Sample t-test

data: x
t = 5.0126, df = 19, p-value = 3.865e-05
alternative hypothesis: true mean is greater than 40
95 percent confidence interval:
 51.75798 Inf
sample estimates:
mean of x
    57.95


「One Sample t-test」は「一つのサンプルの t 検定」というタイトルです。

「data:」の横に検定の対象となる変数が示されます。下の行に行くと、検定統計量 t の実現値、 t 分布の自由度 ( df = n -1=20-1=19) 、 p 値(上片側検定を設定しました)が示されます。

p 値が3.865e-05、つまり、0.00003865となり、有意水準0.05より小さいので「帰無仮説 H0: μ =40(数学テストの母平均は40である)」は棄却され、検定の結果は有意となります。

「alternative hypothesis: true mean is greater than 40」は「対立仮説 H1: μ >40(数学テストの母平均は40より大きい)」を示しています。これより、上片側検定であることが分かります。

「95 percent confidence interval:」は、95%信頼区間の下限と上限の値を示しています。「sample estimates:」は、標本から計算された標本平均の実現値を示しています。






母分散の等質性に関するF検定、母平均の差に関する t 検定(2群、対応なし)、Welch(ウェルチ)の検定

はじめに

t 検定(2群、対応なし)を実行するためには、以下に示す3つの前提条件を満たす必要があります。

●標本抽出が無作為に行われている。(無作為抽出)
●母集団分布が正規分布に従っている。(正規性)
●2つの群の母分散が等質である。(母分散の等質性)

2つの群の母分散が等質でない場合、Welch(ウェルチ)の検定という特殊な t 検定を行う必要があります。




例題(母分散が等質である場合)

英語テストを作成し、全国から無作為に抽出した高校生1年生男子10人と高校一年生女子10人にその英語テストを受けてもらいました。そして、以下のような英語テスト得点のデータを得ました。

<男子の英語テスト得点>
53, 37, 49, 72, 43, 62, 41, 52, 76, 65

<女子の英語テスト得点>
45, 57, 68, 35, 54, 48, 85, 40, 55

2つの母集団(全国の高校1年生男子と全国の高校1年生女子)それぞれの英語テスト平均点に有意な差があるといえるでしょうか。




帰無仮説と対立仮説の設定

「2つの群ぞれぞれの平均点」とは、「2つの群ぞれぞれの母平均」のことです。

帰無仮説 H0: μ1 = μ2 (2つの群それぞれの母平均は等しい)
対立仮説 H1: μ1 ≠ μ2 (2つの群それぞれの母平均は異なる)
有意水準 α =0.05




Rによる統計解析

<母分散の等質性の検定>
まず、母分散の等質性の検定を、関数 ver.test() を使って行います。

関数 ver.test() の書式は
ver.test(群1のデータ, 群2のデータ)
です。

母分散の等質性の検定において、帰無仮説と対立仮説と有意水準は以下のようになります。

帰無仮説 H0:2つの群それぞれの母分散は等しい
対立仮説 H1:2つの群それぞれの母分散は異なる
有意水準 α =0.05


> 男 <- c(53, 37, 49, 72, 43, 62, 41, 52, 76, 65)
> 女 <- c(45, 57, 68, 35, 54, 48, 85, 40, 55)


男子の得点データを変数「男」に、女子の得点データを変数「女」に格納します。


> var.test(男, 女)
        F test to compare two variances

data: 男 and 女
F = 0.76871, num df = 9, denom df = 8, p-value = 0.6996
alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval:
 0.1764218 3.1532175 sample estimates:
ratio of variances
         0.7687108


「F test to compare two variances」は「2つの分散の比較のためのF検定」というタイトルです。

「data:」の横に検定の対象となる変数が「男 and 女」と示されます。下の行に行くと、検定統計量Fの実現値、F分布の自由度 (「num df」が分子の自由度、「denom df」が分母の自由度) 、p 値が示されます。

p 値が0.6996となり、有意水準0.05より大きいので帰無仮説は棄却されません。つまり、「帰無仮説 H0:2つの群それぞれの母分散は等しい」が採択されました。

「alternative hypothesis: true ratio of variances is not equal to 1」は、「対立仮説:母分散の比率が1(比が1対1)ではない」を示しています。つまり、「対立仮説 H1:2つの群それぞれの母分散は異なる」です。

「95 percent confidence interval:」は、95%信頼区間の下限と上限の値を示しています。「sample estimates:」は、標本から計算された不偏分散の比を示しています。



<t 検定(2群、対応なし)>
それでは、 t 検定の前提である「母分散の等質性」は満たされているということなので、関数 t.test() を使って、t 検定(2群、対応なし)を実行します。

関数 t.test() の書式は
t.test(群1のデータ, 群2のデータ, var.equal=TRUE)
です。

var.equal=TRUE がないデフォルトでは、Welch(ウェルチ)の検定が実行されます。ですので、 t 検定(2群、対応なし)を実行するには var.equal=TRUE というオプションを指定する必要があります。


> t.test(男, 女, var.equal=TRUE)

        Two Sample t-test

data: 男 and 女
t = 0.13614, df = 17, p-value = 0.8933
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -12.88655 14.66433
sample estimates:
mean of x mean of y
 55.00000 54.11111


「Two Sample t-test」は、「2つのサンプルの t 検定」というタイトルです。

「data:」の横に検定の対象となる変数が「男 and 女」と示されます。下の行に行くと、検定統計量 t の実現値、 t 分布の自由度、 p 値が示されます。

p 値が0.8933となり、有意水準0.05より大きいので、「帰無仮説 H0: μ1 = μ2 (2つの群それぞれの母平均は等しい)」が採択されました。

「alternative hypothesis: true difference in means is not equal to 0」は、「対立仮説: μ1 ≠ μ2 」、つまり「対立仮説: μ1 - μ2 ≠ 0」を示しています。これより両側検定であることが分かります。

「95 percent confidence interval:」は、95%信頼区間の下限と上限の値を示しています。「sample estimates:」は、標本から計算された標本平均の実現値を示しています。




例題(母分散が等質でない場合)

英語テストを作成し、全国から無作為に抽出した高校生1年生男子10人と高校一年生女子10人にその英語テストを受けてもらいました。そして、以下のような英語テスト得点のデータを得ました。

<男子の英語テスト得点>
53, 37, 49, 72, 43, 62, 41, 52, 76, 65

<女子の英語テスト得点>
25, 57, 68, 15, 54, 88, 85, 20, 75

2つの母集団(全国の高校1年生男子と全国の高校1年生女子)それぞれの英語テスト平均点に有意な差があるといえるでしょうか。




帰無仮説と対立仮説の設定

「2つの群ぞれぞれの平均点」とは、「2つの群ぞれぞれの母平均」のことです。

帰無仮説 H0: μ1 = μ2 (2つの群それぞれの母平均は等しい)
対立仮説 H1:μ1 ≠ μ2(2つの群それぞれの母平均は異なる)
有意水準 α=0.05




Rによる統計解析

<母分散の等質性の検定>
まず、母分散の等質性の検定を、関数 ver.test() を使って行います。

関数 ver.test() の書式は
ver.test(群1のデータ, 群2のデータ)
です。

母分散の等質性の検定において、帰無仮説と対立仮説と有意水準は以下のようになります。

帰無仮説 H0:2つの群それぞれの母分散は等しい
対立仮説 H1:2つの群それぞれの母分散は異なる
有意水準 α =0.05


> 男 <- c(53, 37, 49, 72, 43, 62, 41, 52, 76, 65)
> 女 <- c(25, 57, 68, 15, 54, 88, 85, 20, 75)


男子の得点データを変数「男」に、女子の得点データを変数「女」に格納します。


> var.test(男, 女)

        F test to compare two variances

data: 男 and 女
F = 0.2253, num df = 9, denom df = 8, p-value = 0.03922
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.05170811 0.92418815
sample estimates:
ratio of variances
         0.2253043


p 値が0.03922となり、有意水準0.05より小さいので帰無仮説は棄却されます。つまり、「対立仮説 H1:2つの群それぞれの母分散は異なる」が採択されました。



<Welch(ウェルチ)の検定>
t 検定の前提である「母分散の等質性」は満たされていないということなので、t 検定(2群、対応なし)に代えて、Welch(ウェルチ)の検定を実行します。

Welch(ウェルチ)の検定を行う関数 t.test の書式は
t.test(群1のデータ, 群2のデータ)
です。

var.equal=TRUE がないデフォルトでは、Welch(ウェルチ)の検定が実行されます。


> t.test(男, 女)

        Welch Two Sample t-test

data: 男 and 女
t = 0.086778, df = 11.165, p-value = 0.9324
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -21.61563 23.39341
sample estimates:
mean of x mean of y
 55.00000 54.11111


「Welch Two Sample t-test」は「ウェルチの2つのサンプルの t 検定」というタイトルです。

p 値が0.9324となり、有意水準0.05より大きいので帰無仮説は棄却されません。つまり、「帰無仮説 H0: μ1 = μ2 (2つの群それぞれの母平均は等しい)」が採択されました。




まとめ

t 検定(2群、対応なし)を行う場合、まず、関数 var.test(群1のデータ, 群2のデータ) を実行して「母分散の等質性」をチェックします。

母分散が等質である場合、関数 t.test(群1のデータ, 群2のデータ, var.equal=TRUE) を使って、t 検定(2群、対応なし)を実行します。

母分散が等質でない場合、関数 t.test(群1のデータ, 群2のデータ) を使って、Welchの検定を実行します。






母平均の差に関する t 検定(2群、対応あり)

はじめに

母平均に差をもたらす原因を因子といいます。また、因子の中に含まれる個々の条件を水準といいます。

全て異なる被験者から得たデータ(被験者間のデータ)は対応がないデータといいます。同じ被験者から異なる水準で得たデータ(被験者内のデータ)は対応があるデータといいます。

ここでちょっと混乱が起こります。 t 検定(2群)も一元配置分散分析も、母平均差の検定を行います。そして、両方とも因子は1つです。では、t 検定(2群)と一元配置分散分析の違いは何でしょうか。

一元配置分散分析は「3つ以上の水準(標本群)の母平均差」を検定します。しかし、t 検定(2群)は「2つの水準(標本群)の母平均差」しか検定できません。つまり、まとめると以下のようになります。

●2つの標本群の母平均差を検定する場合 → t 検定(2群)
●3つ以上の標本群の母平均差を検定する場合 → 一元配置分散分析




例題

飲料会社Aは体脂肪を減らす効果があると思われるお茶Aを開発しました。17人の従業員を無作為に抽出し、一か月間、毎朝飲んでもらいました。その結果、実験開始前と一か月後の体脂肪率 (%) は以下のように変化しました。


 実験開始前  一か月後
 23.5  22.5
 27.5  27.3
 34.2  32.4
 14.6  15.0
 30.45  27.5
 27.2  25.4
 31.3  29.3
 23.7  24.4
 21.5  20.6
 16.5  17.6
 19.5  20.2
 29.4  26.5
 17.4  16.4
 20.6  21.4
 23.6  21.3
 32.3  30.1
 13.4  14.3

このデータから、お茶Aは体脂肪を減らす効果があると判断してよいでしょうか。




帰無仮説と対立仮説の設定

この検定は、 t 検定(2群、対応あり)ですが、一元分散分析(対応あり)と同じように、「因子と水準は何か」を考えると以下のようになります。

繰り返しますが、一元分散分析(対応あり)は3つ以上の水準(あるいは標本群)を持ちます。

1つの因子:
お茶Aの摂取

2つの水準(標本群)
水準(群)1:「お茶Aを飲まない」
水準(群)2:「お茶Aを飲んだ」

実験開始前の母平均を μA 、一か月後の母平均を μB とします。

帰無仮説 H0: μA = μB (実験開始前の母平均と一か月後の母平均に差はない)
対立仮説 H1: μA > μB (実験開始前の母平均は一か月後の母平均より大きい)
有意水準 α =0.05
片側検定となります。




Rによる統計解析

関数 t.test() を使って、母平均の差に関する t 検定(2群、対応あり)を実行します。

関数 t.test() の書式は
t.test(群1のデータ, 群2のデータ, paired=TRUE, alternative="greater") です。

2つの変数が対応のある場合、 paired=TRUE とオプションを指定します。

「対立仮説 H1: μA > μB 」は
「対立仮説 H1: μA - μB >0」つまり、
「対立仮説 H1: μA - μB greater than 0」と言い換えられます。ですので、 alternative="greater" とオプション指定をします。片側検定となります。


> 実験開始前 <-c(23.5, 27.5, 34.2, 14.6, 30.4, 27.2, 31.3, 23.7, 21.5, 16.5, 19.5, 29.4, 17.4, 20.6, 23.6, 32.3, 13.4)



実験開始前の体脂肪率のデータを変数「実験開始前」に格納します。


> 一か月後 <-c(22.5, 27.3, 32.4, 15.0, 27.5, 25.4, 29.3, 24.4, 20.6, 17.6, 20.2, 26.5, 16.4, 21.4, 21.3, 30.1, 14.3)


一か月後の体脂肪率のデータを変数「一か月後」に格納します。


> t.test(実験開始前, 一か月後, paired=TRUE, alternative="greater")

        Paired t-test

data: 実験開始前 and 一か月後
t = 2.4741, df = 16, p-value = 0.01247
alternative hypothesis: true difference in means is greater than 0
95 percent confidence interval:
 0.2493275 Inf
sample estimates:
mean of the differences
              0.8470588


「Paired t-test」は、「対応のある t 検定」というタイトルです。

「data:」の横に検定の対象となる変数が「実験開始前 and 一か月後」と示されます。下の行に行くと、検定統計量 t の実現値、 t 分布の自由度 df ( n -1=17-1=16)、p値が示されます。

p 値が0.01247となり、有意水準0.05より大きいので帰無仮説は棄却されます。つまり、「対立仮説 H1: μA > μB (実験開始前の母平均は一か月後の母平均より大きい)」が採択されました。

「alternative hypothesis: true difference in means is greater than 0」は、
「対立仮説 H1: μA > μB 」、つまり、「対立仮説 H1: μA - μB >0」を示しています。これより片側検定であることが分かります。

「95 percent confidence interval:」は、95%信頼区間の下限と上限の値を示しています。「sample estimates:」は、標本から計算された差の平均値を示しています。






独立性の検定(カイ二乗検定)

はじめに

数値という量的変数どうしの関係を調べる場合、散布図を描き、相関係数の検定無相関検定)を行います。

一方、「好き嫌い」という質的変数どうしの関係を調べる場合、クロス集計表を描き、独立性の検定カイ二乗検定)を行います。

質的変数どうしに関係がある時、「2つの質的変数に連関がある」、あるいは「2つの質的変数は独立ではない」と表現します。

質的変数どうしに関係がない時、「2つの質的変数に連関はない」、あるいは「2つの質的変数は独立である」と表現します。




例題

高校生20人にチョコレートとコーヒーの好き嫌いを聞き、以下の結果を得ました。(高校生一人一人に通し番号を付け、以下のように番号順に並べました。)

<チョコレートの好き嫌い>
"好き", "好き", "嫌い", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き"

<コーヒーの好き嫌い>
"嫌い", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い"

「チョコレートの好き嫌い」と「コーヒーの好き嫌い」の間に有意な連関があるといえるでしょうか。有意水準5%で検定を行ってください。




帰無仮説と対立仮説の設定

帰無仮説 H0:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立である(連関がない)
対立仮説 H1:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立ではない(連関がある)




Rによる統計解析

> チョコレート <- c("好き", "好き", "嫌い", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き")
> table(チョコレート)
チョコレート
嫌い 好き
     9 11


見やすいように修正して以下に表示します。


 チョコレート嫌い  チョコレート好き
 9  11


変数「チョコレート」にデータを格納します。関数 table() を使って度数分布を確認しました。


> コーヒー <- c("嫌い", "嫌い", "好き", "好き", "好き", "嫌い", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い", "好き", "嫌い", "好き", "嫌い", "嫌い")
> table(コーヒー)
コーヒー
嫌い 好き
   12 8


見やすいように修正して以下に表示します。


 コーヒー嫌い  コーヒー好き
 12  8


変数「コーヒー」にデータを格納します。関数 table() を使って度数分布を確認しました。


次に、変数「チョコレート」と変数「コーヒー」を組み合わせて、関数 table() を使ってみましょう。


> table(チョコレート, コーヒー)
                       コーヒー
チョコレート 嫌い 好き
               嫌い 7 2
               好き 5 6


見やすいように修正して以下に表示します。


   コーヒー嫌い  コーヒー好き
 チョコレート嫌い  7  2
 チョコレート好き  5  6




関数 chisq.test() を使ってカイ二乗検定を実行してみましょう。

関数 chisq.test() の書式は
chisq.test(クロス集計表, correct=FALSE)
です。

関数 table で作成したクロス集計表の結果を引数として指定します。correct=FALSE というオプションを指定すると、デフォルトで実行される連続性の補正を行いません。


> クロス集計表 <- table(チョコレート, コーヒー)


まず最初に、変数「クロス集計表」に、上記の関数 table(チョコレート, コーヒー) の結果を格納します。


> chisq.test(クロス集計表, correct=FALSE)
   Pearson's Chi-squared test

data: クロス集計表
X-squared = 2.1549, df = 1, p-value = 0.1421

 警告メッセージ:
 chisq.test(クロス集計表, correct = FALSE) で:
   カイ自乗近似は不正確かもしれません


「Pearson's Chi-squared test」は「ピアソンのカイ二乗検定」というタイトルです。

「data:」の横に検定の対象となる変数である「クロス集計表」が示されます。下の行に行くと、検定統計量 χ2 の実現値、カイ二乗分布の自由度、 p 値が示されます。

自由度は
(行の数-1)×(列の数-1)
で求められます。2×2のクロス集計表では
(2-1)×(2-1)=1
となります。

p 値が0.1421となり、有意水準0.05より大きいので、「帰無仮説 H0:2つの変数「チョコレートの好き嫌い」と「コーヒーの好き嫌い」は独立である(連関がない)」は棄却されません。

「chisq.test(クロス集計表, correct = FALSE) で: カイ自乗近似は不正確かもしれません」という警告メッセージは、データから計算される期待度数が小さい時に発せられます。カイ二乗検定の結果が不正確である可能性を教えてくれます。