переписать поли-функцию (R) в T-SQL (SQL Server) - PullRequest
0 голосов
/ 03 июня 2018

Я построил полиномиальную регрессию в R, одна из переменных является полиномом (степени 3) переменной.Я использую функцию poly http://stat.ethz.ch/R-manual/R-devel/library/stats/html/poly.html в R.

Теперь я хочу использовать свою модель в Sql Server, я могу скопировать коэффициенты полиномиальной регрессии в Sql Server.В предыдущих версиях моей модели (без полинома), поэтому при линейной регрессии я мог вычислить результат в T-SQL, но теперь у меня есть полиномиальная входная переменная, которая мне необходима для вычисления результата.

У меня Sql Server 2014, поэтому R-сервисов нет, я хочу использовать только T-SQL для вычисления решения.Моя идея заключалась в том, чтобы закодировать аналогичную функцию, например, poly, в R, но затем в SQL Server, но я еще не нашел ее.

Простой R var с полиномом степени 3:

polytest<-data.frame(seq(1:20))
colnames(polytest)[1]<-"X"
polytest<-cbind(polytest, poly(polytest$X, degree = 3))
polytest<-polytest[,-c(2,3)]
colnames(polytest)[2]<-"XPOLY3"

Переменная и полином степени 3 (из R), операторы вставки в T-SQL:

CREATE TABLE [dbo].[polytest](
    [X] [int] NULL,
    [XPOLY3] [float] NULL
) ON [PRIMARY]

GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (1, -0.43760938779302377)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (2, -0.16122451129216667)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (3, 0.03838678840289679)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (4, 0.17025669679873057)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (5, 0.24341739940189858)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (6, 0.26690108171896487)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (7, 0.24973992925649333)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (8, 0.20096612752104803)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (9, 0.12961186201919273)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (10, 0.044709318257491568)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (11, -0.044709318257491582)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (12, -0.12961186201919278)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (13, -0.20096612752104803)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (14, -0.24973992925649335)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (15, -0.26690108171896487)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (16, -0.24341739940189866)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (17, -0.17025669679873054)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (18, -0.03838678840289686)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (19, 0.16122451129216667)
GO
INSERT [dbo].[polytest] ([X], [XPOLY3]) VALUES (20, 0.43760938779302377)
GO

Есть ли возможность вычислить этот полином непосредственно в SQL Server?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...