If you look at the CR.rsm object with str() you will see that it inherits from the lm class of objects. Therefore the predict.lm method will be available and if you further look at:

?predict.lm

You see that all you need to do is give it a dataframe that has the variables that match up with you model terms so this is a minimal example:

> predict(CR.rsm, newdata=data.frame(x1=84,x2=171))
       1
80.58806

To get the entire range that you desire (and which the plotting function for GSM already produced) you need:

?expand.grid

z <- predict(CR.rsm, expand.grid(x1=seq(86.88,len=21), x2=seq(175,179,len=21)))

# or
data.frame(expand.grid(x1=seq(86.88,len=21), x2=seq(175,179,len=21)),
z = predict(CR.rsm, expand.grid(x1=seq(86.88,len=21), x2=seq(175,179,len=21))
                       )
         )

Since you are narrowing the range for your prediction, it's possible that you already realize that the original example plot was not just interpolating but also extrapolating considerably beyond the available data in places. That dataset only had 14 observations and rather sketchy or non-existent in the extremal regions of the x1 cross x2 space.

I greatly value the ability of the Hmisc/Design packages ability to restrict estimation and plotting to only those regions where the data will support estimates. I tried applying the perimeter function in Harrell's packages to your example, but the plot.Design function recognized that I was giving it a construct from a different package and refused to play.

At any rate, HTH.
--
David Winsemius
Heritage Labs

On Dec 21, 2008, at 7:33 AM, pinwheels wrote:


Hello,everybody!

I am a beginner of R.

And I want to ask a question. If anybody would help me, thank you very much
ahead.
I want to plot something like a response surface, and I find the "rsm"
package.

Some commands are like this:

#code head
library(rsm)
CR = coded.data(ChemReact, x1 ~ Time, x2 ~ Temp)
CR.rsm = rsm(Yield ~ SO(x1,x2), data = CR)
summary(CR.rsm)
contour(CR.rsm,x1~x2)
#code end

What if I want the data interpolated, what should I do?
For example:
There is a data frame like:

xa1<-seq(86,88,len=21)
xa2<-seq(175,179,len=41)
z<-  ... # referring site(xa1,xa2) from the contour plotted above

or

xa1      xa2        z
86        175      ???
86.1      175      ???
...         ...        ...
86.7       177.3   ???
...        ....         ...
88        179       ???

or  something alike.

How could I get the z value(???) from the CR.rsm or the plotted contour?
--
View this message in context: 
http://www.nabble.com/How-can-I-get-the-interpolated-data--tp21114660p21114660.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to