如何为 lm() 设置平衡单向方差分析

2024-01-26

我有数据:

dat <- data.frame(NS = c(8.56, 8.47, 6.39, 9.26, 7.98, 6.84, 9.2, 7.5),
                  EXSM = c(7.39, 8.64, 8.54, 5.37, 9.21, 7.8, 8.2, 8),
                  Less.5 = c(5.97, 6.77, 7.26, 5.74, 8.74, 6.3, 6.8, 7.1),
                  More.5 = c(7.03, 5.24, 6.14, 6.74, 6.62, 7.37, 4.94, 6.34))

#     NS EXSM Less.5 More.5
# 1 8.56 7.39   5.97   7.03
# 2 8.47 8.64   6.77   5.24
# 3 6.39 8.54   7.26   6.14
# 4 9.26 5.37   5.74   6.74
# 5 7.98 9.21   8.74   6.62
# 6 6.84 7.80   6.30   7.37
# 7 9.20 8.20   6.80   4.94
# 8 7.50 8.00   7.10   6.34

每列提供一组数据。我使用组索引变量:

group <- c(rep("NS",8), rep("EXSM",8), rep("More.5",8), rep("Less.5",8))

当我尝试命令时出现错误

fit <- lm(NS ~ group, data = dat)
Error in model.frame.default(formula = NS ~ group, data = dat, drop.unused.levels = TRUE) : 
  variable lengths differ (found for 'group')

我是新来的lm()功能以及我哪里做错了?我知道之后我只需要打电话

anova(fit)
plot(fit)

任何帮助表示赞赏!


我们首先使用stack()重塑您的数据:

DAT <- setNames(stack(dat), c("y", "group"))
#       y  group
# 1  8.56     NS
# 2  8.47     NS
# 3  6.39     NS
# 4  9.26     NS
# 5  7.98     NS
# 6  6.84     NS
# 7  9.20     NS
# 8  7.50     NS
# 9  7.39   EXSM
# 10 8.64   EXSM
# 11 8.54   EXSM
# 12 5.37   EXSM
# 13 9.21   EXSM
# 14 7.80   EXSM
# 15 8.20   EXSM
# 16 8.00   EXSM
# 17 5.97 Less.5
# 18 6.77 Less.5
# 19 7.26 Less.5
# 20 5.74 Less.5
# 21 8.74 Less.5
# 22 6.30 Less.5
# 23 6.80 Less.5
# 24 7.10 Less.5
# 25 7.03 More.5
# 26 5.24 More.5
# 27 6.14 More.5
# 28 6.74 More.5
# 29 6.62 More.5
# 30 7.37 More.5
# 31 4.94 More.5
# 32 6.34 More.5

分类变量应编码为因子。我们用factor用于编码。使用levels指定因子水平的参数。

DAT$group <- factor(DAT$group, levels = c("NS", "EXSM", "Less.5", "More.5"))

现在,专栏y是自变量(响应),而列group是因变量(协变量)

在进行统计建模之前,我们可以使用boxplot可视化您的组数据:

boxplot(y ~ group, DAT)  ## formula method for boxplot

我们看到“NS”组和“EXSM”组的均值似乎没有明显差异,但其他两个级别的均值差异很大。我们打电话吧lm():

fit <- lm(y ~ group, data = DAT)

要分析您的模型,请使用summary() and anova():

summary(fit)

# Call:
# lm(formula = y ~ group)

# Residuals:
#      Min       1Q   Median       3Q      Max 
# -2.52375 -0.52750  0.07187  0.56281  1.90500 

# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)   8.0250     0.3553  22.585   <2e-16 ***
# groupEXSM    -0.1312     0.5025  -0.261   0.7959    
# groupLess.5  -1.7225     0.5025  -3.428   0.0019 ** 
# groupMore.5  -1.1900     0.5025  -2.368   0.0250 *  
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

# Residual standard error: 1.005 on 28 degrees of freedom
# Multiple R-squared:  0.3709,  Adjusted R-squared:  0.3035 
# F-statistic: 5.502 on 3 and 28 DF,  p-value: 0.004231

anova(fit)
# Analysis of Variance Table

# Response: y
#           Df Sum Sq Mean Sq F value   Pr(>F)   
# group      3 16.674  5.5579  5.5025 0.004231 **
# Residuals 28 28.282  1.0101                    
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 lm() 设置平衡单向方差分析 的相关文章

随机推荐

  • MySQL 开源报告服务

    我目前正在从事一个需要报告服务的项目 数据库后端是使用 MySQL 构建的 我希望有一个具有与 SSRS 类似功能的东西 有谁有这方面的开源解决方案的经验吗 他们有什么特别推荐的吗 必须通过浏览器访问它 Thanks David 当您说 报
  • 无法使用GDB进行远程调试

    我正在尝试使用 gdb 调试目标 但遭到拒绝 gdb 目标远程10 0 0 2 2345 使用10 0 0 2 2345进行远程调试 警告 架构拒绝了目标提供的描述 远程 g 数据包回复太长 00000000ba4eefbe00000000
  • 仅在 IE < 9 中按下“输入”时命令按钮不会提交

    我有2个
  • 在 M-x 编译中使用当前缓冲区的文件名

    我希望 emacs 使用当前缓冲区的文件名作为传递给的命令的一部分M x compile 例如 如果我正在编辑 foo rb 我想M x compile执行ruby foo rb 我尝试设置compilation command to li
  • 天数和总天数之间有什么区别?

    谁能告诉我 C 中这两个函数有什么区别 TotalDays 和 Days 因为我不确定应该在代码中使用哪一次 抱歉 这篇文章的信息量很少 但我能说的不多 由于我没有找到重复的内容 所以我在这里发表评论 始终阅读文档 http msdn mi
  • 如何在android中从互联网获取当前时间

    我正在制作一个应用程序 我想在其中从互联网获取当前时间 我知道如何使用设备获取时间System currentTimeMillis 即使经过很多搜索 我也没有得到任何关于如何从互联网获取它的线索 您可以使用以下程序从互联网时间服务器获取时间
  • MIPS 浮点:swc1 与 s.s

    我正在做一些涉及的工作MIPS汇编 我不断遇到这四个浮点加载 存储伪指令 l s l d s s s d 我在网上找到了一些文档 发现有四个 实际 指令似乎可以做同样的事情 lwc1 ldc1 swc1 and sdc1 我唯一的问题是 有
  • Java 和 Android 之间的 Base64 编码/解码错误

    我在 Java 和 Android 之间编码 解码 Base64 时遇到问题 这是我的案例 我在Java上使用ECC编写了加密 解密代码 我的代码运行得很好 然后我尝试在Java上加密字符串并在Android上解密这个加密的字符串 但失败了
  • 1-15 的正则表达式? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我很难为 0 15 的数字输入组合正
  • 我怎样才能快速转换这个日期格式?

    我想转换Wed Jul 01 04 48 51 0000 2015 to 2015 07 01我在下面尝试过 但它不能很好地执行 返回零 let d Wed Jul 01 04 48 51 0000 2015 let formatter N
  • OnLocationChanged 回调永远不会被调用

    我正在尝试使用以下命令获取用户当前位置LocationManager 我做了很多研究 似乎找不到任何人有同样的问题 这OnLocationChanged回调似乎从未被调用 下面是我的各种代码和 logcat protected Locati
  • 在 Windows Phone 上部署 Sencha 触摸应用程序

    我有一个现有的 Sencha touch 项目 我想将其部署在 Windows Phone 设备上 到目前为止 我已经尝试将 Sencha touch 与 Phonegap 结合起来 通过 Phonegap 进行部署 但没有成功 据报道 由
  • .:format 在 rake 路由中意味着什么

    我输入 rake 路线 然后得到一堆像这样的 url articles id format 我的问题是 什么是 format意思是 Rails Guides Routing 文章中并不清楚 并且没有其他有用的匹配项 format在 Stac
  • 笛卡尔坐标到极坐标(3d 坐标)

    如何在 3D 空间中的笛卡尔坐标系和极坐标系 以及反坐标系 之间进行转换 最好有一个 C 示例 但任何内容都将不胜感激 谢谢 Edit当考虑20 的变化时 不形成球体 Edit 2 private void Spherise for int
  • 如何在 ASP.NET 中上传图像文件而不进行任何回发

    我正在使用上传文件
  • 无法在 getRequiredModulePath 的 NodeObject.getText 处读取未定义的属性“文本”

    生成浏览器应用程序包时发生错误 阶段 设置 什么可能导致此错误 来自控制台的信息 生成浏览器应用程序包 阶段 设置 类型错误 无法读取未定义的属性 文本 在 NodeObject getText opt app root src node
  • Vee-Validate validateAll() 范围

    我有一个场景 我已经划分出 范围 一个表单 以便我可以使用以下函数一次验证小块 validateScope scope return this validator validateAll scope 我想在将整个表单提交到服务器之前对其进行
  • 如何从Word 2010 Addin(用C#开发)获取“KeyPress”事件?

    如何从用 C 开发的 Word 2010 Addin 捕获 KeyPress 事件 注意 我不是在寻找 复杂 的解决方案 例如挂钩之类的东西 而是在寻找漂亮整洁的解决方案 NET 甚至来自对象模型 我 手中 的应用程序对象是 Microso
  • Angular 2在路由时传递对象

    我试图在路由时在页面之间传递对象 数组 为此我做了什么这个答案 https stackoverflow com questions 35478994 angular 2 passing object via route params pos
  • 如何为 lm() 设置平衡单向方差分析

    我有数据 dat lt data frame NS c 8 56 8 47 6 39 9 26 7 98 6 84 9 2 7 5 EXSM c 7 39 8 64 8 54 5 37 9 21 7 8 8 2 8 Less 5 c 5 9