『品質管理のための統計手法』の第1章 (分割表(クロス集計表)) p.51~53をR(R言語)で

Rコード

# 問1
df <- data.frame(No. = 1:8,
                原料納入メーカーx = c("A", "B", "B", "A", "A", "B", "B", "B"),
                検査結果y = c("1級品", "2級品", "3級品", "2級品", "1級品", "2級品", "1級品", "3級品"))

df

summary(df)
table(df$原料納入メーカーx, df$検査結果y)
xtabs(~原料納入メーカーx + 検査結果y, data = df)
addmargins(xtabs(~原料納入メーカーx + 検査結果y, data = df), margin = 1:2)

# 問2
x <- matrix(c(37, 20, 3, 3, 10, 27), ncol = 3, byrow = TRUE)
x

# or
# y <- matrix(c(37, 20, 3, 3, 10, 27), nrow = 2, ncol = 3)
# y

# 期待度数
m11 <- (60 * 40) / 100
m11

# eij
e11 <- (37 - 24) / sqrt(24)
e11

# カイ二乗値
chisq.test(x)

# クラメールの連関係数
round(sqrt(49.42 / (100 * (2 - 1))), 3)
round(sqrt(49.41 / (100 * (2 - 1))), 3)

# クラメールの連関係数
# Rの関数
library("vcd")
assocstats(x)

R Console

> # 問1
> df <- data.frame(No. = 1:8,
+                 原料納入メーカーx = c("A", "B", "B", "A", "A", "B", "B", "B"),
+                 検査結果y = c("1級品", "2級品", "3級品", "2級品", "1級品", "2級品", "1級品", "3級品"))
> 
> df
  No. 原料納入メーカーx 検査結果y
1   1                 A     1級品
2   2                 B     2級品
3   3                 B     3級品
4   4                 A     2級品
5   5                 A     1級品
6   6                 B     2級品
7   7                 B     1級品
8   8                 B     3級品
> 
> summary(df)
      No.       原料納入メーカーx 検査結果y
 Min.   :1.00   A:3               1級品:3  
 1st Qu.:2.75   B:5               2級品:3  
 Median :4.50                     3級品:2  
 Mean   :4.50                              
 3rd Qu.:6.25                              
 Max.   :8.00                              
> table(df$原料納入メーカーx, df$検査結果y)
   
    1級品 2級品 3級品
  A     2     1     0
  B     1     2     2
> xtabs(~原料納入メーカーx + 検査結果y, data = df)
                 検査結果y
原料納入メーカーx 1級品 2級品 3級品
                A     2     1     0
                B     1     2     2
> addmargins(xtabs(~原料納入メーカーx + 検査結果y, data = df), margin = 1:2)
                 検査結果y
原料納入メーカーx 1級品 2級品 3級品 Sum
              A       2     1     0   3
              B       1     2     2   5
              Sum     3     3     2   8
> 
> # 問2
> x <- matrix(c(37, 20, 3, 3, 10, 27), ncol = 3, byrow = TRUE)
> x
     [,1] [,2] [,3]
[1,]   37   20    3
[2,]    3   10   27
> 
> # or
> # y <- matrix(c(37, 20, 3, 3, 10, 27), nrow = 2, ncol = 3)
> # y
> 
> # 期待度数
> m11 <- (60 * 40) / 100
> m11
[1] 24
> 
> # eij
> e11 <- (37 - 24) / sqrt(24)
> e11
[1] 2.653614
> 
> # カイ二乗値
> chisq.test(x)

    Pearson's Chi-squared test

data:  x
X-squared = 49.41, df = 2, p-value = 1.866e-11

> 
> # クラメールの連関係数
> round(sqrt(49.42 / (100 * (2 - 1))), 3)
[1] 0.703
> round(sqrt(49.41 / (100 * (2 - 1))), 3)
[1] 0.703
> 
> # クラメールの連関係数
> # Rの関数
> library("vcd")
> assocstats(x)
                    X^2 df   P(> X^2)
Likelihood Ratio 55.596  2 8.4632e-13
Pearson          49.410  2 1.8656e-11

Phi-Coefficient   : NA 
Contingency Coeff.: 0.575 
Cramer's V        : 0.703 

参考文献

品質管理のための統計手法 (日経文庫)

品質管理のための統計手法 (日経文庫)