データの回帰平面をプロットしたい:
構造(list(l = c(96.4155、76.803、71.5615、68.193、65.6975、74.627、67.82、64.26、62.06、60.35、68.284、63.7、61.04、59.05、57.569、57.569、57.569) 58.27, 56.42, 54.91, 53.65), a = c(-0.8375, -20.47, -22.1875, -22.6125, -22.5845, -2.2415, -12.91, -16.16, -17.9, -18.77, -2.4, -10.28, - 13.64、-15.33、-16.37、-2.4495、-8.66、-11.74、-13.46、-14.55、-2.4645、-7.58、-10.38、-12.06、-13.09)、b = c(1.437、-24.5915、-29.3275) , -31.892, -33.524, -5.151, -15.22, -19.61, -22.65, -24.8, -6.239, -13.24, -17.11, -19.64, -21.55, -6.7845, -12.18, -15.45, -17.68, - 19.47, -7.124, -11.53, -14.38, -16.41, -17.89)), .Names = c("L", "a", "b"), row.names = c(NA, 25L), クラス = "data.frame")
hereの例を試しました。そして、それが私の試みです:
L<-X[1:25,2]
a<-X[1:25,3]
b<-X[1:25,4]
mod2 = lm(L~a*b)
open3d()
plot3d(x=a, y=b, z=L, type="s", col="red", size=1)
grd <- expand.grid(x1=a, x2=b )
grd$pred <-predict(mod2, newdata=grd)
persp3d(x=unique(grd[,1]), y=unique(grd[,2]),
z=matrix(grd[,3]), add=TRUE, alpha=0.5)
3d プロットは問題ないように見えますが、グリッドでは次のエラーが発生します。
Error in persp3d.default(x = grd[, 1], y = grd[, 2], z = matrix(grd[, :
increasing 'x' and 'y' values expected
私のコードのどこに問題がありますか?私の問題を解決する別の方法はありますか? 助けてくれてありがとう!
アップデート:
plane3d() で試してみましたが、次のエラーが発生しました:
Error in segments(x, z1, x + y.max * yx.f, z2 + yz.f * y.max, lty = ltya, :
cannot mix zero-length and non-zero-length coordinates
しかし、他の解決策を探したところ、私の意図が間違っていたことがわかりました。このようなものを探しています...
...しかし、それを達成する方法、またはRに関する私の実際の知識でさえ可能かどうかはわかりません。誰か何か考えはありますか?
アップデート2:
私はこのコードで scatter3d() 関数を試しました:
scatter3d(a,b,L,fit="smooth")
しかし、このエラーが発生しました:
Error in smooth.construct.tp.smooth.spec(object, dk$data, dk$knots) :
A term has fewer unique covariate combinations than specified maximum degrees of freedom
自由度を調整するには choose.k を使用する必要があることは既にわかりましたが、gam 関数については常に説明されており、scatter3d 関数でそれを使用する方法がわかりません。何か案が?