Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 预测平均数的不一致估计_R_Linear Regression - Fatal编程技术网

R 预测平均数的不一致估计

R 预测平均数的不一致估计,r,linear-regression,R,Linear Regression,我最近听说了R中的predictmeans包,所以我想测试一下。所以我尝试了这个测试数据集和模型: data = data.frame( blk = LETTERS[rep(1:2, each = 4)], trt = letters[rep(1:4, each = 2)], x = c(3.3, 3.3, 1.8, 1.8, 1.5, 1.5, 5.4, 5.4), y = c(5.9, 5.8, 6.5, 6.7, 4.6, 4.5, 3.8, 3.8)) m

我最近听说了R中的predictmeans包,所以我想测试一下。所以我尝试了这个测试数据集和模型:

data = data.frame(
    blk = LETTERS[rep(1:2, each = 4)],
    trt = letters[rep(1:4, each = 2)],
    x = c(3.3, 3.3, 1.8, 1.8, 1.5, 1.5, 5.4, 5.4),
    y = c(5.9, 5.8, 6.5, 6.7, 4.6, 4.5, 3.8, 3.8))
mod1 = lm(y ~ x + blk + trt, data = data)
以下是使用
predictmeans::predictmeans
trt
平均值的估计值(输出严格缩写,仅显示估计值):

四种方法中有三种是相等的,这似乎很奇怪。更奇怪的是,如果我用不同的方式表达模型,我会得到不同的结果:

mod2 = lm(y ~ blk + trt + x, data = data)
predictmeans(mod2, "trt")

## $`Predicted Means`
## trt
##     a     b     c     d 
## 4.825 5.575 5.575 4.825
这里我们仍然有两种不同的方法,但模式不同。它会随着一种不同的模式而改变:

mod3 = lm(y ~ trt + blk + x, data = data)
predictmeans(mod3, "trt")

## $`Predicted Means`
## trt
##    a    b    c    d 
## 5.85 6.60 4.55 3.80 
现在有四种不同的方法

设置协变量
x
的效果也不同。如果我们不指定它,
predictmeans
将使用
x=3
;如果我尝试
x=0
,我会得到:

predictmeans(mod1, "trt", covariate = c(x = 0))

## $`Predicted Means`
## trt
##      a      b      c      d 
## 5.6615 6.1231 5.6615 5.6615

predictmeans(mod2, "trt", covariate = c(x = 0))

## $`Predicted Means`
## trt
##     a     b     c     d 
## 4.825 5.575 5.575 4.825
我发现,指定不同的
x
值会改变
mod1
的结果,但是
mod2
的结果是相同的,而不管
x
(这同样适用于
mod3


发生了什么事情导致了如此不一致的结果?有什么补救办法吗

直接查看mod1的输出。您的设计甚至不允许您估算所有参数。Hmmm。它不应该对此发出警告吗?直接查看mod1的输出。您的设计甚至不允许您估算所有参数。Hmmm。它不应该对此发出警告吗?
predictmeans(mod1, "trt", covariate = c(x = 0))

## $`Predicted Means`
## trt
##      a      b      c      d 
## 5.6615 6.1231 5.6615 5.6615

predictmeans(mod2, "trt", covariate = c(x = 0))

## $`Predicted Means`
## trt
##     a     b     c     d 
## 4.825 5.575 5.575 4.825