首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么泰尔的U2精度在预测包和DescTools上不一样?

为什么泰尔的U2精度在预测包和DescTools上不一样?
EN

Stack Overflow用户
提问于 2022-02-28 11:30:38
回答 1查看 162关注 0票数 0

今天,我试图使用泰尔的U2从DescTools,而不是预测包。我只是想知道,为什么这两个函数返回不同的结果?据我所知,不应该有什么不同。

代码语言:javascript
复制
library(forecast)
library(DescTools)

fc_df = data.frame(
fc1 = c(5565,5448,5164,5067,4997,5035,5168,5088,5162,4990,5018,5782),
fc2 = c(2565,2448,2164,2067,1997,1035,2168,2088,2162,1990,1018,2782)
)
act_df = data.frame(
act1 = c(9370,7980,6050,5640,6220,5740,6040,5130,5090,5210,4910,6890),
act2 = c(2900,2160,2400,2020,1630,1660,2210,1930,1960,1590,1730,2440)
)
# forecast 
ts_act <- ts(act_df, frequency = 12)
do.call(what = rbind, args = lapply(1:ncol(fc_df), function(x){
                               forecast::accuracy(fc_df[, x], ts_act[, x])}
                              ))
# DescTools ts 
TheilU(fc_df$fc1, ts_act[, 1])
TheilU(fc_df$fc2, ts_act[, 2])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 01:24:12

不幸的是,有几个统计数据被称为“泰尔的U",部分原因是泰尔自己在不同的论文中对不同的统计数据使用了相同的符号。

假设预测存储在向量f中,实际值存储在向量a中,每一个长度为n。然后,预测包将返回一个基于相关变化的统计信息。

代码语言:javascript
复制
fpe <- f[2:n]/a[1:(n-1)] - 1
ape <- a[2:n]/a[1:(n-1)] - 1
theil <- sqrt(sum((fpe - ape)^2)/sum(ape^2))

DescTools包返回泰尔U统计量的两种类型。type=2

代码语言:javascript
复制
theil <- sqrt(sum((f-a)^2)/sum(a^2))

type=1则由

代码语言:javascript
复制
theil <- sqrt(sum((f-a)^2/n))/(sqrt(sum(f^2)/n) + sqrt(sum(f^2)/n))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71294369

复制
相关文章

相似问题

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