R で累積相対度数分布 (累積分布関数) を描く方法
R で累積相対度数分布 (累積分布関数) を描く方法ですが、大きく分けて、(1) 手書き (2) ecdf() 関数を使う の2とおりがあります。細かなところの設定がしやすいのは (1) 手書きかもしれませんね。あとは、好みですかね。 いつものように iris のデータセットで、1行目 Sepal.Length の累積相対度数分布 (累積分布関数) を描いてみましょう。 その1 iris の1行目 Sepal.Length の行を hoge の1回格納してから、描画しています。hoge をソートして、小さい順に並べて、小さい方から n 番目の hoge の値で、 n/(hogeの総数) が y軸に描画されるようにします。値に、"0" を加えるのが肝心です。 > data(iris) > hoge plot(c(0, sort(hoge) ), c(0:length(hoge))/length(hoge) , type="s") この場合は、 type="s" のオプション指定が良いでしょう。もし、 type="l" の書き方だと階段状の表記にならず、近似的な表現にります。ただし、標本数が十分に多ければ大きな問題にはならないでしょう。 ちなみに、Y軸のデータであるところの c(0:length(hoge))/length(hoge) というのを、hoge の標本数 length(hoge) で割るのをやめ c(0:length(hoge)) だけにしたら、累積度数分布の図になります。Y軸の値が、x軸値までの個数に置き代りますね。 > data(iris) > plot(c(0, sort(hoge) ), c(0:length(hoge)) , type="s") その2 > plot(ecdf(iris[,1]), col="blue") ecdf() を使うと書式は単純になりますね。 xlim, ylim のオプションを付けることは可能でした。ただ、 type="l" は許されないようです。