0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rを学びたい Step19 結局、標準正規分布って何なの??正規分布との関係性は?

Posted at

はじめに

これまで正規分布を使って検定や推測を実施してきました。やっていく中で、ん???結局正規分布ってなんだっけって部分が増えてきたので、ここで立ち止まって改めて標準正規分布・正規分布に関して学ぼうと思います!

そもそもなんで正規分布が必要なのか?

そもそもなんで、正規分布が必要なのか??
→それはバラバラのデータを比較しやすくするため。

例えば平均点80点の国語のテストで80点、平均点60点の数学のテストで80点。
→この場合、同じ80点でも数学の80点の方が価値ありそうですよね。

では、平均点70点の国語のテストで80点、平均点60点の数学のテストで70点。
→これは、どっちの方が価値が高い??平均点から同じ10点離れているから、同一の価値?

では、平均点10点のテストで国語20点。平均点990点のテストで数学1000点。
→これは平均点から共に10点離れているから同一の価値?国語は平均点から倍、数学は誤差の範疇。本当に同じ価値??

比較する時に平均や点数は異なるので、一概に比較ができません。
そこで、比較する時に同一の基準を持たせる必要があります。そこで、異なる指標のものでも標準化して、比較しやすくする必要があります。

異なるデータの基準を揃える

国語と数学の平均点やばらつき(標準偏差)が違うため、そのままでは比較が難しいです。
そのために標準化を実施します。
で、どうやって標準化するの??🤔が次の話です。

1. 標準化の目的

標準化の目的は、「データを比較しやすくする」こと。
これを達成するには、データを「基準を揃えた形」に変換する必要がある。
• 平均を揃える
• データの中心(基準点)を同じにするために、「データ全体の平均」を引く。
• これで、「どれだけ平均から離れているか」を基準にできる。
• ばらつきを揃える:
• データの広がり(ばらつき)を揃えるために、「標準偏差」で割る。
• これで、どのデータも「どれくらい平均から遠いか」を同じ単位で表現できる。

2. 平均が必要な理由:基準点を揃える

平均は、データ全体の「中心」を表します。
標準化する際に、各データから平均を引くのは、データの基準点を「ゼロ」に揃えるためです。

例:国語と数学の比較
• 国語のデータ:80点(平均70)
• 平均を引くと、 80 - 70 = 10 → 平均から10点上。
• 数学のデータ:60点(平均50)
• 平均を引くと、 60 - 50 = 10 → 平均から10点上。

なぜ平均を引くの?
• 平均を引くことで、「そのデータが中心(平均)からどれだけ離れているか」を明確にできます。
• これが標準化の第一ステップで、データを「基準ゼロ」に揃える操作です。

3. 標準偏差が必要な理由:ばらつきを揃える

標準偏差(\sigma)は、データの「ばらつき(散らばり具合)」を表します。
標準化では、平均からの差を標準偏差で割ることで、データのばらつきを統一します。

例:国語と数学のばらつき
• 国語:標準偏差10 → 「1標準偏差」は10点の広がりを意味する。
• 数学:標準偏差5 → 「1標準偏差」は5点の広がりを意味する。

なぜ標準偏差で割るの?
• データのばらつきが違うと、比較が不公平になる。
• 国語は「±10点」が普通の範囲(ばらつきが大きい)。
• 数学は「±5点」が普通の範囲(ばらつきが小さい)。
• 標準偏差で割ることで、どちらも「1標準偏差がどれだけの大きさか」という同じ基準で扱えるようになる。

計算結果

\begin{align}
    •	国語: z = \frac{80 - 70}{10} = 1  → 平均より「1標準偏差」上。  \\
    •	数学: z = \frac{60 - 50}{5} = 2  → 平均より「2標準偏差」上。  \\
\end{align}

正規分布、標準正規分布の図の可視化

では、Rで数学と国語の正規分布を表示します。今回は下記の国語と数学の結果を表示します。

•国語(Kokugo)
・平均: \mu = 70
・標準偏差: \sigma = 10

•数学(Math)
•平均: \mu = 50
•標準偏差: \sigma = 5

seikibunpu.r
# 必要なパッケージを読み込む(初回のみインストール)
if(!require(ggplot2)) install.packages("ggplot2", dependencies = TRUE)
library(ggplot2)

# データの設定
# 国語: 平均70, 標準偏差10
mu_kokugo <- 70
sigma_kokugo <- 10

# 数学: 平均50, 標準偏差5
mu_math <- 50
sigma_math <- 5

# x軸の範囲を設定
x_kokugo <- seq(40, 100, by = 0.1)  # 国語のスコア範囲
x_math <- seq(30, 70, by = 0.1)    # 数学のスコア範囲

# 正規分布の確率密度を計算
y_kokugo <- dnorm(x_kokugo, mean = mu_kokugo, sd = sigma_kokugo)
y_math <- dnorm(x_math, mean = mu_math, sd = sigma_math)

# 国語と数学のデータを結合
data <- data.frame(
  Score = c(x_kokugo, x_math),
  Density = c(y_kokugo, y_math),
  Subject = rep(c("Kokugo", "Math"), c(length(x_kokugo), length(x_math)))
)

# 正規分布をプロット
ggplot(data, aes(x = Score, y = Density, color = Subject)) +
  geom_line(size = 1) +
  labs(title = "Normal Distribution of Math and Kokugo",
       x = "Score",
       y = "Probability Density",
       color = "Subject") +
  theme_minimal() +
  scale_color_manual(values = c("blue", "red"))

image.png

では、次に標準正規分布に落とし込みます。

# 必要なパッケージをインストール&読み込む(初回のみインストールが必要)
if(!require(ggplot2)) install.packages("ggplot2", dependencies = TRUE)
library(ggplot2)

# データ入力
# 教科ごとの平均値と標準偏差
mu_kokugo <- 70     # 国語の平均
sigma_kokugo <- 10  # 国語の標準偏差
mu_math <- 50       # 数学の平均
sigma_math <- 5     # 数学の標準偏差

# 点数の範囲を設定
x_kokugo <- seq(40, 100, by = 0.1)  # 国語のスコア範囲
x_math <- seq(30, 70, by = 0.1)    # 数学のスコア範囲

# 標準化したスコアを計算
z_kokugo <- (x_kokugo - mu_kokugo) / sigma_kokugo
z_math <- (x_math - mu_math) / sigma_math

# 標準正規分布の確率密度を計算
y_z_kokugo <- dnorm(z_kokugo, mean = 0, sd = 1)
y_z_math <- dnorm(z_math, mean = 0, sd = 1)

# 標準正規分布のデータを結合
z_data <- data.frame(
  Z_Score = c(z_kokugo, z_math),
  Density = c(y_z_kokugo, y_z_math),
  Subject = rep(c("Kokugo", "Math"), c(length(z_kokugo), length(z_math)))
)

# データフレームの内容を表示
cat("Data Frame Head (First 6 rows):\n")
print(head(z_data))  # データの先頭部分を表示

cat("\nSummary of Data Frame:\n")
print(summary(z_data))  # データの要約統計量を表示

# 標準正規分布をプロット
ggplot(z_data, aes(x = Z_Score, y = Density, color = Subject)) +
  geom_line(size = 1) +
  labs(title = "Standard Normal Distribution of Math and Kokugo",
       x = "Standardized Score (Z-Score)",
       y = "Probability Density",
       color = "Subject") +
  theme_minimal() +
  scale_color_manual(values = c("blue", "red"))

image.png

最後に

なるほど。なんとなくわかってきた💡比較する時に平均や分散が異なるとそのままで比較できないから、標準化しようって話なのか。
あれ???でも、標準化する必要性はわかったけど、なんで?確率と関係が出てくるのか?信頼区間の算出の時に、標準正規分布使っているけど、直接関係なくない???😅なので、次は標準正規分布と確率の関係性を解き明かしていきます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?