首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变量已在“linfct”中指定,但在“模型”中找不到!

变量已在“linfct”中指定,但在“模型”中找不到!
EN

Stack Overflow用户
提问于 2015-07-03 09:24:42
回答 2查看 11.5K关注 0票数 0

我想对一个模型的不同变量进行多重比较分析。我的想法如下:

代码语言:javascript
复制
a
   V1   V2
1  t1  5.0
2  t1  4.0
3  t1  2.0
4  t1  5.0
5  t1  5.0
6  t2  4.0
7  t2  3.0
8  t2  4.0
9  t2  9.0
10 t2  3.0
11 t3  2.0
12 t3  3.0
13 t3  2.0
14 t3  6.0
15 t3  8.0

tuk<-glht(fit,linfct=mcp(a$V1="Tukey"))

当我跑的时候,它显示:

代码语言:javascript
复制
“Variable(s) ‘trt’ have been specified in ‘linfct’ but cannot be found in ‘model’!”

我不知道该怎么处理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-03 21:53:21

在计算fit和调用glht之间,您似乎以某种方式更改了数据和/或变量的名称。您的代码有V1,但错误有trt。很难更详细地说明,因为您的示例不能完全复制(缺少fit的计算)。如果我重新运行我认为您所做的(或者应该做的事情),一切都会顺利进行。

首先,让我们阅读数据:

代码语言:javascript
复制
a <- read.table(textConnection("   V1   V2
1  t1  5.0
2  t1  4.0
3  t1  2.0
4  t1  5.0
5  t1  5.0
6  t2  4.0
7  t2  3.0
8  t2  4.0
9  t2  9.0
10 t2  3.0
11 t3  2.0
12 t3  3.0
13 t3  2.0
14 t3  6.0
15 t3  8.0"), header = TRUE)

然后,我们可以将我假设的线性模型与响应V2和解释变量V1进行拟合。

代码语言:javascript
复制
fit <- lm(V2 ~ V1, data = a)

然后可以调用multcomp包:

代码语言:javascript
复制
library("multcomp")
summary(glht(fit, linfct = mcp(V1 = "Tukey")))
##          Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Tukey Contrasts
## 
## Fit: lm(formula = V2 ~ V1, data = a)
## 
## Linear Hypotheses:
##                Estimate Std. Error t value Pr(>|t|)
## t2 - t1 == 0  4.000e-01  1.424e+00   0.281    0.958
## t3 - t1 == 0  5.617e-16  1.424e+00   0.000    1.000
## t3 - t2 == 0 -4.000e-01  1.424e+00  -0.281    0.958
## (Adjusted p values reported -- single-step method)
票数 1
EN

Stack Overflow用户

发布于 2021-03-02 22:29:15

我也有同样的问题,问题似乎在于模型的声明方式。如果您使用:

fit <- lm($V2~ a$V1)

但如果你将模型声明为:

fit <- lm(V2 ~ V1,data = a)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31203201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档