2016/08/26
2020/05/04
正規分布のグラフをRで描く。【curve()の使い方】
R言語を用いて正規分布のグラフを作成する方法を見ていきましょう!関数”curve()”を使います。
また、R言語について、さらに学びたい方はR言語入門をご覧ください。
目次
最も簡単な描き方(標準正規分布)
まずは、「とにかく正規分布の形が描ければいい!」という人へ。
curve(dnorm,-5,5) #curve(関数の式,横軸の最小値,横軸の最大値)
プログラムはこれだけです。これで標準正規分布のグラフが描けました。
ここで「-5,5」というのはグラフの横軸の範囲です。これを例えば、「0,10」に変更すればグラフは以下のようになります。
curve(dnorm,0,10)
関数、curve()とdnorm()
さてここで、今回使った関数、”curve()”と”dnorm()”について触れておきましょう。
curve()……指定した関数のグラフをそのまま作成します。関数の式を入れて使ってください。curve(関数の式,横軸の最小値,横軸の最大値)のように使います。例えば、y = sin(x)のグラフを書いて見るとこんな感じです。(今回は青で描いてみました。)
curve(sin(x),-5,5,col=”blue”) #col=”blue”は色を青に指定
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のグラフが描けます。
横軸、縦軸に名前をつけて正規分布のグラフを描く
今までのグラフは横軸や縦軸の名前が非常に味気ないものでしたよね。軸に名前をつけるのもお手の物です。
xlab=”横軸の名前”
ylab=”縦軸の名前”
で指定します。
では、例えば身長に関して正規分布のグラフを描いてみます。平均170、標準偏差6とします。
curve(dnorm(x,170,6),150,190,xlab=”身長”,ylab=”その身長の人の全体に占める割合”) #横軸は150~190
結果はこのようになります。
色を変えてグラフを重ねる
最後に複数のグラフを一枚に書く方法についてご紹介します。それは、グラフを書くときのオプションとして
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()“という関数を使ってグラフを書きました。この関数、描くグラフを直接指定出来るので、正規分布に限らず他のグラフを描くのにも超便利です。是非使えるようにしておきたいものですね。では、今回はこの辺で失礼します。
R言語について、さらに学びたい方はR言語入門をご覧ください。
Recommended