一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 1193|回复: 3
收起左侧

[其他] 有统计和计算机两种学位的同学:请教统计编程里面怎么写Unit Test

[复制链接] |试试Instant~ |关注本帖
小K 发表于 2014-9-15 13:04:27 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
我上学的时候反正统计是不怎么写unit test, 所谓的functional test是靠人来看的,比如结果是否"make sense" - 这个定义很虚啊。。。。
. more info on 1point3acres.com
所以想请教一下有计算机背景的同学,如果你也写统计计算的程序(不一定是R package级别的),经常一个任务就是:给你一个data set要用如此这般的方法分析,得到一些结论。

但是统计里面问题是,针对原来的数据,你是不知道result的。
i don't mean testing the output of base or other R packages. I don't think you need to test the output from glm() is correct. 但是如果model specification (i.e. the parameters, or model)设置的不对,这些才是出bug的地方,比如你本来想include subset,但是你忘记了,这就是个很隐藏的bug. 或者有两个名字接近的变量,在model里面写错了,就是错。
或者你有一个procedure that takes a few steps, like read data, clean it up, impute missing values, fit a few different models and see what's best. Select that best, and report results in tables and graphs,. more info on 1point3acres.com
如果用计算机里面unit test的想法,应该是找一个很小的数据,你可以人工的知道它结果应该如何,用来做test case。
但是以上描述的这个过程,你事先如何知道哪个情况可以用来做测试呢?因为难以预测数据里面什么东西会interesting. 鍥磋鎴戜滑@1point 3 acres
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
即使是unit test,一般说test boundary and risky 的情况。但是统计里面,什么是boundary case and risk? 统计里面的结论经常不是代码不跑,而是跑出来的东西不make sense --- how do you define "sense" into a self-testing test case, that runs and prints "OK" every time you run it?
当然,应该break that procedure up,每个步骤都是单独的,可以被测试,unit test probably would find typos etc fast.

但是整个过程需要functional test,可是统计数据的结论经常是未知 的,怎么能找到合适的 whole test cases呢?




wwtpcsuper 发表于 2014-9-16 00:21:21 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
我一般是simulate一个expected的小toy example, 然后看看跑出来的是不是对的.. 如果model太复杂连toy example都写不出来的话.. 那我也没辙了..
回复 支持 反对

使用道具 举报

 楼主| 小K 发表于 2014-9-16 01:37:17 | 显示全部楼层
关注一亩三分地微博:
Warald
toy 求举例~~~. Waral 鍗氬鏈夋洿澶氭枃绔,
那做ML的人怎么做test呢?
像RF那种类型的,就算你知道predicted outcome, variable importance那种东西又怎么测试?
回复 支持 反对

使用道具 举报

wwtpcsuper 发表于 2014-9-16 08:16:11 | 显示全部楼层
具体来说
是parametric model还是non parametric model

如果是parametric,直接带进去几个参数,simulate出一个dataset。因为你已经知道了参数的结果,所以就直接run这个dataset看看参数的inference是不是match
如果是nonparametric.. 就比较麻烦了.. 比如ML的model。一般是写个极端情况来验证一下,但是不能保证没有bug。。只能多写些知道结果的极端情况来验证
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-2-28 18:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表