1 適合度検定とは.

九州大学 海事統計学 様 によれば、

  • 観察されたデータが特定の分布に一致しているといえるか?

を検定する分布の検定です。
これは分布の推定とつながっているので、後半では分布の推定にも踏み込んで説明します。
これは統計的モデリングといわれるもので、事象の確率的予測に役立ちます。

第1段階として、

  • 度数分布表の各カテゴリーが、帰無仮説のもとでの理論比率に「従っているか・乖離しているか」を検証します。
    検定ではカイ二乗値が用いられます。

第2段階として、

  • 四分表を2変量の度数分布表として捉えたとき、2変量が独立かどうかを検証します。
    独立という帰無仮説のもとで、理論比率からの乖離度をカイ二乗値で検定します。
    これは2群の比率の差の検定と同等です。

1.1 カイ二乗値.

適合度検定は、各グループに属するデータ数の比率が理論通りかどうか検定するもので、
適合度検定量は \(T=\displaystyle \sum_{i=1}^{k}\dfrac{(X_i-Np_i)^2}{Np_i}\). しかし、 がカイ二乗分布に直接従うわけではない。そもそもカイ二乗統計量は独立な標準正規分布の平方和である。適合度検定量とカイ二乗統計量をつなぐのがピアソンの定理である。

ピアソンの定理.
   \(N\rightarrow \infty\)のとき、 \(T=\displaystyle \sum_{i=1}^{k}\dfrac{(X_i-Np_i)^2}{Np_i}\rightarrow \chi^2(k-1)\) (分布収束).
   このように自由度は級の数 k から1を減じた k - 1 であるが、

  • 未知母数を含む分布の検定する場合、推定した未知母数の数だけ自由度が減る。
       \(N\rightarrow \infty\)のとき、 \(T=\displaystyle \sum_{i=1}^{k}\dfrac{(X_i-Np_i)^2}{Np_i}\rightarrow \chi^2(k-r-1)\) (分布収束)

2 分布推定の手順.

日新火災海上保険株式会社様「R と Excel を用いた分布推定の実践例」によれば、

  • 分布形の候補を定める.
  • 各分布形に対して,パラメータを推定する.
  • フィットの良さを比較し,採用する確率分布を決定する.

草彅の研究ログ様に、
“fitdistrplus”パッケージの fitdist関数 が紹介されているので使ってみようと思う 。

3 パラメータが2個.

草薙先生の例から引用する。

3.1 ガンマ分布に従うデータ.

#数値例の作成
dat<-rgamma(300,2,3)
#分布の確認
par(mfrow = c(1,2))
hist(dat)
plot(ecdf(dat))#データから経験分布関数を計算する関数 

3.2 fitdist関数による当てはめ.

#ガンマ分布に当てはめてみる
fit<-fitdist(dat,"gamma")
plot(fit)

  • Empirical は経験分布を用いて推定(データから推定)したもの。.
  • QQプロットは、(片方の\(q\)分位数 , もう片方の\(q\)分位数)をプロットしたもの。
  • PPプロットは、それぞれの分布関数 \(F_1,F_2\)に対し、\((F_1(x),~F_2(x))\)をプロットしたもの。

注意
\(0<q<1\) は媒介変数としての役割を果たすので、曲線の媒介変数表示をしていることになります。

  • 2つの分布が一致しているかを確認したいときは、Q-QプロットまたはP-Pプロットが y=x に近いかで判断
  • 2つの分布が同じ種類の分布なのかを確認したいときは、Q-Qプロットが直線かどうかで判断

具体例で学ぶ数学様「Q-QプロットとP-Pプロットの意味と違い」参照

3.3 当てはまり.

ガンマ乱数で出力したデータをガンマ分布に当てはめているので、当てはまりは良いはずです。

summary(fit)
## Fitting of the distribution ' gamma ' by maximum likelihood 
## Parameters : 
##       estimate Std. Error
## shape 1.841529  0.1388898
## rate  2.890087  0.2502621
## Loglikelihood:  -136.904   AIC:  277.8079   BIC:  285.2155 
## Correlation matrix:
##           shape      rate
## shape 1.0000000 0.8709783
## rate  0.8709783 1.0000000
  • Loglikelihood: 対数尤度
  • AIC: \(AIC=-2\log L+2k\) を最小にするモデルを選ぶ
  • BIC: \(AIC=-2\log L+k\log n\) を最小にするモデルを選ぶ

参考サイト.

fitdistr関数.
fitdistrという関数も同じパッケージに存在する。
推定値は、若干異なっているようである。

fit<-fitdistr(dat,"gamma")
fit
##      shape       rate   
##   1.8416360   2.8904014 
##  (0.1388982) (0.2502880)

3.4 適合度比較.

データを,ワイブル,対数正規分布にも当てはめてみて,適合度を比較する。

#フィットさせる
gam<-fitdist(dat,"gamma")
weib<-fitdist(dat,"weibull")
logn<-fitdist(dat,"lnorm")

#比較(リストで入れる)
gofstat(list(gam, weib, logn), fitnames=c("gamma", "Weibull", "lognormal"))
## Goodness-of-fit statistics
##                                   gamma    Weibull  lognormal
## Kolmogorov-Smirnov statistic 0.04044823 0.03691238 0.06784878
## Cramer-von Mises statistic   0.07561878 0.08254480 0.35529053
## Anderson-Darling statistic   0.44482776 0.63982059 2.14256855
## 
## Goodness-of-fit criteria
##                                   gamma  Weibull lognormal
## Akaike's Information Criterion 277.8079 281.2816  304.6501
## Bayesian Information Criterion 285.2155 288.6892  312.0577
  • Goodness-of-fit statistics.
    適合しているという帰無仮説のもとで、乖離度を表す統計量. 値が小さい方が乖離度は小さい.

  • Goodness-of-fit criteria.
    モデルのあてはまり度を表す統計量. 値が小さいほどあてはまりが良い. (相対的な評価として用いられる).

4 パラメータが1個.

4.1 二項分布.

確率が小さいとき、二項分布はポアソン分布に近いと言われます。

theta=1/6;n=30
x <- rbinom(500, n, theta)
fit <- fitdist(x,"pois")
#summary(fit)
#gofstat(fit)
plot(fit)

theta=1/6;n=30
x <- rbinom(500, n, theta)
fit <- fitdist(x,"nbinom")
#summary(fit)
#gofstat(fit)
plot(fit)

4.1.1 適合度比較.

theta=1/2;n=10
dat <- rbinom(1000, n, theta)
#フィットさせる
binom<-fitdist(dat,"nbinom")
## Warning in sqrt(diag(varcovar)): NaNs produced
## Warning in cov2cor(varcovar): diag(V) had non-positive or NA entries; the
## non-finite result may be dubious
pois<-fitdist(dat,"pois")
norm<-fitdist(dat,"norm")

#比較(リストで入れる)
gofstat(list(binom, pois, norm), fitnames=c("binom", "pois", "norm"))
## Chi-squared statistic:  147.0406 147.0318 101.9314 
## Degree of freedom of the Chi-squared distribution:  5 6 5 
## Chi-squared p-value:  5.692964e-30 3.280902e-29 2.06955e-20 
## Chi-squared table:
##      obscounts theo binom theo pois theo norm
## <= 2        54  121.03525 120.99473  28.65155
## <= 3       109  137.93656 137.90900  72.24013
## <= 4       211  173.92097 173.90325 156.31449
## <= 5       249  175.43430 175.43360 231.83300
## <= 6       191  147.46735 147.48118 235.71592
## <= 7       125  106.25039 106.27072 164.30235
## <= 8        44   66.98434  67.00369  78.49902
## > 8         17   70.97085  71.00382  32.44354
## 
## Goodness-of-fit criteria
##                                   binom     pois     norm
## Akaike's Information Criterion 3969.529 3967.529 3783.471
## Bayesian Information Criterion 3979.345 3972.437 3793.286
par(mfrow = c(3,2))
plot(binom)

plot(pois)

plot(norm)

theta と n を変えてみる。
次のことを確かめてみよう。

  • nが大きいときは正規分布で近似される.
  • nが大きく theta が小さいときはポアソン分布で近似される.

赤池情報量基準(Akaike’s Information Criterion)が小さいほど当てはまりが良いと言われています。

4.1.2 n=500.

nが大きければ、正規分布への当てはまりがいいはずです。

theta=1/2;n=500
dat <- rbinom(100, n, theta)
#フィットさせる
binom<-fitdist(dat,"nbinom")
## Warning in sqrt(diag(varcovar)): NaNs produced
## Warning in cov2cor(varcovar): diag(V) had non-positive or NA entries; the
## non-finite result may be dubious
pois<-fitdist(dat,"pois")
norm<-fitdist(dat,"norm")

#比較(リストで入れる)
gofstat(list(binom, pois, norm), fitnames=c("binom", "pois", "norm"))
## Chi-squared statistic:  9.486517 9.487526 3.384158 
## Degree of freedom of the Chi-squared distribution:  7 8 7 
## Chi-squared p-value:  0.2195862 0.3028505 0.8473388 
## Chi-squared table:
##        obscounts theo binom theo pois theo norm
## <= 232         9  13.022965 13.015154  6.767254
## <= 239        10  11.988025 11.984064 11.088580
## <= 242         9   6.474620  6.473214  7.111279
## <= 246        13   9.522372  9.521092 11.410093
## <= 250         9  10.032346 10.031938 12.774567
## <= 253        11   7.481468  7.481778  9.713652
## <= 257        11   9.429729  9.430892 12.060271
## <= 260         9   6.386497  6.387811  7.789072
## <= 266        10  10.430745 10.433963 11.385040
## > 266          9  15.231234 15.240093  9.900192
## 
## Goodness-of-fit criteria
##                                   binom     pois     norm
## Akaike's Information Criterion 799.7688 797.7687 788.5256
## Bayesian Information Criterion 804.9792 800.3739 793.7360
par(mfrow = c(3,2))
plot(binom)

plot(pois)

plot(norm)

4.1.3 n=500,theta=0.01.

nが大きく、theta が小さければ、正規分布への当てはまりがいいはずです。

theta=0.01;n=500
dat <- rbinom(100, n, theta)
#フィットさせる
binom<-fitdist(dat,"nbinom")
pois<-fitdist(dat,"pois")
norm<-fitdist(dat,"norm")

#比較(リストで入れる)
gofstat(list(binom, pois, norm), fitnames=c("binom", "pois", "norm"))
## Chi-squared statistic:  4.262816 4.262909 11.00213 
## Degree of freedom of the Chi-squared distribution:  4 5 4 
## Chi-squared p-value:  0.3716044 0.5122172 0.02654011 
## Chi-squared table:
##      obscounts theo binom theo pois theo norm
## <= 2        14   11.72560  11.72736  7.751289
## <= 3        11   13.53329  13.53453  9.056041
## <= 4        17   17.22186  17.22269 13.989686
## <= 5        19   17.53261  17.53270 17.551136
## <= 6        10   14.87415  14.87357 17.882898
## <= 7        15   10.81611  10.81521 14.798123
## > 7         14   14.29637  14.29394 18.970827
## 
## Goodness-of-fit criteria
##                                   binom     pois     norm
## Akaike's Information Criterion 440.3093 438.3093 443.0088
## Bayesian Information Criterion 445.5197 440.9145 448.2192
par(mfrow = c(3,2))
plot(binom)

plot(pois)

plot(norm)

theta=0.8;n=20
dat <- rbinom(100, n, theta)
#フィットさせる
binom<-fitdist(dat,"nbinom")
## Warning in sqrt(diag(varcovar)): NaNs produced
## Warning in cov2cor(varcovar): diag(V) had non-positive or NA entries; the
## non-finite result may be dubious
pois<-fitdist(dat,"pois")
norm<-fitdist(dat,"norm")

#比較(リストで入れる)
gofstat(list(binom, pois, norm), fitnames=c("binom", "pois", "norm"))
## Chi-squared statistic:  47.42219 47.42326 7.105462 
## Degree of freedom of the Chi-squared distribution:  3 4 3 
## Chi-squared p-value:  2.82629e-10 1.244719e-09 0.06861123 
## Chi-squared table:
##       obscounts theo binom theo pois theo norm
## <= 14        22  36.836953 36.845810  15.01088
## <= 15        18   9.927339  9.927927  15.30348
## <= 16        18   9.921725  9.921722  19.89332
## <= 17        20   9.332813  9.332255  19.84068
## <= 18        14   8.291143  8.290153  15.18231
## > 18          8  25.690028 25.682132  14.76932
## 
## Goodness-of-fit criteria
##                                   binom     pois     norm
## Akaike's Information Criterion 488.9377 486.9377 418.3476
## Bayesian Information Criterion 494.1481 489.5428 423.5580
par(mfrow = c(3,2))
plot(binom)

plot(pois)

plot(norm)

R 確率密度関数と分布母数の推定.

(標準) 最尤推定4,モーメント法.

https://mi-chan-nel.com/moment-estimation/#google_vignette

モーメント法は,「母集団分布のモーメントと標本分布のモーメントが合うようにパラメータの推定量を決める」という方法である.

library(fitdistrplus)
theta=1/6;n=30
x <- rbinom(500, n, theta)
# 分布のテスト
#x <- df.testDATA$Time2Onset
#y <- max(df.testDATA$Time2Onset)
#min(df.testDATA$Time2Onset)
################ distribution test ################ 

normmlefit <- fitdist(x, "norm", "mle"); fit <- normmlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                              1-mle-norm
## Kolmogorov-Smirnov statistic  0.1152992
## Cramer-von Mises statistic    0.9630858
## Anderson-Darling statistic    5.1449933
## 
## Goodness-of-fit criteria
##                                1-mle-norm
## Akaike's Information Criterion    2157.98
## Bayesian Information Criterion    2166.41

lnormmlefit <- fitdist(x + 0.1, "lnorm", "mle"); fit <- lnormmlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                              1-mle-lnorm
## Kolmogorov-Smirnov statistic   0.1831816
## Cramer-von Mises statistic     2.6276614
## Anderson-Darling statistic    15.4199373
## 
## Goodness-of-fit criteria
##                                1-mle-lnorm
## Akaike's Information Criterion    2351.469
## Bayesian Information Criterion    2359.898

poismlefit <- fitdist(x, "pois", "mle"); fit <- poismlefit; gofstat(fit); plot(fit)
## Chi-squared statistic:  4.55044 
## Degree of freedom of the Chi-squared distribution:  6 
## Chi-squared p-value:  0.6026205 
## Chi-squared table:
##      obscounts theocounts
## <= 2  52.00000   59.03689
## <= 3  61.00000   67.95070
## <= 4  91.00000   86.29739
## <= 5  96.00000   87.67814
## <= 6  81.00000   74.23416
## <= 7  53.00000   53.87279
## <= 8  36.00000   34.20922
## > 8   30.00000   36.72070
## 
## Goodness-of-fit criteria
##                                1-mle-pois
## Akaike's Information Criterion   2154.482
## Bayesian Information Criterion   2158.696

expmlefit <- fitdist(x, "exp", "mle"); fit <- expmlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                               1-mle-exp
## Kolmogorov-Smirnov statistic  0.3419782
## Cramer-von Mises statistic   15.7775384
## Anderson-Darling statistic          Inf
## 
## Goodness-of-fit criteria
##                                1-mle-exp
## Akaike's Information Criterion  2627.311
## Bayesian Information Criterion  2631.526

gammamlefit <- fitdist(x, "gamma", "mme"); fit <- gammamlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                              1-mme-gamma
## Kolmogorov-Smirnov statistic   0.1314201
## Cramer-von Mises statistic     1.1845137
## Anderson-Darling statistic           Inf
## 
## Goodness-of-fit criteria
##                                1-mme-gamma
## Akaike's Information Criterion         Inf
## Bayesian Information Criterion         Inf

nbinommlefit <- fitdist(x, "nbinom", "mle"); fit <- nbinommlefit; gofstat(fit); plot(fit)
## Chi-squared statistic:  4.552438 
## Degree of freedom of the Chi-squared distribution:  5 
## Chi-squared p-value:  0.4728982 
## Chi-squared table:
##      obscounts theocounts
## <= 2  52.00000   59.05338
## <= 3  61.00000   67.96209
## <= 4  91.00000   86.30487
## <= 5  96.00000   87.67866
## <= 6  81.00000   74.22862
## <= 7  53.00000   53.86444
## <= 8  36.00000   34.20118
## > 8   30.00000   36.70677
## 
## Goodness-of-fit criteria
##                                1-mle-nbinom
## Akaike's Information Criterion     2156.482
## Bayesian Information Criterion     2164.911

geommlefit <- fitdist(x, "geom", "mle"); fit <- geommlefit; gofstat(fit); plot(fit)
## Chi-squared statistic:  502.4741 
## Degree of freedom of the Chi-squared distribution:  6 
## Chi-squared p-value:  2.464555e-105 
## Chi-squared table:
##      obscounts theocounts
## <= 2  52.00000  208.35778
## <= 3  61.00000   47.96747
## <= 4  91.00000   40.07808
## <= 5  96.00000   33.48629
## <= 6  81.00000   27.97868
## <= 7  53.00000   23.37692
## <= 8  36.00000   19.53203
## > 8   30.00000   99.22274
## 
## Goodness-of-fit criteria
##                                1-mle-geom
## Akaike's Information Criterion   2719.847
## Bayesian Information Criterion   2724.062

#betammefit <- fitdist(x/y, "beta", "mme"); fit <- betamlefit; gofstat(fit); plot(fit)
unifmlefit <- fitdist(x, "unif", "mle"); fit <- unifmlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                              1-mle-unif
## Kolmogorov-Smirnov statistic  0.3685714
## Cramer-von Mises statistic   20.5726667
## Anderson-Darling statistic          Inf
## 
## Goodness-of-fit criteria
##                                1-mle-unif
## Akaike's Information Criterion   2643.057
## Bayesian Information Criterion   2651.487

logismlefit <- fitdist(x, "logis", "mle"); fit <- logismlefit; gofstat(fit); plot(fit)
## Goodness-of-fit statistics
##                              1-mle-logis
## Kolmogorov-Smirnov statistic   0.1109227
## Cramer-von Mises statistic     0.9964505
## Anderson-Darling statistic     5.5300869
## 
## Goodness-of-fit criteria
##                                1-mle-logis
## Akaike's Information Criterion    2167.771
## Bayesian Information Criterion    2176.200

5 独立性の検定.

独立性の検定とは、
2変量 x,y の値が互いに影響するかしないかを判断する検定である。
テキストp98の9分表の例は、x,y が3水準のカテゴリー変数である場合である。

5.1 p98の例.

太郎 次郎 三郎
午前 48 59 33 140
午後 49 64 47 160
夜間 50 45 25 120
合計 147 168 105 420

独立な状態とは、
作業時間帯がどれであろうと3人の作業結果に影響を与えないということである。具体的には、

  • 各時間帯における3人の分布は、合計の周辺分布に比例している.
  • 3人各々の分布は、計の周辺分布に比例している.

即ち、

太郎 次郎 三郎
午前 a b c a+b+c
午後 d e f d+e+f
夜間 g h i g+h+i
合計 a+d+g b+e+h c+f+i 420

に対し、
観測値から推定する未知母数として、合計と計の比率
 \(p_1=\dfrac{a+d+g}{N}~,~~~p_2=\dfrac{b+e+h}{N}~\), \(q_1=\dfrac{a+b+c}{N}~,~~~q_2=\dfrac{d+e+f}{N}~\).  を用いると、

独立という仮説のもとで確率分布は次のようになる。.

太郎 次郎 三郎
午前 \(p_1q_1\) \(p_2q_1\) \(p_3q_1\) \(q_1\)
午後 \(p_1q_2\) \(p_2q_2\) \(p_3q_2\) \(q_2\)
夜間 \(p_1(1-q_1-q_2)\) \(p_2(1-q_1-q_2)\) \(p_3(1-q_1-q_2)\) \(1-q_1-q_2\)
合計 \(p_1\) \(p_2\) \(1-p_1-p_2\) 1

従って、独立という仮定のもとでの期待度数は、

N=420
p1=147/420;p2=168/420;p3=1-p1-p2
q1=140/420;q2=160/420;q3=1-q1-q2
prob = c(p1*q1,p2*q1,p3*q1,p1*q2,p2*q2,p3*q2,p1*q3,p2*q3,p3*q3)
N*prob
## [1] 49 56 35 56 64 40 42 48 30

p98の上の表のデータの、期待度数からの乖離度は.

x <- c(48,59,33,49,64,47,50,45,25)
y <- N*prob
x
## [1] 48 59 33 49 64 47 50 45 25
y
## [1] 49 56 35 56 64 40 42 48 30
sum((abs(x-y))^2/y)
## [1] 4.940051

出力値は、p99で計算された値と一致している。

5.2 シミュレーション.

問題は、
この周辺分布を仮定し、独立の仮定のもとで無限回実験を繰り返したとき、

  • 乖離度の分布はカイ二乗分布になるか.
  • 自由度はどうなるか.

ということである。

多項乱数を用いてシミュレーションする。

5.2.1 多項乱数.

X = c()
N=420
p1=147/420;p2=168/420;p3=1-p1-p2
q1=140/420;q2=160/420;q3=1-q1-q2

for (i in 1:1000) {
x <- rmultinom(n=1, size = 420, prob = c(p1*q1,p2*q1,p3*q1,p1*q2,p2*q2,p3*q2,p1*q3,p2*q3,p3*q3) ) # 乱数を発生
  a=x[1];b=x[2];c=x[3]
  d=x[4];e=x[5];f=x[6]
  g=x[7];h=x[8];i=x[9]
  P1=(a+d+g)/420;P2=(b+e+h)/420;P3=1-P1-P2#推定確率
  Q1=(a+b+c)/420;Q2=(d+e+f)/420;Q3=1-Q1-Q2 #推定確率
  y <- 420*c(P1*Q1,P2*Q1,P3*Q1,P1*Q2,P2*Q2,P3*Q2,P1*Q3,P2*Q3,P3*Q3) 
  s <- sum((abs(x-y))^2/y)
  X <-c(X,s)
}
mean(X)
## [1] 3.983814
hist(X,prob=T)
curve(dchisq(x,4),add=T)

乖離度の計算において、
乱数が出力するごとに、周辺分布を P1,P2,Q1,Q2 で推定して用いているので、
自由度は 4 減り、9-1-4=4 であることに注意しておこう。
一般に、\(m\times n\) 分割表の独立検定では自由度は.

   \(mn-1-(m-1)-(n-1)=(m-1)(n-1)\).
として、p99に述べられている。

注意しておきたいのは、
これは独立性の検定であるので、確率そのものは問題にしていない

確率を、
  p1=123/420;p2=105/420;q1=127/420;q2=200/420.
のように適当に変えても、全く同じ分布になる。
まさに、びっくり・ピアソンである。
  

X = c()
N=420
p1=123/420;p2=105/420;p3=1-p1-p2
q1=127/420;q2=200/420;q3=1-q1-q2

for (i in 1:1000) {
x <- rmultinom(n=1, size = 420, prob = c(p1*q1,p2*q1,p3*q1,p1*q2,p2*q2,p3*q2,p1*q3,p2*q3,p3*q3) ) # 乱数を発生
  a=x[1];b=x[2];c=x[3]
  d=x[4];e=x[5];f=x[6]
  g=x[7];h=x[8];i=x[9]
  P1=(a+d+g)/420;P2=(b+e+h)/420;P3=1-P1-P2#推定確率
  Q1=(a+b+c)/420;Q2=(d+e+f)/420;Q3=1-Q1-Q2 #推定確率
  y <- 420*c(P1*Q1,P2*Q1,P3*Q1,P1*Q2,P2*Q2,P3*Q2,P1*Q3,P2*Q3,P3*Q3) 
  s <- sum((abs(x-y))^2/y)
  X <-c(X,s)
}
mean(X)
## [1] 3.978382
hist(X,prob=T)
curve(dchisq(x,4),add=T)

調査と検定を行う際には、乱数シミュレーションで分布を確かめておくことが重要である。

5.2.2 Rによる独立検定.

vx=matrix(c(48,59,33,49,64,47,50,45,25),nrow=3,byrow=T)
chisq.test(vx)
## 
##  Pearson's Chi-squared test
## 
## data:  vx
## X-squared = 4.9401, df = 4, p-value = 0.2935

Rでの独立検定は、あっという間に済んでしまう。

\(2\times 2\) 分割表の独立検定は、p99プラスαに記載されている簡易公式が存在するが、\(3\times 3\) 分割表には簡易公式はない。

6 例題14.

そのままカイ二乗適合度検定を適用すると、

vx=c(1,6,18,4,3)
chisq.test(x=vx,p=c(2,8,12,8,2)/32)
## Warning in chisq.test(x = vx, p = c(2, 8, 12, 8, 2)/32): Chi-squared
## approximation may be incorrect
## 
##  Chi-squared test for given probabilities
## 
## data:  vx
## X-squared = 6.5, df = 4, p-value = 0.1648

コクランの規則に従ってセルを結合すると、

vx=c(7,18,7)
chisq.test(x=vx,p=c(10,12,10)/32)
## 
##  Chi-squared test for given probabilities
## 
## data:  vx
## X-squared = 4.8, df = 2, p-value = 0.09072

どちらも有意とはならない。

7 演習14.

7.1 (1)適合度検定.

vx=c(7,18,7)
chisq.test(x=vx,p=c(10,12,10)/32)
## 
##  Chi-squared test for given probabilities
## 
## data:  vx
## X-squared = 4.8, df = 2, p-value = 0.09072

7.2 (2)独立検定.

vx=matrix(c(17,29,14,20,62,38,11,29,20),nrow=3,byrow=T)
chisq.test(vx)
## 
##  Pearson's Chi-squared test
## 
## data:  vx
## X-squared = 4.1889, df = 4, p-value = 0.381

コードはデータ科学便覧様 を参照させていただきました。