0%

nisp重构启动,python服务器端初步完成,node客户端也需要同步重构。

受益于python中的单元测试用例的覆盖,发现了不少之前没有发现的问题,于是乎node也要高高单元测试才行 >_<

参考“Comparing the best Node.js unit testing frameworks”,挑选了MochaJest试了下,最后选择Jest,比较好上手,而且自带覆盖度评估。

转:测试框架历史分析

政策参考:

  1. 中华人民共和国个人信息保护法
  2. 中华人民共和国电子商务法
  3. 互联网信息服务算法推荐管理规定
  4. 儿童个人信息网络保护规定
  5. App违法违规收集使用个人信息行为认定方法
  6. 深圳经济特区数据条例
  7. 上海市数据条例
  8. 工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知
  9. 工业和信息化部启动互联网行业专项整治行动
  10. 上海市网络交易平台网络营销活动算法应用指引(试行)
  11. 信息安全技术 个人信息安全规范
  12. 互联网个人信息安全保护指南
  13. APP用户权益保护测评规范

其他参考:

  1. 移动互联网应用程序(APP) 个人信息保护治理白皮书
  2. 地方综合性数据立法的先行者——解读《上海市数据条例》与《深圳经济特区数据条例》(上)

昨天跟同事讨论“某基金持有1年的时间的盈利(不亏本)的概率是多少”这个问题。

我同事的算法是:

  1. 假设统计的是某个时间段(比如近10年)情况,标记为统计时间区间
  2. 假设投资者每天都申购一笔并持有1年后赎回并计算该笔交易的收益率,然后从统计时间区间内,计算得到的收益率序列
  3. 将收益率序列中,收益率大于或等于零的样本数,除以,总样本数,获得该基金持有1年的时间的盈利(不亏本)的概率

我昨天建议改用正态分布的方式去做(前面两点假设一样):

  1. 假设统计的是某个时间段(比如近10年)情况,标记为统计时间区间
  2. 假设投资者每天都申购一笔并持有1年后赎回并计算该笔交易的收益率,然后从统计时间区间内,计算得到的收益率序列
  3. 通过收益率序列,基于正态分布的假设下,算出均值、方差从而计算出其盈利概率

昨天我认为我同事的算法不是在计算概率,而更多算的是一种频度;今天早上想起了泊松分布,在想是否可以用其他的分布来去解释这个所谓的“盈利概率”,最后得到了如下的答案:

  • 我同事用的是伯努利分布(Bernoulli distribution),属于离散型概率分布
  • 我用的是正态分布,属于连续概率分布

其实都没有错

阅读全文 »

第二次读这本书了(第一次读是纸质版,第二次是微信读书上看的),当读到这一段时:

《随机漫步的傻瓜》中的内容

想到了“如何把Z Score转换为P值”这个疑问。于是,回顾了下:

对于正态分布$\mathcal{N}(\mu, \sigma)$,其概率密度函数为:

$$ PDF = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2} = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{z^2}{2}} $$

其累积分布函数为:

$$ CDF = \Phi(x) = P(Z \leq x) = \frac{1}{\sigma\sqrt{2\pi}}\int_{-\infty}^{x}e^{-\frac{t^2}{2}}dt $$

考虑到误差函数(Error Function)

$$ erf(x) = \frac{2}{\sqrt{\pi}}\int_{0}^{x}e^{-t^2}dt $$

可以将累积分布函数采用erf来进行计算,即有:

$$ CDF = \frac{1}{2}\big[1+erf(\frac{x-\mu}{\sigma\sqrt{2}})\big] = \frac{1}{2}\big[1+erf(\frac{z}{\sqrt{2}})\big] $$

Excel或者是WPS下相关的公式是NORMDIST,在Python中可以用scipy.stats.norm.sf

比如要计算书中例子,投资回报率15%,年误差率10%,那么任何一年赚钱的概率93%,可以这样计算:

实践样例

最后,因为好奇心下,又去找了下实现,比如:

C语言实现代码参考

发现了Netlib这个好地方,如果可以快速索引的话,可能里头很多方法的源码实现都可以好好研究下

MATLAB的erf是基于”Rational Chebyshev Approximations for Error Function –W.J.Cody”实现的,可以参考这里

实际上,用近似实现可以简化,误差方面,也还是可以接受,试了一下:

Python写了这4个算法的测试,可以从这里下载源文件

读《思考,快与慢》时遇到“前景理论”,于是乎搜索了一下并把一些收获记录下来。

前景理论(prospect theory):人在不确定条件下的决策选择,取决于结果与展望(预期、设想)的差距而非單單结果本身。即,人在决策时会在心里预设一个参考标准,然后衡量每個決定的结果,与这个参考标准的差别是多大。

该理论将决策过程描述为两个阶段:

  • 在称为编辑的初始阶段,决策的结果根据某种启发式排序。特别是,人们决定他们认为哪些结果是等效的,设定一个参考点,然后将较小的结果视为损失,将较大的结果视为收益。编辑阶段旨在减轻任何框架效应。它还旨在解决因个人倾向于经常隔离连续概率而不是一起处理而产生的隔离效应。编辑过程可以看作是由编码、组合、分离、取消、简化和优势检测组成。
  • 在随后的评估阶段,人们表现得好像他们会根据潜在结果和他们各自的概率计算一个价值(效用),然后选择具有更高效用的替代方案。

以上为翻译,原文如下:

The theory describes the decision processes in two stages:

  • During an initial phase termed editing, outcomes of a decision are ordered according to a certain heuristic. In particular, people decide which outcomes they consider equivalent, set a reference point and then consider lesser outcomes as losses and greater ones as gains. The editing phase aims to alleviate any framing effects. It also aims to resolve isolation effects stemming from individuals’ propensity to often isolate consecutive probabilities instead of treating them together. The editing process can be viewed as composed of coding, combination, segregation, cancellation, simplification and detection of dominance.

  • In the subsequent evaluation phase, people behave as if they would compute a value (utility), based on the potential outcomes and their respective probabilities, and then choose the alternative having a higher utility.

评估阶段的价值函数可以表达为:

$$ V = \sum_{i=1}^{n}\pi(p_i)v(x_i) $$

通过参考点的价值函数是S形的,不对称的。损失的价值函数比收益更陡峭,表明损失大于收益。

价值函数

此理论引申的四个基本結論

  1. 確定效應:處於收益狀態時,多數人是風險厭惡者。
  2. 反射效應:處於損失狀態時,多數人是風險喜好者。
  3. 損失規避:多數人對損失比對收益敏感。
  4. 參照依賴:多數人對得失的判斷往往由參照點決定。
    简言之,人在面临获利时,不愿冒风险;而在面临损失时,人人都成了冒险家。而损失和获利是相对于参照点而言的,改变评价事物时的参照点,就会改变对风险的态度。

以上四个基本结论摘自Wikipedia

换一种说法:

  • 面对收益,多数人是害怕风险,是风险规避的。
  • 面对损失,多数人是偏好风险,是风险寻求的。
  • 稟賦效應或厭惡剝奪(英語:Endowment effect),形容當一個人擁有某項物品或資產的時候,他對該物品或資產的價值評估要大於沒有擁有這項物品或資產的時候。這一現象常常用於行為經濟學的分析中,並與損失厭惡的理論相聯繫。由於稟賦效應,人們在決策過程中,往往會產生偏見,導致對於規避風險的考慮遠遠大於對於追逐利益的考慮,因此人們在出賣物品或資產時,往往索價要比其本身更高的價值。

    禀赋效应

    人類傾向於喜歡自己擁有的東西,當我們產生擁有一件東西的感覺後,該東西的價值也會在我們心中相應地提升。

    在遊戲相關提供客製化的服務,讓玩家自行組裝自己的人物或是世界,藉由獲得個人的獨特經驗,讓玩家更加沉浸於遊戲中。

    基于这个效应,可以更深刻了解到马基雅维利说的:

    惩罚必需一次给足,赏赐则要一点一点给予。

  • 确定性效应(英语:Certainty effect),一种认知偏差带来的心理效应,人类对于确定与可能的结果,有给与不同评价的倾向。而对于不可能与低可能性的结果,可能做出过度高估的反应,则称可能性效应(Possibility Effect)。这个结果不是来自逻辑推导,主要来自风险厌恶的心理。

    可能性效应

  • 不同的人因为对于同一事物的参照点不一样,最后对该事物的决策或者态度/看法会截然相反。同时,也可以看出,我们是通过比较寻找相对性,然后进行判断和决策的。