Sql server 独立的R和R-SQL给出不同的结果
我正在为每月数据开发一个预测模型,我打算在SQL server 2016中使用该模型(在数据库中) 我为测试创建了一个简单的TBATS模型:Sql server 独立的R和R-SQL给出不同的结果,sql-server,r,sql-server-2016,Sql Server,R,Sql Server 2016,我正在为每月数据开发一个预测模型,我打算在SQL server 2016中使用该模型(在数据库中) 我为测试创建了一个简单的TBATS模型: dataset <- msts(data = dataset[,3], start = c(as.numeric(dataset[1,1]), as.numeric(dataset[1,2])), seasonal.periods = c(1,12)) d
dataset <- msts(data = dataset[,3],
start = c(as.numeric(dataset[1,1]),
as.numeric(dataset[1,2])),
seasonal.periods = c(1,12))
dataset <- tsclean(dataset,
replace.missing = TRUE,
lambda = BoxCox.lambda(dataset,
method = "loglik",
lower = -2,
upper = 1))
dataset <- tbats(dataset,
use.arma.errors = TRUE,
use.parallel = TRUE,
num.cores = NULL
)
dataset <- forecast(dataset,
level =c (80,95),
h = 24)
dataset <- as.data.frame(dataset)
这是一个结果的例子。顶部两行来自SQL server,底部两行来自RStudio
t Point Lo80 Hi80
1 872379.7412 557105.271 1187654.211
2 1093817.266 778527.1078 1409107.424
1 806050.6884 517606.464 1094494.913
2 1031845.483 743387.015 1320303.95
编辑2:我仔细检查了代码的每一部分,发现结果的差异发生在TBATS模型上
SQL server返回:
TBATS(0.684,{0,0},-,{})
RStudio返回:
TBATS(0.463,{0,0},-,{})
这解释了预测值的差异,但问题仍然存在,因为它们应该是相同的。我将为将来有问题的人回答这个问题: 在R引擎中的执行情况似乎有所不同,这取决于您的操作系统和运行时。我通过在我的PC和服务器上使用RStudio和Microsoft R Open运行独立的R,并在我的PC和服务器上的数据库中运行R来测试这一点。我还测试了所有不同的运行时 如果有人想测试它们,可以在Tools-Global Options-General-R version(用于RStudio)中更改R运行时 所有的测试结果都略有不同。这并不意味着结果是错误的(至少在我的例子中,因为我预测的是真实的业务数据,结果的间隔很长)
这可能不是一个实际的解决方案,但我希望我能防止有人像我一样恐慌一周。我将为将来有问题的人回答这个问题: 在R引擎中的执行情况似乎有所不同,这取决于您的操作系统和运行时。我通过在我的PC和服务器上使用RStudio和Microsoft R Open运行独立的R,并在我的PC和服务器上的数据库中运行R来测试这一点。我还测试了所有不同的运行时 如果有人想测试它们,可以在Tools-Global Options-General-R version(用于RStudio)中更改R运行时 所有的测试结果都略有不同。这并不意味着结果是错误的(至少在我的例子中,因为我预测的是真实的业务数据,结果的间隔很长)
这可能不是一个实际的解决方案,但我希望我能防止有人像我一样恐慌一周。您需要粘贴几行记录,以便我们了解您的数据。我添加了数据示例,很抱歉出现此错误。逗号在第三列中表示什么?只有小数,它在原始数据中是句号,但由于某种原因,当我从csv中复制它时,它将其更改为逗号。我会修正它以防止将来的混乱。当你在RStudio@KristijanTornič中测试时,你会运行哪个R运行时;Microsoft R Server、Microsoft R Open或CRAN R?如果您使用CRAN R,是否可以尝试将RStudio指向SQL Server R运行时,并查看结果。您需要粘贴几行记录,以便我们了解您的数据。我已添加数据示例,很抱歉出现此错误。逗号在第三列中表示什么?只有小数,它在原始数据中是句号,但由于某种原因,当我从csv中复制它时,它将其更改为逗号。我会修正它以防止将来的混乱。当你在RStudio@KristijanTornič中测试时,你会运行哪个R运行时;Microsoft R Server、Microsoft R Open或CRAN R?如果您使用CRAN R,是否可以尝试将RStudio指向sqlserverr运行时,并查看结果。
t Point Lo80 Hi80
1 872379.7412 557105.271 1187654.211
2 1093817.266 778527.1078 1409107.424
1 806050.6884 517606.464 1094494.913
2 1031845.483 743387.015 1320303.95