1. 完备事件

对于完备事件组$X = \{x_1, x_2, \dots, x_n\}$:

常用的技巧构造乘法系数,例如$\P(Y) = \sum\limits_{i=1}^{n}P(x_i|\theta)P(Y)$

2. 全概率公式

对于完备事件组$X = \{x_1, x_2, \dots, x_n\}$,事件$Y$的全概率公式:

使用概率密度函数表示为:

需要在python中调用R,实在是一种无奈的选择。如果能在一门语言中独立完成课题,是一个比较理想的做法。但是,这种想法也不太现实,毕竟每一种语言都有自己的长处。如果能取长补短,综合使用各种语言,也能起到不错的效果。

现在遇到的问题是,如何在python中调用R?这其中包括了如何调用R的对象(函数和包),R和python的对象如何互相转换,以及如何调用R的脚本(外界参数的输入)。python提供了一个模块rpy2 ,可以较好地完成这项工作。rpy2只是提供了一个Python调用R的接口,因此也直接继承了所有R的缺点。一个有意思的项目是renjin,一个基于JVM的R语言解释器。

本文着重记录一些使用过程中的注意事项和小技巧,如有不一致则以官方文档为准。

1. 安装

rpy2作为Python的一个模块,其安装非常方便。需要做的准备工作是在本地安装好R。

Install rpy2 from pip
1
# pip install rpy2

1. Emacs配置文件位置

在Fedora系统下,Emacs的配置文件位置是~/.emacs。在Emacs配置文件中添加内容后,使用M-x eval-buffer,使当前配置生效。编译代码以加快加载速度,M-x byte-compile-file

使用Eamcs解释器M-x ielm

2. Emacs自带的包管理系统

在Emacs24之后,自带包管理系统,使用M-x eval-buffer进入。可以添加MELPA源marmalade源GNU源

Add repositories of Emacs packages
1
2
3
4
5
6
(require 'package)
(add-to-list 'package-archives
	     '("melpa" . "http://melpa.milkbox.net/packages/"))
(add-to-list 'package-archives
	     '("gnu" . "http://elpa.gnu.org/packages/"))
(package-initialize)