【仮説検定】R言語を使って1標本の母集団の平均に関するz検定と推定を行うプログラムを実装する

検定推定
あい
あい

今回はR言語を
利用して1標本の
母集団に関する
検定と推定を
行うプログラムを
実装します

R]※本サイトにはプロモーションが含まれています

R言語とは?

R言語は、統計解析やデータ可視化のために

設計されたプログラミング言語および環境です

Rは、様々な統計手法

をサポートしています

あい
あい

早速検定を
やっていきましょ~

今回作成するコード

sample_data <- read.csv("sample_data.csv")
#データを確認する
print(sample_data)

sample_data <- sample_data[[1]]
print(sample_data)

mu <- 20  # 仮定の母平均
sigma <- 0.2  # 標準偏差
alpha <- 0.05  # 有意水準
n <- length(sample_data) # サンプルサイズ

# 標本平均の計算
sample_mean <- mean(sample_data)
# 統計量zの計算
z <- (sample_mean - mu) / (sigma / sqrt(n))

# 臨界値の計算
critical_value <- qnorm(alpha)

if (z < critical_value) {
  result <- "帰無仮説を棄却する"
} else {
  result <- "帰無仮説を棄却できない"
}

# 結果の表示
cat("検定統計量 (z):", z, "\n")
cat("臨界値:", critical_value, "\n")
cat("結論:", result, "\n")

# 点推定
point_estimate <- sample_mean

# 95%信頼区間の計算
z_critical <- qnorm(1 - alpha / 2)  # 95%信頼区間のZ値
margin_of_error <- z_critical * (sigma / sqrt(n))
confidence_interval <- c(point_estimate - margin_of_error, point_estimate + margin_of_error)

# 点推定と信頼区間の表示
cat("点推定:", point_estimate, "\n")
cat("95%信頼区間: [", confidence_interval[1], ", ", confidence_interval[2], "]\n")

z検定

例題1

ビンに穴をあける工程がある
ビンの穴の直径が
母平均\(μ=20um\)
母分散\(σ_0^2=0.2^2\)
となるように設定されている
より直径を小さくするために
装置の設定を変更した。
ビンの穴の直径のデータは以下である

No.1No.2No.3No.4No.5No.6No.7No.8No.9No.10
19.6419.7219.6519.6819.719.7319.6619.7319.6919.68

装置設定変更後も
母分散は一致していると仮定し
統計的仮説検定を利用して
ビンの穴の直径が小さくなっているか評価せよ

例題のZ検定を実装する

データをcsvに格納します

csvファイルをRで読み込みデータを格納します

sample_data <- read.csv("sample_data.csv")
#データを確認する
print(sample_data)

出力はこんな感じ

検定の計算を行うためにベクトル変換します

sample_data <- sample_data[[1]]
print(sample_data)

帰無仮説の平均\(μ=20um\)

母分散\(σ_0^2=0.2^2\)

有意水準\(α = 0.05\)

mu <- 20  # 仮定の母平均
sigma <- 0.2  # 標準偏差
alpha <- 0.05  # 有意水準
n <- length(sample_data) # サンプルサイズ

検定統計量の計算をする

# 標本平均の計算
sample_mean <- mean(sample_data)
# 統計量zの計算
z <- (sample_mean - mu) / (sigma / sqrt(n))

臨界点の計算をする

# 臨界値の計算
critical_value <- qnorm(alpha)

結論を導出する

if (z < critical_value) {
  result <- "帰無仮説を棄却する"
} else {
  result <- "帰無仮説を棄却できない"
}

# 結果の表示
cat("検定統計量 (z):", z, "\n")
cat("臨界値:", critical_value, "\n")
cat("結論:", result, "\n")

完成しました!

纏めると

sample_data <- read.csv("sample_data.csv")
#データを確認する
print(sample_data)

sample_data <- sample_data[[1]]
print(sample_data)

mu <- 20  # 仮定の母平均
sigma <- 0.2  # 標準偏差
alpha <- 0.05  # 有意水準
n <- length(sample_data) # サンプルサイズ

# 標本平均の計算
sample_mean <- mean(sample_data)
# 統計量zの計算
z <- (sample_mean - mu) / (sigma / sqrt(n))

# 臨界値の計算
critical_value <- qnorm(alpha)

if (z < critical_value) {
  result <- "帰無仮説を棄却する"
} else {
  result <- "帰無仮説を棄却できない"
}

# 結果の表示
cat("検定統計量 (z):", z, "\n")
cat("臨界値:", critical_value, "\n")
cat("結論:", result, "\n")
あい
あい

できました~

点推定と信頼区間95%の区間推定を行う

下記コードを追加してください

# 点推定
point_estimate <- sample_mean

# 95%信頼区間の計算
z_critical <- qnorm(1 - alpha / 2)  # 95%信頼区間のZ値
margin_of_error <- z_critical * (sigma / sqrt(n))
confidence_interval <- c(point_estimate - margin_of_error, point_estimate + margin_of_error)

# 点推定と信頼区間の表示
cat("点推定:", point_estimate, "\n")
cat("95%信頼区間: [", confidence_interval[1], ", ", confidence_interval[2], "]\n")
タイトルとURLをコピーしました