投稿

4月, 2017の投稿を表示しています

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" は許されないようです。

R で、3次元の散布図と95%信頼楕円体を一緒に描く方法

イメージ
R で、いつもの iris のデータを、グループ毎に色を変えて3次元の散布図で描画し、さらに、グループ毎の 95% 信頼楕円体を一緒に描いてみます。 それぞれの軸は、x, y, z は、それぞれ Sepal.Length, Sepal.Width, Petal.Length です。つまる所、はじめの3列です。 rgl パッケージが必要ですので、インストールしておきましょう。 50ずつ、3グループになっているので、色と後半の楕円は、50ずつで処理しています。 for ループを使いましたが、3回に分けてデータを変えて楕円を書いても良いです。 library(rgl) Colour 3次元図は、保存の際は、2次元のグラフのように pdf で保存はできません。 eps (のちに pdf に変換可能) なら、 rgl.postscript("iris_with_ellipse.eps", fmt="eps" ) グラウザーで表示して、ぐりぐり回すなら、 writeWebGL(width=500, height=550) などとすると "webGL" というフォルダー内に "index.html" というファイルで保存できます。 html の中身をそのまま貼り付けたのが、2番目の図ですが、回転できなかったらごめんなさい。