http://forums.eviews.com/viewtopic.php?f=3&t=9931
http://forums.eviews.com/viewtopic.php?f=3&t=11829
这次我来介绍一下如何自己编程求出一个group里每行的median。注意,如果是panel data,可以通过对pool对象求descriptive statistics来得到每行的median。但是并不是所有的数据都适用这个方法。
代码如下。当中,test是需要求median的group,需要事先定义好。执行完这几行代码会生成一个叫rowmedian的series,当中保存着group里每行的median。
这个程序其实十分简单。即把group存为matrix,然后每次取出一行,求出median,然后保存结果。当然,如果行数很多,这个程序的速度必然不会非常理想。但是在EViews提供一个native的解决方案之前,这也不失为一个实用的办法。有兴趣的朋友可以把它改成一个subroutine,然后就可以更方便的用在自己的程序里了。这个subroutine可以叫做rquantile,接受两个参数,一个是matrix的名字,另一个是quantile,即下述代码中的0.5
- ' initialize result vector
- series rowmedian = NA
- stomna(rowmedian,rme)
- stomna(test,target)
- ' get the total number of rows
- !numrows = @rows(rme)
- ' for each row, get the median
- for !i = 1 to !numrows
- rme(!i)=@quantile(target.@row(!i),0.5)
- next
- ' put results back to the series and clean up
- mtos(rme, rowmedian)
- delete rme target
group test的内容
执行程序
结果: