求解正规方程会给出与使用“lm”不同的系数?

2023-12-06

我想使用以下方法计算一个简单的回归lm和普通矩阵代数。然而,我从矩阵代数获得的回归系数只有使用矩阵代数获得的回归系数的一半lm我不知道为什么。

这是代码

boot_example <- data.frame(
  x1 = c(1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L),
  x2 = c(0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L),
  x3 = c(1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L),
  x4 = c(0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L),
  x5 = c(1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L),
  x6 = c(0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L),
  preference_rating = c(9L, 7L, 5L, 6L, 5L, 6L, 5L, 7L, 6L)
  )
dummy_regression <- lm("preference_rating ~ x1+x2+x3+x4+x5+x6", data = boot_example)
dummy_regression

Call:
lm(formula = "preference_rating ~ x1+x2+x3+x4+x5+x6", data = boot_example)

Coefficients:
(Intercept)           x1           x2           x3           x4           x5           x6  
     4.2222       1.0000      -0.3333       1.0000       0.6667       2.3333       1.3333 

###The same by matrix algebra
X <- matrix(c(
c(1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L), #upper var
c(0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L), #upper var
c(1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L), #country var
c(0L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 0L), #country var
c(1L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L), #price var
c(0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 1L) #price var
), 
nrow = 9, ncol=6)

Y <- c(9L, 7L, 5L, 6L, 5L, 6L, 5L, 7L, 6L)

#Using standardized (mean=0, std=1) "z" -transformation Z = (X-mean(X))/sd(X) for all predictors
X_std <- apply(X, MARGIN = 2, FUN = function(x){(x-mean(x))/sd(x)})

##If constant shall be computed as well, uncomment next line 
#X_std <- cbind(c(rep(1,9)),X_std)

#using matrix algebra formula
solve(t(X_std) %*% X_std) %*% (t(X_std) %*% Y)

           [,1]
[1,]  0.5000000
[2,] -0.1666667
[3,]  0.5000000
[4,]  0.3333333
[5,]  1.1666667
[6,]  0.6666667

有人看到我的矩阵计算中的错误吗?

先感谢您!


lm没有进行标准化。如果你想通过以下方式获得相同的结果lm, 你需要:

X1 <- cbind(1, X)  ## include intercept

solve(crossprod(X1), crossprod(X1,Y))

#           [,1]
#[1,]  4.2222222
#[2,]  1.0000000
#[3,] -0.3333333
#[4,]  1.0000000
#[5,]  0.6666667
#[6,]  2.3333333
#[7,]  1.3333333

我不想重复我们应该使用crossprod。参见“后续”部分岭回归glmnet给出的系数与我通过“教科书定义”计算的系数不同?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

求解正规方程会给出与使用“lm”不同的系数? 的相关文章

  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • 使用 pracma::findpeaks 识别持续峰值

    我的语法有问题peakpat内的选项findpeaks内的函数pramcaR 包 v 2 1 1 我使用的是 R 3 4 3 x64 Windows 我希望该函数能够识别可能有两个重复值的峰值 并且我相信该选项peakpat这就是我能做到的
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • 为什么 dplyr filter() 不能在函数内工作(即使用变量作为列名)?

    使用 dplyr 函数对数据进行过滤 分组和变异的函数 基本管道序列在函数之外工作得很好 这就是我使用真实列名称的地方 将其放入一个函数中 其中列名称是一个变量 并且某些函数可以工作 但有些函数则不能 尤其是 dplyr filter 例如
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • 以引用透明的方式从函数的省略号参数中提取符号

    事情又发生了 我正要按下发布答案按钮的问题被删除了 我正在寻找一种方法来从函数的省略号参数中提取绑定到符号的对象的值以及符号 也就是说 我试图以引用透明的方式从省略号中提取符号 我尝试过使用替代品和lazy dots 但没有成功 funct
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • 删除极坐标图边缘的多余空间和圆环

    我有一个极坐标图ggplot2我已经非常接近完成 相当简单的情节 我已经能够在删除矩形边框方面获得帮助 但我不需要删除最后一个范围轮廓与带有方位角标签的绘图周围的环之间的额外空间 我希望该图的边界为 15 000 而不是 15 214 我编
  • 任意列中包含字符串的子集行

    我有一个如下所示的数据集 Col1 Col2 Col3 abckel NA 7 jdmelw njabc NA 8 jdken jdne 如何对数据集进行子集化 使其仅保留包含字符串 abc 的行 最终预期输出 Col1 Col2 Col3
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大

随机推荐

  • 哪些类型可以安全地与 == 进行比较?

    当比较相等时可以使用 例如 int a 3 int b 4 如果检查相等性 您应该使用 if a b 如果使用浮点数 情况会改变吗 对于整数值来说非常好 你应该not比较浮点数是否相等 使用容忍方法 if fabs a b lt toler
  • RestTemplate--> Exchange 生成:422 无法处理的实体

    我在用Spring Boot 2 0 5 RELEASE并试图使POST请求者Response Template Exchange 下面是我的代码 我还需要使用一些自定义键传递标头 RestTemplate restTemplate new
  • 如何在 C# 中使用 PHP CLI

    我来自中国 所以我的英语可能很差 我会尽力让你理解我的问题 我想在我的 C 项目中使用 PHP CLI 我尝试过这样的代码 Process p new Process p StartInfo FileName cmd exe p Start
  • 应用程序引擎上的云存储和安全下载策略。 GCS acl 或 blobstore

    我的应用程序引擎应用程序创建云存储文件 这些文件将由第三方下载 这些文件包含个人医疗信息 首选下载方式是什么 使用带有用户 READER acl 的直接 GCS 下载链接 或者在应用程序引擎应用程序中使用 blob 存储下载处理程序 两种解
  • 如何确保 /EDITANDCONTINUE 指令不被忽略

    当我尝试编辑并继续时收到此消息VSC15 file cpp in LIB DLL was not linked with Edit and Continue enabled Ensure that INCREMENTAL linking i
  • 我的新版 iOS 应用程序仅在从应用程序商店加载时才会崩溃

    我的应用程序只有在将其加载到应用程序商店后才会崩溃 一些背景知识 我已经在多个物理设备上通过试飞测试了该应用程序 该应用程序不会在所有设备上崩溃 首先在设备上安装可以正常工作 从未安装过该应用程序的设备 在之前安装过该应用程序的设备上安装会
  • 更改时区之间的日期和时间

    我一直在尝试在给定日期和时间的时区之间进行转换 代码胜于雄辩 所以这里是 Returns the date and time in the new timezone param string datetime the date and ti
  • 如何使用 hashmap( HSET ) 将 Json 存储在 Redis 中

    我有一个关于 Redis 中的 HSET 的问题 据我所知 redis是一个键值数据库 这意味着每件事都存储为键值 例如我们没有表 我想在 redis 中保存一些东西 所以我决定使用 Hashmap 由于 HMSET 已被弃用 我们应该使用
  • 将向量传递给函数

    我正在努力让这段代码正常工作 由于某种原因 该算法没有被调用或者没有以正确的方式实现 如果我运行编译得很好的代码 我会得到相同的未排序输入 我尝试了一些传递向量的方法 但我不确定问题在哪里 include
  • Power BI:如何在 Power Query 编辑器中使用 Python 处理多个表?

    如何使用 Python 脚本创建一个新表 并使用两个现有表作为输入 例如通过执行left join using 熊猫合并 一些细节 Using Home gt Edit queries你可以在下面使用PythonTransform gt R
  • PhoneGap Mobile Rails 身份验证(设计?从头开始身份验证?)

    我有一个带有 Rails 后端的 PhoneGap 应用程序 我试图找出使用 json 对移动应用程序中的用户进行身份验证的最佳方法 我目前正在使用设备 但我不必用它 修改设备以在 Phonegap 中使用移动应用程序的最简单方法是什么 我
  • 将鼠标悬停在 JButton 上并显示一条消息

    我想将鼠标悬停在 GUI 地图 上的多个 JButton 上并显示该位置的名称 例如曼彻斯特和伦敦 我的代码适用于一个按钮 但它不适用于多个按钮并打印最后一个按钮out所有按钮位置的消息 因为我有 10 个按钮 If button1是 tr
  • 无法注册 Word.ContentControl 事件

    我在使用 Word ContentControl 事件时遇到困难 我在当前选择上注册一个的代码是 Word run function context console log Creating cc let range context doc
  • 在谷歌图表上仅显示 7 天的数据

    我有一个谷歌图表 我只想在图表上向用户显示 7 天的数据 并且他们应该能够看到之前 7 天的数据 例如 如果我有 1 7 2017 到 15 7 2017 的数据 最初图表应仅显示 8 7 2017 至 15 7 2017 但如果用户愿意
  • QAbstractSocket::UnknownSocketError

    可能是什么原因造成的QAbstractSocket UnknownSocketError使用时QTcpSocket CODE 我使用以下代码收到此错误代码 this gt connect socket SIGNAL socketError
  • Spring Batch“无效的对象名称BATCH_JOB_INSTANCE”

    我创建了一个 Spring Batch 来查询 Azure SQL Server 数据库并将数据写入 CSV 文件 我没有create数据库的权限 我收到这个错误Invalid Object name BATCH JOB INSTANCE运
  • 如何在Google地图API中查找最近的城市

    我想找到距离我最近的澳大利亚城市example在此查看示例 我尝试使用 Google API 但没有用 我怎样才能实现这样的目标 你可以帮帮我吗 code is var map new google maps Map document ge
  • 模型类的正确 getter 上的 PropertyValueFactory 错误

    我正在尝试从 fxml 文件填充示例 javafx TableView 这是我的控制器方法 public class TestController implements Initializable FXML private TableVie
  • 什么是 Sharepoint(MOSS 2007) 开发/部署最佳实践

    我们正在工作中部署 sharepoint MOSS 2007 我正在尝试提出一种共享点开发和部署方法 我们有开发 质量保证 生产环境 我需要一种方法 最好是自动化部署从开发到质量保证以及从那里到生产的更改 我们正在创建网站集 Web 部件等
  • 求解正规方程会给出与使用“lm”不同的系数?

    我想使用以下方法计算一个简单的回归lm和普通矩阵代数 然而 我从矩阵代数获得的回归系数只有使用矩阵代数获得的回归系数的一半lm我不知道为什么 这是代码 boot example lt data frame x1 c 1L 1L 1L 0L