経済統計の使い方
統計初心者の社会人向けに、経済データの解説をしています。「まとめページ」をご覧くだされば、全体的な内容がわかると思います。
R

【R】3Dグラフの描き方|rglパッケージを利用

rglパッケージを利用した3Dグラフの描き方を説明します。

基本的には、plot3d(x軸データ、y軸データ、z軸データ)で描けます。

画面上で様々な角度に動かすことができます。

経済統計の使い方では、統計データの入手法から分析法まで解説しています。

【R】Rのまとめ 経済統計の使い方では、統計データの入手法から分析法まで解説しています。 https://officekaisuiyoku.com...

データの説明

以下のデータを使って3Dグラフを描きます。

Y <-  c(-7.382379268,10.04525675,11.43096839,-2.812232976,38.9330499,4.644860325,37.95110956,30.30746641,21.27520163,27.88925466,16.53575991,40.74465021,15.5376137,48.02570672,38.51752886,51.98384109,11.98476026,13.76414091,18.38622325,30.27168343,64.05342122,59.22072479,61.44983601,36.11994684,67.68128579,44.77814685,31.05747307,49.25653848,62.18772392,54.38183721,71.79613648,37.70836203,29.32894718,77.46744851,82.79381373,50.33937402,80.98123632,78.73075469,73.62877477,67.897976,76.59519218,51.08151006,91.43375427,58.89134899,83.52355582,66.96390632,94.82950387,96.55055589,81.85841498,88.26169446)
X1 <- c(2.440188768,4.450849014,5.629768867,8.793044504,2.0706635,10.9611757,7.881501783,6.406220668,10.79006802,10.30987915,6.095221446,16.66030781,9.360227339,10.18875588,13.41652702,16.74947306,16.2894293,22.10108461,18.80799965,19.37111184,19.1402202,22.88767096,21.70260041,23.8411326,27.10879985,26.97347737,26.61440853,27.03063463,25.73741696,30.3637381,26.15907211,32.36210448,33.73917947,34.35108284,39.18631761,31.66614607,32.18503124,41.30349935,40.9818104,42.9754795,41.3596405,45.72965915,38.46156947,42.83157635,46.97401773,42.26308488,47.34501729,45.67811674,46.61572207,53.80333624)
X2 <-c(-0.649703042,4.493575454,5.983626582,0.461643678,5.627072867,1.627813163,6.091999065,12.66643753,11.05267876,12.08547826,12.66915342,12.45544232,10.42762015,12.74102875,10.41128824,18.22320224,19.20548891,13.29104572,19.60461483,21.64448102,19.23488657,23.60684303,20.9627053,19.1454012,22.62386547,25.57150781,26.81270623,27.04142292,25.49155051,33.21011217,28.17270435,33.94906067,28.21355524,37.37001122,32.52217023,32.89338169,33.17757392,37.9961197,42.21963883,41.50432474,43.53122471,43.01734653,43.56971181,43.63719754,46.8202558,45.42813934,47.10403215,43.28874187,53.88970072,54.57135611)
X3 <- c(-45.80872048,-8.952935398,-1.290361542,-32.9463509,44.67597214,-13.32017372,50.94585171,11.85265613,-0.561481231,7.558929224,0.056794708,26.20078517,-1.482391723,53.31512712,27.00599607,48.90952857,-27.02091851,-18.87992427,-24.22718792,-4.393970993,68.05196374,59.12177835,56.37379808,5.06963622,68.87348076,17.0229676,-3.422655184,18.47155988,58.55552171,16.78902121,68.06196792,-14.26081439,-13.42009307,73.0689982,72.11210165,20.3252936,69.81355273,53.04143587,39.29810837,35.90801218,55.84833646,2.791433035,84.24168066,10.43529196,60.9668567,25.33556029,74.39033474,75.36707129,36.62491456,52.10444109)
 mdata <- data.frame(cbind(Y,X1,X2,X3))

YとX1,X2,X3は相関しています。説明変数どうしをみると、X1とX2はかなり相関していますが、X1とX3、X2とX3は無相関というデータえです。

plot(mdata)で作図

3Dグラフを描く

rglパッケージを使います。インストールされていない場合はインストールし、すでにインストールしてある場合は、library(rgl)を実行します。3Dグラフを描くパッケージはいくつかありますが、rglパッケージは画面上で立体グラフを動かせることが特徴です。

install.packages("rgl")
library(rgl)

3Dグラフは3dplotを使えば描けます。別ウインドウでグラフがでてきます。

3dplot(x軸データ、y軸データ、z軸データ)

 plot3d(mdata$X1,mdata$X2,mdata$Y)

主要なオプションは以下です。

点を大きくする

  • type=”p” 点
  • type=”s” 球 
  • type=”l” 直線

  • col=”green”
  • col=”red”
  • col=”blue”

plot3d(mdata$X1,mdata$X2,mdata$Y,type="p",col="blue") 

最小二乗法による平面

最小二乗法よる平面を描くには、planes3dを使います。plot3dで描いた3Dグラフに平面を追加します。

planes3d(a,b,c,d)

で平面が追加されます。$y=ax+by+cz+d$に対応しています。最小二乗法の推定で作られた平面は、推定された係数を使うと作成できます。重回帰分析は以下の形です。

$Y= \alpha+\beta_1 X1 + \beta_2 X2 +e_t$

x軸をX1、y軸をX2、z軸をYに対応させて平面を描くとすると、

$planes3d(\beta_2,\beta_1,-1,\alpha)$

として描けばよいということです。以下のプログラムで描けます。colで平面の色、alphaで平面の濃さを決めます。0が最も薄く、1が最も濃いです。

plane3dは平面を追加するコマンドなので、まずplotd3dでグラフを描いてから使ってください。

plot3d(mdata$X1,mdata$X2,mdata$Y,type="p",col="blue")

fit <- lm(Y ~ X1+X2 , mdata)
coefs <- coef(fit)
planes3d(coefs[2], coefs[3], -1, coefs[1], col="blue", alpha=0.5)

まとめ

  • rglパッケージによる3Dグラフの描き方を説明しました。
  • この画面では動かせませんが、実際には360度いろいろな角度からグラフをみることができます。
  • plot3d(x軸データ、y軸データ、z軸データ)で描けます。

グラフについては以下の2つの記事があります。

【R】グラフの描き方(1)|plot関数で散布図が描けます 変数が1つの場合 グラフにはいろいろな描き方があります。plot関数について、いろいろと試してみます。さまざまな散布図が描けま...
【R】グラフの描き方(2)|matplotは折れ線グラフが得意、さまざまなオプションも詳しく紹介 この記事では、グラフの描き方を説明します。複数の折れ線グラフは、matplotで書くことができます。 経済統計の使い方では、...

COMMENT

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

CAPTCHA