2013-07-04 55 views
0

我正在使用多重線性迴歸。如何在R中創建3D曲面圖?

我有z輸出,這是x * y交互的結果。

我想創建這些數據的曲面圖,但沒有任何運氣。 我已經試過了這個突擊隊的線框和persp,但是好像我還沒有能夠設計我的突擊隊員。

我已經創建了一個美麗的scatterplot3d,但我怎樣才能創建相同數據的曲面圖?

+0

歡迎進入SO。即使你得到一個答案,請閱讀這個:[如何使一個偉大的R可重現的例子?](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example ) – agstudy

+0

[Plot Regression Surface](http://stackoverflow.com/questions/7863906/plot-regression-surface)的可能副本,也搜索SO for'scatter3d',它提供了使用點和曲面的rgl圖形的可能性,而不是由'scatterplot3d'提供的靜態版本 –

回答

4

我假設你知道你在做什麼,當你說你已經在線性迴歸中擬合了3D曲面。 perspwireframe預期是x和y值的網格,以及每個網格點的預測z高度。你可以使用expand.grid來產生這個。這是一個指示性的例子。

preddf <- expand.grid(x=seq(xmin, xmax, len=51), 
         y=seq(ymin, ymax, len=51)) 

preddf$z <- predict(model, preddf) 

persp(preddf) 

替換xminxmaxyminymax和與預測器的範圍內,並且51網格的所需尺寸/密度。

3

expand.grid的另一種替代方法是使用outer,它速度更快。

使用@HongOoi數據:

z <- outer(x,y, function(x,y) 
    predict(mod,data.frame(x=x,y=y))) 
persp(x,y,z)