Example 8.SQL调用分析函数




DolohinDB集成高性能数据库和功能齐全的脚本语言。集成的一个优点是我们可以直接在数据库中分析数据。以下例子直接在SQL语句中调用函数ols。以股票换手率(turnover=成交量/股票总数)为响应变量,以股票收益的绝对值和买卖差价为自变量,进行线性回归分析, 并绘制参数估计的时间序列。我们绘制了参数估计的时间序列。



schema = extractTextSchema("c:/DolphinDB/Data/USstocks.csv")

update schema set type=`DOUBLE where name=`RET

USstocks = ploadText("c:/DolphinDB/Data/USstocks.csv", , schema)


t=select date, VOL\SHROUT as turnover, abs(RET) as absRet, (ASK-BID)/(BID+ASK)*2 as spread, log(SHROUT*(BID+ASK)/2) as logMV from USstocks where VOL>0

beta = select ols(turnover, (absRet,spread), 1, 2).Coefficient.beta as ``absRet`spread from t group by date

plot(select absRet,spread from beta, beta.date)



这里ols(turnover, (absRet,spread), 1, 2).Coefficient.beta 产生一个含有三个元素的向量。由于表中列的元素都是标量,在输出多个列的结果之前,我们需要把向量或字典的输出转换成多个标量。换而言之,我们需要把组合列转换成多个列。这个可以通过关键字 "as" 以及一个代表相应字段名称的字符串向量来实现。详情请参考用户手册第八章 "group by"。  








Download source code here.