这几天正在使用maximum likelihood方法估计discrete choice模型。很多情况下,计算likelihood的程序需要根据被解释变量y的取值来计算likelihood `lnf'。达成这个目的常见的方法是使用if条件语句。例如:
当数据量较大(例如,超过10万)时,这样计算likelihood耗费的时间太长,从而影响这个maximum likelihood估计的速度。这时,只要对算法稍加改进,就能大幅度提高运算速度!
这个改进其实很简单。原理就是用in语句代替if语句。大家一看下面的例子就会明白了。
剧透一下:试验结果表明,当数据包含20万观测值时,使用in条件比默认的使用if条件来计算likelihood可以使运算速度减少(相对于默认算法)40%至50%!
执行的结果是: