2016-08-16 2 views
0

두 개의 3D 플롯이 있습니다. 하나는 라이브러리 p3d (왼쪽)을 사용하여 적합한 값으로 만들어졌습니다. 두 번째에서는 predict을 사용한 다음 akima 패키지의 interp 명령을 사용하고 persp (오른쪽)을 사용하여 플로팅했습니다. 이미지는 동일한 각도를 보이지 않지만, 그것이 평면이고 다른 하나는 곡선임을 보여주는 가장 좋은 방법입니다.적합 및 예상 값을 사용한 3D 플롯 간 차이점

enter image description here

내가 장착 값을 보여주는 그래프 곡선과가없는 예측 값을 사용하여 다른 하나를 가지고 이유를 알고 싶습니다

.

첫 번째 그래프 코드 :

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 명령을 사용하고 있습니다 (기본적으로 누락 된 데이터 갭을 채 웁니다).

또 다른 차이점은 예상 값 플롯이 원래 데이터 세트의 최대 값과 최소값 범위의 새로운 데이터를 사용한다는 것입니다. 적합 값의 경우 관찰 당 하나의 값이 있습니다.

저는 상사에게이 사실을 설명하는 데 문제가 있습니다. 이유가 충분하지 않다고 생각합니다. 두 번째 그래프에서 커브가 누락 된 이유는 무엇입니까?

답변

1

당신은 유사한 곡선을 얻을 것이다

y2temp <- ytemp^2 

y2temp <- seq(min(y2),max(y2),length.out=i) 

를 교체합니다.

enter image description here

:

시뮬레이션 데이터를 사용하여