Rのサンプル airquality を使用
R
dat <- na.omit(airquality)
head(dat)

R
fit <- lm(Solar.R ~ Wind+Temp, data=dat)
summary(fit)

下記の係数の推定値を求めてみましょう
R
summary(fit)$coef[1:3]

\(\bf b=
\left(
\begin{array}{ccc}
-49.8135134 \\
0.6478038 \\
2.9331301
\end{array}
\right)
\)
データフレームを行列に変換して変数行列 \(\bf X\) を作成
(切片用の列を追加するのを忘れずに)
R
dat$b <- c(rep(1, dim(dat)[1]))
dat2 <- dat[ ,c("b", "Wind", "Temp")]
mat <- as.matrix(dat2)
\(\bf b = (X^TX)^{-1}X^Ty\)より
R
solve(
t(mat) %*% mat) %*%
t(mat) %*%
dat$Solar.R

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください