Sql server 独立的R和R-SQL给出不同的结果

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

我正在为每月数据开发一个预测模型,我打算在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))

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