SQLite - 如何计算线性回归斜率?

时间:2016-02-24 22:22:32

标签: sqlite statistics regression

我有一个表格,其中包含许多人数月的数据。为了简化它,假设预处理可以给我一张表 PersonID,MonthNumber,Value。

我想计算每个人在可用月份的价值的线性回归。

基本上我想回答的问题是

  

'一般来说,这些人的价值观是变得更好,变得更糟还是坚持下去   和时间一样。'

这样做的一种方法是计算每个人在可用月份的线性回归的斜率,并确定该斜率是负,正或零(或接近于零)。

有没有人知道我如何从像我描述的表中计算SQLlite中线性回归的斜率?

理想情况下,查询的结果将是一个表给出 PersonID,Slope,Intercept

或者,更好的是 PersonID,MonthNumber,Slope,Intercept

这样我就可以看到他们每个月都会变得更好,更差或更差。

1 个答案:

答案 0 :(得分:0)

我认为这样做会但是因为在SQLite中你不能在后面的行中使用更早的别名,即我不能将sum(Value)称为SumValue然后使用SumValue就像变量一样我必须编写代码总和几次。

SELECT   PersonID,
         ( 
         COUNT(Value) * SUM(MonthNumber * Value) 
          - ( SUM(MonthNumber) * SUM(Value) ) )
     / 
     ( 
        (COUNT(Value) * SUM(MonthNumber * MonthNumber) ) 
        - (SUM(MonthNumber) * SUM(MonthNumber) ) 
     ) AS slope
FROM     table1
GROUP BY PersonID;