14

私が求めていることを明確にするために、簡単な例を作成しました。ステップ 1 は、いくつかのデータを作成することです。

gender <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2),labels = c("male", "female"))
numberofdrugs <- rpois(84, 50) + 1
geneticvalue <- rpois(84,75)
death <- rpois(42,50) + 15
y <- data.frame(death, numberofdrugs, geneticvalue, gender)

したがって、これらはいくつかのランダムな日付が 1 つにマージされていdata.frameます。したがって、これらの日付から、男性と女性を区別できるクラウドをプロットし、2 つの単純な回帰 (女性用と男性用) を追加したいと思います。それで始めたのですが、なりたいところまでたどり着けませんでした。私がこれまでに行ったことを以下に示します。

require(lattice)
cloud(y$death~y$numberofdrugs*geneticvalue)

基本形式の雲図

xmale <- subset(y, gender=="male")
xfemale <- subset(y, gender=="female")

death.lm.male <- lm(death~numberofdrugs+geneticvalue, data=xmale)
death.lm.female <- lm(death~numberofdrugs+geneticvalue, data=xfemale)

クラウド コマンドを使用するときに、男性または女性に異なるポイントを作成するにはどうすればよいですか (たとえば、青い十字だけでなく、青とピンクのポイントなど)、2 つの推定モデルをクラウド グラフに追加するにはどうすればよいですか?

どんな考えでも大歓迎です!アイデアをありがとう!

4

2 に答える 2

18

「クラウド コマンドを使用するときに、男性と女性で異なるポイントを作成するにはどうすればよいですか (たとえば、青い十字だけではなく、青とピンクのポイントを作成するなど)」という質問の前半に対する回答です。

 cloud( death ~ numberofdrugs*geneticvalue , groups=gender, data=y )

グループ化されたクラウド プロット

これに対するメタ回答には、3D 以外の視覚化が含まれる場合があります。おそらく、格子または ggplot2 を使用してデータを小さな倍数に分割できますか? 回帰結果を追加する方が理解しやすく、簡単になる可能性があります。

splom( ~ data.frame( death, numberofdrugs, geneticvalue ), groups=gender, data=y )

スプロム

デフォルトの splom パネル関数は panel.pairs であり、これを変更して回帰直線を追加しても、それほど大きな問題は発生しません。

ggplot2 は、プロット マトリックス内で簡単に回帰を行いますが、色を機能させることができません。

pm <- plotmatrix( y[ , 1:3], mapping = aes(color=death) )
pm + geom_smooth(method="lm")

プロットマトリックス

最後に、本当に回帰平面で雲図を作成したい場合は、scatterplot3d パッケージを使用してそれを行う方法を次に示します。データを変更して、もう少し興味深い構造になっていることに注意してください。

numberofdrugs <- rpois( 84, 50 ) + 1
geneticvalue <- numberofdrugs + rpois( 84, 75 )
death <- geneticvalue + rpois( 42, 50 ) + 15
y <- data.frame( death, numberofdrugs, geneticvalue, gender )

library(scatterplot3d) 
pts <- as.numeric( as.factor(y$gender) ) + 4
s <-scatterplot3d( y$death, y$numberofdrugs, y$geneticvalue, pch=pts, type="p", highlight.3d=TRUE )
fit <- lm( y$death ~ y$numberofdrugs + y$geneticvalue )
s$plane3d(fit)

回帰平面を使用した scatterplot3d

于 2011-07-21T11:33:34.850 に答える
17

rgl パッケージ (openGL 実装)を使用したcar パッケージには、適切な視覚化があります。

require(car)
require(rgl)
scatter3d(death~numberofdrugs+geneticvalue, groups=y$gender, data=y, parallel=FALSE)

カーパッケージとの3Dフィット

于 2011-07-25T09:38:02.393 に答える