R - 正規分布:初心者向けのやさしいガイド
こんにちは、未来のRの魔法使いさんたち!? 今日は、Rにおける正規分布の興味深い世界に潜り込みます。以前にプログラミングをしたことがないとしても心配しないでください。この旅におけるあなたの親切なガイドとして、私はステップバイステップで進めていきます。このチュートリアルの終わりには、たった数行のコードで何ができるか驚くことでしょう!
正規分布とは?
Rに飛び込む前に、まず正規分布とは何か簡単に話しましょう。想像してみてください、あなたの学校の全ての生徒の身長を測っているところです。大部分の人は平均的な身長で、非常に背が高い人や非常に背が低い人は少数派です。これをグラフに描くと、鐘の形の曲線が現れます。これが正規分布です!
統計学では、正規分布を頻繁に使用しますし、Rにはそれを操作するための素晴らしい関数がいくつかあります。それらを一つずつ見ていきましょう。
Rの正規分布関数
Rには、正規分布を操作するための4つの主要な関数があります。以下に簡単な概要を示します:
関数 | 目的 |
---|---|
dnorm() | 正規分布の密度(高さ)を与えられた点で計算します |
pnorm() | 与えられた点までの累積確率(曲線下の面積)を計算します |
qnorm() | 与えられた確率に対応する値(分位数)を見つけます |
rnorm() | 正規分布からランダムな数を生成します |
それでは、これらの関数のそれぞれに詳しくなってみましょう!
dnorm():密度関数
dnorm()
関数は、任意の点での正規分布曲線の高さを見つけるのに役立ちます。これは、「この特定の値がどれだけ確率的か?」と尋ねるのに似ています。
以下に例を示します:
# 標準正規分布におけるx = 0での密度を計算します
result <- dnorm(0)
print(result)
実行すると以下のようになります:
[1] 0.3989423
これは、標準正規分布曲線におけるx = 0での高さが約0.3989であることを意味します。
でも、平均値や標準偏差を変更したい場合はどうでしょうか?問題ありません!以下を試してみてください:
# 平均 = 2、標準偏差 = 0.5の正規分布におけるx = 1での密度を計算します
result <- dnorm(1, mean = 2, sd = 0.5)
print(result)
出力:
[1] 0.1079819
これを見てください。Rに、平均値が2で標準偏差が0.5の正規分布を指定し、x = 1での密度を尋ねただけです。
pnorm():累積確率関数
次にpnorm()
に進みましょう。この関数は、与えられた点以下の値の確率を計算します。これは、「この値以下の値がどれだけ確率的か?」と尋ねるのに似ています。
以下に例を示します:
# 標準正規分布における1.96未満の値の確率を計算します
result <- pnorm(1.96)
print(result)
出力:
[1] 0.9750021
これは、標準正規分布における1.96以下の値が約97.5%の確率で得られることを意味します。
楽しい fact:これが95%信頼区間のために1.96がしばしば使用される理由です!
次に、異なる平均値と標準偏差の例を試みます:
# 平均 = 60、標準偏差 = 10の正規分布における70未満の値の確率を計算します
result <- pnorm(70, mean = 60, sd = 10)
print(result)
出力:
[1] 0.8413447
これは、この分布における70以下の値が約84.1%の確率で得られることを意味します。
qnorm():分位数関数
qnorm()
はpnorm()
の逆のようなものです。与えるのは確率で、求めるのは値です。これは、「この特定の確率を与える値は何か?」と尋ねるのに似ています。
以下に試してみましょう:
# 標準正規分布における累積確率0.95の値を見つけます
result <- qnorm(0.95)
print(result)
出力:
[1] 1.644854
これは、標準正規分布における95%の値が1.645以下であることを意味します。
異なる平均値と標準偏差を使用することもできます:
# 平均 = 100、標準偏差 = 15の正規分布における累積確率0.99の値を見つけます
result <- qnorm(0.99, mean = 100, sd = 15)
print(result)
出力:
[1] 134.8745
この分布における99%の値が134.87以下であることを意味します。
rnorm():ランダム数の生成
最後に、rnorm()
を紹介します。この関数は、正規分布のルールに従ってランダムな数を生成する魔法の数生成器のようなものです。シミュレーションやテストデータの作成に非常に便利です。
以下に使い方を示します:
# 標準正規分布から5つのランダムな数を生成します
random_numbers <- rnorm(5)
print(random_numbers)
出力(あなたの数は異なるでしょう):
[1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774
異なる平均値と標準偏差を指定することもできます:
# 平均 = 50、標準偏差 = 10の正規分布から5つのランダムな数を生成します
random_numbers <- rnorm(5, mean = 50, sd = 10)
print(random_numbers)
出力(あなたの数は異なるでしょう):
[1] 52.39086 46.08371 47.92569 62.36229 45.45923
これってすごくないですか?一行のコードで、任意の正規分布に基づいて任意の数のランダムな数を生成することができます!
締め括り
そして、みなさん!正規分布のRにおける旅が終わりです。4つの強力な関数を探索しました。実践が完璧を生むことを忘れないでくださいので、これらの関数を試してみてください。異なる値を試し、結果をプロットし、何が起きるかを確認してください!
小小な挑戦があります:rnorm()
を使用して1000のランダムな数を生成し、それらのヒストグラムをhist()
でプロットしてみてください。あなたの眼前で正規分布が生き返るのを見ることができます!
ハッピーコーディング、そして正規分布があなたと共にあります!???
Credits: Image by storyset