0
$\begingroup$

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])
$\endgroup$

1 Answer 1

2
$\begingroup$

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.

$\endgroup$
2
  • $\begingroup$ That returns Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 'a' and 'b' must be finite. $\endgroup$ Commented Mar 30, 2021 at 17:15
  • 1
    $\begingroup$ 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. $\endgroup$ Commented Mar 30, 2021 at 17:25

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.