[英]How to plot a multivariate function with known coefficients using -scatter3d-
我正在嘗試使用R來繪制采用以下形式的函數:
$$ z = \\ beta_ {0} + \\ beta_ {1} x + \\ beta_ {2} x ^ {2} + \\ beta_ {3} y + \\ beta_ {4} y ^ {2} + \\ beta_ {5} x * y $$
我在其中具有所有$ \\ beta $的數值。 我似乎找不到使用-scatter3d-的函數形式的示例,並且我沒有在R中運行回歸,也沒有繪制z,x和y的序列。
我目前有
scatter3D(df$z=0.0279x-0.0000188x_sq+0.0422y-0.00708y_sq-0.000181x_y, df)
甚至沒有添加任何其他內容,因為我收到一條錯誤消息:
Error: unexpected '=' in "scatter3D(df$z="
因此,我假設這是一個語法問題,但似乎找不到任何相關信息。
有兩件事:
您將無法針對僅取決於2個軸的單個變量繪制4個連續變量。
公式遵循y ~ x + z
的模式,因此將=
更改為~
。
由於您使用..., df
部分指定了數據,因此不需要在任何變量前使用df$
。
公式不接受系數,但是您可以像這樣在原始數據框中輕松更改它們:
df<-data.frame(x=rnorm(100,5,1),
y=rnorm(100,50,1),
z=rnorm(100,500,1))
df$x_sq<-0.000188*(df$x)^2
df$y_sq<-0.0708*(df$y)^2
df$y2<-0.0422*(df$y)
df$x2<-0.0279*(df$x)
scatter3d(z~x2+y2,df)
也是https://meta.stackexchange.com/questions/30559/latex-on-stack-overflow
如果您想要一個表面而不是一個散點,則可以在其中修改系數:
x <- seq(-10, 10, length.out = 50)
y <- x
zf<-function(x,y){1*x^2+1*x-0.1*y^2-0.1*y+0.1*y*1*x}
z <- outer(x, y, zf)
surface3d(x,y,z)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.