[R] Intercept in model formulae.

Setzer.Woodrow@epamail.epa.gov Setzer.Woodrow at epamail.epa.gov
Wed Sep 4 16:51:05 CEST 2002


try this:

ind1 <- as.numeric(x > 10) # to calculate the intercept for this part of
the line
temp <- lm(y ~ ind1 + x:(x <= 10) - 1)

> temp

Call:
lm(formula = y ~ ind1 + x:(x <= 10) - 1)

Coefficients:
          ind1  x:x <= 10FALSE   x:x <= 10TRUE
           5.0             0.5             1.0

In model formulae, "*" indicates that the model should include both the
main effects terms and the interactions.  The logical value (x <= 10) is
coerced to a factor (at least effectively).

R. Woodrow Setzer, Jr.                                            Phone:
(919) 541-0128
Experimental Toxicology Division                       Fax:  (919)
541-5394
Pharmacokinetics Branch
NHEERL MD-74; US EPA; RTP, NC 27711


|---------+------------------------------>
|         |           David Orme         |
|         |           <d.orme at ic.ac.uk>  |
|         |           Sent by:           |
|         |           owner-r-help at stat.m|
|         |           ath.ethz.ch        |
|         |                              |
|         |                              |
|         |           09/04/02 05:54 AM  |
|         |                              |
|---------+------------------------------>
  >---------------------------------------------------------------------------------------------------------------|
  |                                                                                                               |
  |       To:       r-help at stat.math.ethz.ch                                                                      |
  |       cc:                                                                                                     |
  |       Subject:  [R] Intercept in model formulae.                                                              |
  >---------------------------------------------------------------------------------------------------------------|




Hi,

I'm trying to create a linear model for a dataset that has a breakpoint
e.g.

# dummy dataset
x <- 1:20
y <- c(1:10,seq(10.5,15,0.5))
plot(x,y)

I've modelled this using the following formula:

temp <- lm(y ~ x*(x<=10)+x*(x>10)) # where 10 is the breakpoint

I want to be able to omit the intercept (i.e. force the line through
zero) from the first of these segments (x<=10) so that I'm only
estimating one intercept and two slopes. I've tried including -1 in
the formula, folllowing the lm(y ~ x -1) syntax  to omit the
intercept from lm(y ~x) but the linear model still returns an
estimate of the intercept of the first segment. I can't work out what
the syntax for the formula should be. Is it possible in one step or
do I have to fit the two lines as separate models on subsets of the
data?

Any suggestions?

Thanks in advance,

David Orme


>  R.version
          _
platform ppc-apple-macos
arch     ppc
os       MacOS
system   ppc, MacOS
status
major    1
minor    5.0
year     2002
month    04
day      29
language R
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
-.-.-.-
r-help mailing list -- Read
http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.
_._._._




-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list