但是在R中,当我给出时,predict函数给出了不同的区间范围,然而给出时,它给出的答案与Excel相同。
因此,在predict中,当您给出时,它会在每个侧面上分别取2.5%。
但是所有这些网站,例如example,另一个example,都说我们正在寻找95%的置信区间,给出公式level=0.95(这意味着每侧有5%的分割),但那是90%,对于95%的区间,级别应该是0.975。
发生了什么?我可能有点困惑。
编辑:
predict(model, data.frame(c= 12.75, p= 6, f=8), level = 0.975, interval = "confidence")
这里的模型是一个 多元线性回归
数据:
y <- c(85.10,106.30,50.20,130.60,54.80,30.30,79.40,91.00,135.40,89.30) # Total Sales
c <- c(8.50,12.90,5.20,10.70,3.10,3.50,9.20,9.00,15.10,10.20) # production cost
p <- c(5.10,5.80,2.10,8.40,2.90,1.20,3.70,7.60,7.70,4.50) # Promotion cost
f <- c(4.70,8.80,15.10,12.20,10.60,3.50,9.70,5.90,20.80,7.90) #First year box office
model <- lm(y ~ c + p + f)
Excel:
我已经在Excel中用黄色标出了预测。
问题是,使用Excel时,我得到的预测值为106.72,上限为119.35,下限为93.36,=tinv(5%,6)
。
使用R时,我得到的预测值为106.72,上限为117.7,下限为95.65,level=0.95
。
使用level=0.975
时,我得到了与Excel完全相同的值。
在Excel中:
=tinv(5%,6) = 2.45``Variance = 5.46
106.72 +/- tvalue*variance
:119.35
93.36
在R中:
se.ci <- predi$se.fit # 方差: 4.518
alpha <- qt((1-0.95)/2,6) # 值:-2.45
predi$fit[1] + c(alpha, -alpha) * se.ci # 给我117.77165 95.65941
如您所见,tstat值相同,但预测结果不同。
但是当我这样做时:
alpha <- qt((1-0.975)/2,6) # 值:-2.968
我得到的是93.30182 120.12924
,与Excel相同! (在predict
中使用level=0.975
可以得到答案,因此产生了混淆)
T.INV
Excel函数还是TINV
函数?这两个函数的工作方式不同。 - Marco Sandri