0

I'm working on an unassessed homework problem from unpublished course notes of a statistics module from a second year university mathematics course.

I'm trying to plot a 2-parameter full linear model and a 1-parameter reduced linear model for the same data set. I can't figure out how to plot the 1-parameter model; all attempts so far have either given errors or a non-constant slope.

xs <- c(0,1,2)
ys <- c(0,1,1)
Data <- data.frame(x = xs, y = ys)
mf <- lm(y ~ x, data = Data) # model_full
mr <- lm(y = mean(y), data = Data) # model_reduced; this is the bit I can't get to work
attach(Data)
plot(x, y, xlab="x", ylab="y")
abline(mf$coefficients[1], mf$coefficients[2])
abline(mr$coefficients[1], mr$coefficients[2])
mjc
  • 103
  • 4

1 Answers1

1

To use only a single parameter, which will be a constant, you have to specify the lm formula as follows: y ~ 1. R will then fit the model, where the coefficient for this constant will be equal to the mean of y, see also this stats stackexchange answer.

Oxbowerce
  • 7,077
  • 2
  • 8
  • 22
  • That returns `Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 'a' and 'b' must be finite`. – mjc Mar 30 '21 at 17:15
  • 1
    That is simply caused by the fact that there is no second coefficient (`mr$coefficients[2]`). To draw the correct line you have to use `abline(mr$coefficients[1], 0)` since the first value (`a`) is the intercept, which is equal to the coefficient of the model, the second value (`b`) is equal to zero since no second parameter is fit. – Oxbowerce Mar 30 '21 at 17:25