『品質管理のための統計手法』の第1章(散布図と相関係数) p.36~37の問1をR(R言語)で

Rコード

# 問1 データ n = 3 対のデータ (1, 2), (2, 5), (3, 5)

df <- data.frame(x = c(1, 2, 3),
                 y = c(2, 5, 5))

df

plot(df$x, df$y)

# 平均
# xの平均
(1 + 2 + 3) / 3
(1 + 2 + 3) / length(df$x)
mean(df$x)

# yの平均
(2 + 5 + 5) / 3
(2 + 5 + 5) / length(df$y)
mean(df$y)


# 平方和
# xの平方和
(1 - 2)^2 + (2 - 2)^2 + (3 - 2)^2
Sxx <- sum((df$x - mean(df$x))^2)
Sxx

# yの平方和
(2 - 4)^2 + (5 - 4)^2 + (5 - 4)^2
Syy <- sum((df$y - mean(df$y))^2)
Syy


# 偏差積和
((1 - 2)*(2 - 4)) + ((2 - 2)*(5 - 4)) + ((3 - 2)*(5 - 4))
Sxy <- sum((df$x - mean(df$x)) * (df$y - mean(df$y)))
Sxy


# 相関係数
r = Sxy / sqrt(Sxx * Syy)
r
cor(df$x, df$y)


# 意味があることではないが、
# ついでにピアソンの積率相関係数の無相関検定を行ってみる
cor.test(df$x, df$y)

# ケンドール
cor.test(df$x, df$y, method = "kendall")

# スピアマン
cor.test(df$x, df$y, method = "spearman")

R Console

> # 問1 データ n = 3 対のデータ (1, 2), (2, 5), (3, 5)
> 
> df <- data.frame(x = c(1, 2, 3),
+                  y = c(2, 5, 5))
> 
> df
  x y
1 1 2
2 2 5
3 3 5
> 
> plot(df$x, df$y)
> 
> # 平均
> # xの平均
> (1 + 2 + 3) / 3
[1] 2
> (1 + 2 + 3) / length(df$x)
[1] 2
> mean(df$x)
[1] 2
> 
> # yの平均
> (2 + 5 + 5) / 3
[1] 4
> (2 + 5 + 5) / length(df$y)
[1] 4
> mean(df$y)
[1] 4
> 
> 
> # 平方和
> # xの平方和
> (1 - 2)^2 + (2 - 2)^2 + (3 - 2)^2
[1] 2
> Sxx <- sum((df$x - mean(df$x))^2)
> Sxx
[1] 2
> 
> # yの平方和
> (2 - 4)^2 + (5 - 4)^2 + (5 - 4)^2
[1] 6
> Syy <- sum((df$y - mean(df$y))^2)
> Syy
[1] 6
> 
> 
> # 偏差積和
> ((1 - 2)*(2 - 4)) + ((2 - 2)*(5 - 4)) + ((3 - 2)*(5 - 4))
[1] 3
> Sxy <- sum((df$x - mean(df$x)) * (df$y - mean(df$y)))
> Sxy
[1] 3
> 
> 
> # 相関係数
> r = Sxy / sqrt(Sxx * Syy)
> r
[1] 0.8660254
> cor(df$x, df$y)
[1] 0.8660254
> 
> 
> # 意味があることではないが、
> # ついでにピアソンの積率相関係数の無相関検定を行ってみる
> cor.test(df$x, df$y)

    Pearson's product-moment correlation

data:  df$x and df$y
t = 1.7321, df = 1, p-value = 0.3333
alternative hypothesis: true correlation is not equal to 0
sample estimates:
      cor 
0.8660254 

> 
> # ケンドール
> cor.test(df$x, df$y, method = "kendall")

    Kendall's rank correlation tau

data:  df$x and df$y
z = 1.2247, p-value = 0.2207
alternative hypothesis: true tau is not equal to 0
sample estimates:
      tau 
0.8164966 

 警告メッセージ: 
 cor.test.default(df$x, df$y, method = "kendall"): 
   タイのため正確な p 値を計算することができません 
> 
> # スピアマン
> cor.test(df$x, df$y, method = "spearman")

    Spearman's rank correlation rho

data:  df$x and df$y
S = 0.5359, p-value = 0.3333
alternative hypothesis: true rho is not equal to 0
sample estimates:
      rho 
0.8660254 

 警告メッセージ: 
 cor.test.default(df$x, df$y, method = "spearman"): 
   タイのため正確な p 値を計算することができません 

散布図のスクリーンショット

f:id:my_notes:20170528221030p:plain

参考文献

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

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