두 개의 3D 플롯이 있습니다. 하나는 라이브러리 p3d
(왼쪽)을 사용하여 적합한 값으로 만들어졌습니다. 두 번째에서는 predict
을 사용한 다음 akima
패키지의 interp
명령을 사용하고 persp
(오른쪽)을 사용하여 플로팅했습니다. 이미지는 동일한 각도를 보이지 않지만, 그것이 평면이고 다른 하나는 곡선임을 보여주는 가장 좋은 방법입니다.적합 및 예상 값을 사용한 3D 플롯 간 차이점
.
첫 번째 그래프 코드 :
는library(p3d)
Init3d(family="serif", cex = 1)
Plot3d(TCL ~ reLDM+yr, nest6)
Axes3d()
fit = lm(TCL ~ reLDM+yr+I(yr^2)+I(reLDM*yr)+I(reLDM*yr^2), nest6)
Fit3d(fit)
두 번째 그래프 코드 : 그것은 가능하지 않았다, 그래서 당신은 그것을 큰,이 링크에서 데이터 집합을 찾을 수
library(akima)
x <- nest6$reLDM
y <- nest6$yr
y2 <- y^2
z <- nest6$TCL
m <- lm(z ~ x*y+y2+x:y2)
i <- 25
xtemp <- seq(min(x),max(x),length.out=i)
xrange <- rep(xtemp,times=i)
ytemp <- seq(min(y),max(y),length.out=i)
yrange <- rep(ytemp,each=i)
y2temp <- seq(min(y2),max(y2),length.out=i)
y2range <- rep(y2temp,each=i)
newdata <- data.frame(x=xrange,y=yrange,y2=y2range)
zhat <- predict(m,newdata=newdata)
xyz <- interp(xrange,yrange,zhat)
jet.colors <- colorRampPalette(c("yellow", "red", "blue"))
nbcol <- 500
color <- jet.colors(nbcol)
nrz <- length(xyz[[1]])
ncz <- length(xyz[[2]])
z<-xyz[[3]]
zfacet <- z[-1, -1] + z[-1, -ncz] + z[-nrz, -1] + z[-nrz, -ncz]
facetcol <- cut(zfacet, nbcol)
quartz()
persp(xyz,xlab="x",ylab="y",zlab="z", cex.lab = 1,cex.axis = 1,
theta = 35, phi = 50,col=color[facetcol], border="grey40", ticktype = "detailed", zlim=c(1,7))
가 여기에 게시하기 : https://www.dropbox.com/s/czdascoq02alm46/TCL16_26.csv?dl=0
내 모델은 lm()을 사용하여 완성되었습니다. 간단한 선형 회귀 모델에서 피팅 함수와 예측 함수 사이에 차이가 없다는 것을 포스트에서 읽었습니다. 그러나 akima에서 두 개의 알려진 데이터 포인트 사이의 값을 추정한다고 이해하는 interp 명령을 사용하고 있습니다 (기본적으로 누락 된 데이터 갭을 채 웁니다).
또 다른 차이점은 예상 값 플롯이 원래 데이터 세트의 최대 값과 최소값 범위의 새로운 데이터를 사용한다는 것입니다. 적합 값의 경우 관찰 당 하나의 값이 있습니다.
저는 상사에게이 사실을 설명하는 데 문제가 있습니다. 이유가 충분하지 않다고 생각합니다. 두 번째 그래프에서 커브가 누락 된 이유는 무엇입니까?