正規分布のグラフをRで描く。【curve()の使い方】

[公開日]2016/08/26[更新日]2017/06/25 [カテゴリー]R言語入門 Written by  IMIN

R言語を用いて正規分布のグラフを作成する方法を見ていきましょう!関数"curve()"を使います。

 
 

最も簡単な描き方(標準正規分布)

まずは、「とにかく正規分布の形が描ければいい!」という人へ。

プログラム

curve(dnorm,-5,5)       #curve(関数の式,横軸の最小値,横軸の最大値)

プログラムはこれだけです。これで標準正規分布のグラフが描けました。

R正規1

ここで「-5,5」というのはグラフの横軸の範囲です。これを例えば、「0,10」に変更すればグラフは以下のようになります。

プログラム

curve(dnorm,0,10)

R正規2

関数、curve()とdnorm()

さてここで、今回使った関数、"curve()"と"dnorm()"について触れておきましょう。

curve()……指定した関数のグラフをそのまま作成します。関数の式を入れて使ってください。curve(関数の式,横軸の最小値,横軸の最大値)のように使います。例えば、y = sin(x)のグラフを書いて見るとこんな感じです。(今回は青で描いてみました。)

プログラム

curve(sin(x),-5,5,col="blue") #col="blue"は色を青に指定

R正規3

dnorm()……正規分布の場合の確率点を返します。dnorm(x,平均,標準偏差)といった具合に、パラメータに平均標準偏差を取ります。パラメータの指定がなければ、自動的に平均0、分散1の標準正規分布の確率点を返します。

例えば、平均10、標準偏差15の正規分布の7の確率点は以下のようにして分かります。

プログラム

dnorm(7,10,15) #dnorm(x,平均,標準偏差)

[1] 0.02606951

平均と分散を自由に設定して正規分布を描く

今回描いたグラフでは、dnormとだけ書き、特にパラメーターを指定しなかったので標準正規分布になりました。以下のようにパラメーター指定をしてあげると、別のグラフを描くこともできます。

プログラム

curve(dnorm(x,50,10),0,100)#横軸の範囲は0~100

これで、平均50、標準偏差10のグラフが描けます。

R正規4

横軸、縦軸に名前をつけて正規分布のグラフを描く

今までのグラフは横軸や縦軸の名前が非常に味気ないものでしたよね。軸に名前をつけるのもお手の物です。

xlab="横軸の名前"

ylab="縦軸の名前"

で指定します。

では、例えば身長に関して正規分布のグラフを描いてみます。平均170、標準偏差6とします。

プログラム

curve(dnorm(x,170,6),150,190,xlab="身長",ylab="その身長の人の全体に占める割合") #横軸は150~190

結果はこのようになります。

R正規5

色を変えてグラフを重ねる

最後に複数のグラフを一枚に書く方法についてご紹介します。それは、グラフを書くときのオプションとして

add = TRUE

というのを付け足すことによって可能になります。具体的には以下のようにします。※わかりやすさのために、赤と緑に色を設定しました。

プログラム

curve(dnorm(x,350.92,0.85),340,360,add = TRUE,col = "red")

curve(dnorm(x,350,3),340,360,add = TRUE,col = "green")

これによって、次のように、一つのウィンドウ上にグラフが2本描けます。

 

まとめ

いかがでしたでしょうか。これでRで正規分布のグラフを描く方法はばっちりですね!!

今回"curve()"という関数を使ってグラフを書きました。この関数、描くグラフを直接指定出来るので、正規分布に限らず他のグラフを描くのにも超便利です。是非使えるようにしておきたいものですね。では、今回はこの辺で失礼します。

  • スポンサーリンク

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA