This is a simple demonstration of the meaning of least squares in univariate linear regression.
least.squares(
x,
y,
n = 15,
ani.type = c("slope", "intercept"),
a,
b,
a.range,
b.range,
ab.col = c("gray", "black"),
est.pch = 19,
v.col = "red",
v.lty = 2,
rss.pch = 19,
rss.type = "o",
mfrow = c(1, 2),
...
)
a numeric vector: the independent variable
a numeric vector: the dependent variable
the sample size: when x and y are missing, we use simulated values
of y (x = 1:n
and y = a + b * x + rnorm(n)
)
'slope'
: the slope is changing with the intercept
fixed; 'intercept'
: intercept changing and slope fixed
the fixed intercept and slope; depending on ani.type
, we
only need to specify one of them; e.g. when ani.type == 'slope'
, we
need to specify the value of a
a vector of length 2 to define the range of the intercept and the slope; only one of them need to be specified; see above
the colors of two lines: the real regression line and the moving line with either intercept or slope changing
the point character of the 'estimated' values given x
the color and line type of the vetical lines which demonstrate the residuals
the point character and plot type of the residual plot
defines the layout of the graph; see par
other parameters passed to plot
to define the
appearance of the scatterplot
The value returned depends on the animation type.
If it is a slope animation, the value will be a list containing
the estimates of the intercept and slope with
lm
the estimate of the slope in the animation
Note the estimate will not be precise generally.
With either the intercept or the slope changing, the lines will be moving in the graph and corresponding residuals will be plotted. We can finally see the best estimate of the intercept and the slope from the residual plot.
Examples at https://yihui.org/animation/example/least-squares/