假设您有这样的数据:

Y <- rnorm(100)
x <- rnorm(100)
z <- rnorm(100)

data <- data.frame(Y, x, z)

为此,我们可以拟合线性模型:

enter image description here

fit <- lm(Y ~ x + z, data)

文章指出,回归估计是通过求解一组正态方程来进行的:

enter image description here

或矩阵形式:

enter image description here

有了lm个对象,我如何提取dS矩阵呢?

推荐答案

我们可以从fm得到XY,如图所示.然后用crossprod计算XtXXtY,然后用solve计算系数.

fm <- lm(mpg ~ cyl + carb, mtcars)
 
X <- model.matrix(fm)

Y <- model.response(model.frame(fm))
# or
Y <- fitted(fm) + resid(fm)

XtX <- crossprod(X); XtX
##             (Intercept)  cyl carb
## (Intercept)          32  198   90
## cyl                 198 1324  604
## carb                 90  604  334

XtY <- crossprod(X,Y); XtY
##               [,1]
## (Intercept)  642.9
## cyl         3693.6
## carb        1641.9

c(solve(XtX, XtY))
## [1] 37.812739 -2.625023 -0.526146

coef(fm)
## (Intercept)         cyl        carb 
##   37.812739   -2.625023   -0.526146 

R相关问答推荐

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

r—绘制相交曲线

使用gcuminc,如何使用逗号格式化风险表?

ggplot的轴标签保存在officer中时被剪切

lightgbm发动机在tidymmodels中的L1正则化""

如何在modelsummary中重命名统计数据?

在连续尺度上转置标签[瀑布图,R]

如何优化向量的以下条件赋值?

如何调整曲线图中的y轴标签?

多个过滤器内的一个盒子在仪表板Quarto

Select 季度月值

将全局环境变量的名称分配给列表中的所有元素

在散点图中使用geom_point放置线图例

按组使用dummy r获取高于标准的行的平均值

替换在以前工作的代码中有x行&q;错误(geom_sf/gganimate/dow_mark)

在shiny 表格中输入的文本在第一次后未更新

如何创建一个由一个连续变量和一个因素变量组成的复杂方框图?

希望解析和复制R中特定模式的数据

如何捕获这个shiny 的、可扩展的react 性用户输入矩阵作为另一个react 性对象,以便进一步操作?

我怎么才能把一盘棋变成一盘棋呢?