frequentism-and-bayesianism-chs-ii

频率主义 vs 贝叶斯主义 II:当结果不同时

 

这个notebook出自Pythonic Perambulations博文 . The content is BSD licensed.

 

这个系列共4个部分:中文版Part I Part II Part III Part IV,英文版Part I Part II Part III Part IV

 

上一篇我论述了频率主义和贝叶斯主义在科学计算方面的差异。其中,讨论了两者基础理论的差异,表明在简单问题的处理方面两者基本等价。

尽管如此,在处理复杂问题时两者会有巨大分歧。通过我的实践表明,这种分歧主要出现在两个方面:

  1. 冗余参数(nuisance parameters)的处理
  2. 频率论的置信区间(confidence intervals)和贝叶斯可信区间(credible intervals)的小差异(经常被忽略)。

第二点有点复杂,我打算后面再讲,这篇内容先讲第一点:冗余参数的差异。尽管我会尽力保持公正,但你还是会觉得我偏向贝叶斯方法。不过,这些都只是解决第二点之前的热身赛,因为那会引起更多口水战(get downright polemical)。

 

什么是冗余参数?

 

冗余参数是与最终目标无关的任何变量,但是对确定一些相关的变量却不可或缺。例如,在上一篇博文的 第二个案例 中,我们估计了光量子的均值μ和标准差σ。而我们真正感兴趣的是μ,就是分布的均值。那么,σ就是冗余参数,它与最终结果无关,但是它是确定目标μ的过河石头,不可或缺。

我打算用两个例子来论述冗余参数。下面我们看看频率主义和贝叶斯主义解决这些问题差异:

 

例 #1:贝叶斯台球(The Bayesian Billiard Game)

 

我打算从Thomas Bayes1763的论文 里介绍的游戏出发来讨论冗余参数。这里我选一种改进版,详细介绍在Eddy 2004里面。

背景是两个人Alice和Bob赌输赢,但是他们看不到游戏的过程:

在一个房间里Alice和Bob前面挂着帘子,后面是个台球桌,他们看不到。但是他们的朋友Carol可以,Carol掷出一个球,然后记下球的位置。之后,他继续掷,如果这个球在第一个球的左边,Alice得一分。否则Bob得一分。这里假设Carol是公正无私的:也就是说他掷出的球呈均匀分布。先得6分者胜,也就是11局6胜。

第一个球的位置就是一个冗余参数:它是不确定的,也非结果,但是很明显后面的球都受其影响。如果这个球很靠右,那么Alice就占便宜。否则这个球很靠左,那么Bob就占便宜。

那么我的问题是:

在某次游戏中,当Alice赢5分时Bob才赢3分,那么Bob最后获胜的概率多大?

乍一看8个球里面Alice赢了5个球,标记位置可能更偏向她。那么,后面的球也更可能偏向她。而且她只要得一个球赢了,比Bob多3个机会;看来她是赢定了。但是定量分析Bob赢的概率是多少呢?

 

简单频率论方法

 

持频率方法论的人可能会如此解释:

要想获得结果,我们得先间接的估计一下标记的位置,假设概率p,可以表示为Alice的得分在掷过的球的结果中的比例。因为8个球里面Alice得5分,则p的最大似然估计(maximum likelihood estimate)为:

p^=5/8

(结果服从二项分布的最大似然估计binomial likelihood)。假设Bob获胜的最大似然估计为P(B),则:

P(B)=(1−p^)3

也就是说,Bob要连续赢3次。我们可以算出结果:

In [1]:
p_hat = 5. / 8.
freq_prob = (1 - p_hat) ** 3
print(u"Bob获胜的频率论概率为: {0:.2f}".format(freq_prob))
 
Bob获胜的频率论概率为: 0.05
 

我们改为赔率(odds)的方式显示:

In [2]:
print(u"Bob获胜的赔率为: {0:.0f} to 1".format((1. - freq_prob) / freq_prob))
 
Bob获胜的赔率为: 18 to 1
 

可见,Bob每赢一次,Alice要赢18次。让我们再试试贝叶斯方法。

 

贝叶斯方法

 

我们再从贝叶斯的角度看看这个问题。有点小复杂,得先定义一些变量:

具体定义如下:

  • B = Bob获胜
  • D = 样本数据,如D=(nA,nB)=(5,3)
  • p = 球落在Alice那边的概率

我们要计算P(B | D),即在Alice与Bob比分5:3的条件下,Bob获胜的概率。

通常,贝叶斯方法处理冗余参数的方法是边缘概率法(marginalization),即获得冗余参数全部可能的联合概率分布(joint probability)。也就是说,我们得先计算联合概率分布

P(B,p | D)

然后用下面的等式边缘化p:

P(B | D)≡∫∞−∞P(B,p | D)dp

这个等式源自条件概率(conditional probability)和总概率(total probability)定义,源自概率率公理的基本推论,不容置疑。频率主义者也认同这点,即使他们可能不同意我们把P(p)解释成“我们认识的不确定性的度量”。

 

建立贝叶斯表达式

 

要计算结果,我们就要把上面的P(B | D)转换成可以计算的形式。

我们用条件概率(conditional probability)来展开P(B,p | D):

P(B | D)=∫P(B | p,D)P(p | D)dp

然后再用 贝叶斯定理(Bayes' rule)改写P(p | D):

P(B | D)=∫P(B | p,D)P(D | p)P(p)P(D)dp

最后,用前面同样的概率恒等式,可以将P(D)扩展成分式:

P(B | D)=∫P(B | p,D)P(D | p)P(p)dp∫P(D | p)P(p)dp

现在的公式就可以计算了,我解释一下:

  • P(B | p,D): 就是上面使用的频率论的似然估计概率。也就是,已知标记位置为p且在Alice与Bob比分5:3的条件下,Bob获胜的概率?假如需要连续3次获胜,即 P(B | p,D)=(1−p)3.
  • P(D | p): 这也容易算。已知Alice那侧概率p, 8次中5次为Alice那侧的似然估计概率。答案来自著名的 (二项分布)Binomial distribution:P(D | p)∝p5(1−p)3
  • P(p): 对概率p先验认知。此例中,我们假设p最终要么是0,要么是1。就是说,P(p)∝1,积分范围介于0和1之间。

把这些放在一起,如下所示:

P(B | D)=∫10(1−p)6p5dp∫10(1−p)3p5dp

其中,积分范围介于0和1之间。

积分看着有点复杂,如果看出是贝塔函数(Beta Function)就好办了:

β(n,m)=∫10(1−p)n−1pm−1

贝塔函数可以进一步表示成伽马函数(Gamma function),如阶乘(factorials),但是我们可以直接用Scipy的beta函数简化计算:

In [3]:
from scipy.special import beta
bayes_prob = beta(6 + 1, 5 + 1) / beta(3 + 1, 5 + 1) print("P(B|D) = {0:.2f}".format(bayes_prob))
 
P(B|D) = 0.09
 

我们改为赔率的方式显示:

In [4]:
print("Bob获胜的贝叶斯赔率为: {0:.0f} to 1".format((1. - bayes_prob) / bayes_prob))
 
Bob获胜的贝叶斯赔率为: 10 to 1
 

可以看出贝叶斯的结果是10比1,而频率论方法是18比1。究竟哪个是对的呢?

 

穷举/蒙特卡罗方法(Brute Force/Monte Carlo Approach)

 

由于本例内容太简单,实际上很容易通过蒙特卡罗方法仿真来获得结果。通过穷举获得所有的可能:随机产生大量的结果,然后计算Bob最后获胜的比例。本例很多相关的随机变量都是均匀分布的,可以通过 numpy 包就可以搞定:

In [5]:
import numpy as np
np.random.seed(0) # play 100000 games with randomly-drawn p, between 0 and 1
# 玩1000万次游戏,p介于0到1之间
p = np.random.random(1000000) # each game needs at most 11 rolls for one player to reach 6 wins
# 每次游戏最多需要投掷11次保证一个玩家赢6次,
# 最坏的情况是第10次5比5,那么第11次一定见分晓,
# 就像乒乓球比赛中的11球6胜
rolls = np.random.random((11, len(p))) # count the cumulative wins for Alice and Bob at each roll
# 分别计算Alice和Bob赢的次数。
Alice_count = np.cumsum(rolls < p, 0)
Bob_count = np.cumsum(rolls >= p, 0) # sanity check: total number of wins should equal number of rolls
# 合理性检验:总获胜次数应该等于投掷数
total_wins = Alice_count + Bob_count
assert np.all(total_wins.T == np.arange(1, 12))
print("(Sanity check passed)") # determine number of games which meet our criterion of (A wins, B wins)=(5, 3)
# this means Bob's win count at eight rolls must equal 3
# 确定符合初始条件是(5, 3)的游戏次数
# 也就是说Bob在8次后获胜3次
good_games = Bob_count[7] == 3
print("Number of suitable games: {0}".format(good_games.sum())) # truncate our results to consider only these games
# 只考虑满足初始条件的游戏
# Alice_count = Alice_count[:, good_games]
Bob_count = Bob_count[:, good_games] # determine which of these games Bob won.
# to win, he must reach six wins after 11 rolls.
# 确定最终Bob获胜的的游戏次数
# 也就是11次后获胜6次
bob_won = np.sum(Bob_count[10] == 6)
print("Number of these games Bob won: {0}".format(bob_won.sum())) # compute the probability
# 计算Bob获胜概率
mc_prob = bob_won.sum() * 1. / good_games.sum()
print("Monte Carlo Probability of Bob winning: {0:.2f}".format(mc_prob))
print("MC Odds against Bob winning: {0:.0f} to 1".format((1. - mc_prob) / mc_prob))
 
(Sanity check passed)
Number of suitable games: 111467
Number of these games Bob won: 10079
Monte Carlo Probability of Bob winning: 0.09
MC Odds against Bob winning: 10 to 1
 

蒙特卡罗仿真和贝叶斯的结果都是10比1。表面上看,简单频率论方法挂了。

 

讨论

 

本例比较了冗余参数p的不同处理方式。蒙特卡罗仿真给了一个真实可能的穷举方法(假设之前的假设都靠谱),表明贝叶斯的结果是对的。而频率论方法用一个最大似然估计值,看来是错了。

随着我的评论和跟帖不断扩散,我在Reddit和Hacker News上被网友撕成了碎片,我的声明一点并不是说频率主义是错的。结果的错误源自“简单”而非“频率率”。当然,频率论中有一堆方法处理冗余参数——如通过数据变换和训练来消除对p的依赖——但是在此例中,如果不p用贝叶斯边缘概率法,我没找到其他任何方法。

另外,本例对经典的频率论来说可能不太公平。频率论者可能希望用假设检验或置信区间(null tests or confidence intervals)给出结果:也就是设计一个方法来构建边界,类似实验中正确的结果为百分之100×(1−p),对某个p,如0.05(这里说的p和我们前面的p不一样)。

这两条频率论观点有一个共同之处:都需要一定程度的努力和/或专业知识;可能一个靠谱的频率论方法对一个统计学博士是显而易见的,但是对一个普通人来说未必那么简单。总之,我认为贝叶斯主义是解决这类问题的良方:通过几条贝叶斯公理做简单的代数运算,就可以直接获得正确的结果。

下面我们研究一个复杂点的例子。

 

例 #2: 带奇点(Outliers)的线性拟合(Linear Fit)

 

冗余参数适合处理数据奇点。考虑下面的数据集合x和y,e是y的误差。

In [6]:
x = np.array([ 0,  3,  9, 14, 15, 19, 20, 21, 30, 35,
40, 41, 42, 43, 54, 56, 67, 69, 72, 88])
y = np.array([33, 68, 34, 34, 37, 71, 37, 44, 48, 49,
53, 49, 50, 48, 56, 60, 61, 63, 44, 71])
e = np.array([ 3.6, 3.9, 2.6, 3.4, 3.8, 3.8, 2.2, 2.1, 2.3, 3.8,
2.2, 2.8, 3.9, 3.1, 3.4, 2.6, 3.4, 3.7, 2.0, 3.5])
 

我们画个图:

In [7]:
%matplotlib inline
import matplotlib.pyplot as plt plt.errorbar(x, y, e, fmt='.k', ecolor='gray');
 
aaarticlea/png;base64,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%0AQmCC" alt="" />
 

我们的任务是找数据的最佳拟合线。很明显,数据里面有一些奇点,但是让我们用一个不稳定(non-robust)最大似然估计方法开始。如前所述,下面的最大似然估计结果要么概率论要么贝叶斯(有均匀分布前提):在这类问题里面,这些方法基本等价。

我们先做一个简单的线性模型,有一个斜率和一个截距的参数矢量θ,定义如下:

y^(x | θ)=θ0+θ1x

用这个模型,我们可以计算正态似然估计:

p(xi,yi,ei | θ)∝exp[−12e2i(yi−y^(xi | θ))2]

总样本的似然估计是个体似然估计的乘积。两边取对数:

logL(D | θ)=const−∑i12e2i(yi−y^(xi | θ))2

如果看过上一节的内容,会很明白。最终的式子是数据模型的对数似然估计(log-likelihood),可以找到θ的最大似然估计模型的最大值。同理,我们也可以最小化总样本的似然估计,记作(损失)loss

loss=∑i12e2i(yi−y^(xi | θ))2

这个表达式就是平方损失(squared loss);我们简单的演示了平方损失源自正态对数似然估计。

 

标准似然估计法

 

按照前面的逻辑,我们用频率论中求最大似然估计(或者最小损失)的方式来算θ。假设θ为扁平先验(flat prior),贝叶斯的后验概率会产生相同结果。 (如果按照最大熵原则的最佳参数理论,此处均匀分布并非最佳选择;但我们忽略这些细节,因为对此例影响很小)。

简单起见,我们用scipy的optimize包来获得最小损失(如果用矩阵方法,平方损失的计算会更困难,但是我们使数值最小化,就比较容易处理)。

In [8]:
from scipy import optimize

def squared_loss(theta, x=x, y=y, e=e):
dy = y - theta[0] - theta[1] * x
return np.sum(0.5 * (dy / e) ** 2) theta1 = optimize.fmin(squared_loss, [0, 0], disp=False) xfit = np.linspace(0, 100)
plt.errorbar(x, y, e, fmt='.k', ecolor='gray')
plt.plot(xfit, theta1[0] + theta1[1] * xfit, '-k')
plt.title('Maximum Likelihood fit: Squared Loss');
 
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXUAAAEKCAYAAADticXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz%0AAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VNWh9/EvIhCISLgIKEgCWESUcgvXBBjYo1VaPbbP%0AC1q1Rz3W1PZ4erTHKuqpkLcX0VpLeUsv2JZCJSqntdb2qAVy46YBVFBR5JoEkAQCBLnfMu8fa89k%0AEjLJZDKTPbPn93meeTJ7JrNnzZ7Zv1mz1tp7gYiIiIiIiIiIiIiIiIiIiIiIiIiISEhHgQynC9FM%0AwWX+I/DDCNYR/LiJwJag+0oBK6KSNc9s4E+N3P9toBL4HOhGYr5X0XAPsMrpQkhdFzldgARVCpwG%0Aute7/X2gBugXhefobD9PvPkjocM6uMw++9JcwY9bBQwOcV8sNfYc7YCfYb5cLgUOUfd1/5Hmf5n9%0AC7AROAIcAPJJ/C+JDMy+oIxpZdrgkfEBO4GvB902FOhI64SOk5oTrG0ifI5IH9caegMpwCdRWt9V%0AwCLgYaAL0B+YD5yP0vrD1Yb43u4SJoV65F4E/jVo+W5gMXV3jC9jau9HgHJgVtB9t2G+GDrbyzcB%0A+6it/dcAA+zrfwR+BbyB+am/ChMuvwAOYwJmeNC6gx/rf7y/9ugB9gDfB/YDnwG3AtOArcBBYGbj%0ALz3kzl//ef06A4XAXHt5MLDcfq4twPQQ6/MAu+vdNgLYBFQDLwMdgu67H9hmr/dvwOVB900A1tuP%0AWweMD7qvP1CMaU5ZBvQIUZ5B1IZ5NbDCvl4DDARygDuARzHv099CrCfYcGAXZvsAHANepfZ1d8S8%0Af4eAzZj3LXibNPZedwX+gXmfDwF/B/oE/W8R8CNgDXAcsx0ae2+6A69jPs8l9muOxBX2eg5i3q9v%0ABt03BthgP0cF5lcRmC/SF4EqzGd+HdAzwucXucAuzM/vLZidoC1mR+tH3eaXycC19vWhmA/pvwSt%0A50VgIWZn2YsJVr/6oX4AE2gdMD/PS4G7MAH7Q6AgxGOxn+P/2tc9wFngv+1yfxOzoywBUoEhwAkg%0APcRrX0jo5oXg5/U/Z3fMDuh//lTMtrobU6kYbr+2axpYv4e6AVYKvIP5QusKfAx8y75vqr2e4UB7%0AYB4mqMG0ex8G7rSf83ZMyHW1738beA7TtDIRE+6LQ7zGdC5sVmjodQebb18a0h84CTxvv95L6t0/%0Ax34daUBf4CNMBaGh567//N2Ar2IC8RJgKfDXoP8twmzTa+zX04XG35uX7UtHzOd6D7AyxOvKIHTz%0Ay0rgl5j3aRjmS2eKfd/bmPcJoBMm5MG8z6/br6UNZl/wV4hEWswf6k8CPwFuBP6JCcnG2tTnYnZe%0Avy5AGfAB8Ot6/1s/KH4bdN+DmFqb31BMaDX0WP/jg4PyBLW17c72/48O+v8N1P3yCdacUP898CHw%0AX0H/cxsXBsFvgadClDU41HdhasJ+z1C73X6PCUC/VOAMJoS/gfkyCLYWE179MF9yHYPuW0LojtIM%0Amg715rapjwVewYTbSXsdqfZ9O4Abgv73fhqvqTf2/MMxX2Z+hZhOYb/G3pu2mO05KOi+HxO6ozSD%0AhkP9SuActa8PzD600L5ebJep/q+lezG/KIaGeD6xqfklcj7Mjn8nDTe9gNlZCzE7azWmthHcuXoE%0A+DNwHbU/M0PZH3T9VL3lk1xYw2vMQWrbxU/afyvrrS+VlmmDaX5Koe4XUjpmuxwOutwB9ApzvRUh%0Aynk55gvS7zjmdfax7wuu3WL/r/++w9RuB/99rakEE6g9Mb8UJmEqDGCaKoJDvP7raEwnzLYvxXzW%0AijEVieDPafC6G3tvegAXt6AsfldgvliO11uPv1noPmqbudZhPkNg9rV/Yn4p7MV8oV8cwfO7nkK9%0AZcox7eI3YdpB68sDXsP8bE4DfkPdbT4cUwPJA/5fFMt1ArND+11OdDtww1mXD3gBsyO+EVSecky4%0AdA26dAb+vZnrr+8z6o4YScV8ge6x76vfnJRu37fPLkOnevdFur1aup03YJpI/M12+6j7y6/+r8DG%0A3uv/wgTkGEyYT+bCDtHg8jb23lRhatiNlSUcn2GahYIrIf0w7wXAdswXyWWY4P4z5lfUOUyz0rWY%0A/pGvULdPS2wK9Za7D9Oee7KB+y7B1HbOYHasO6jdifwdP48D/4apqXw7xHM0d1TCRswviLaYpqFJ%0AzXx8Y9pgakgpQZd2If4PTFPRp5hOuhTgfzFBc5f9uHaYpp/BQY9rzuv1/+9LmC/IYZh+h59gmlzK%0AgTft5/y6Xfbb7Of7h33/BiDXLks2JjAiVUnDncWhZGH6NS6zlwcDN1PbXLQU8xnxt6n/B3WDuLH3%0A+hLM5/IIJkiDO+r9grf1Pwj93pzHVFxmY0J2COYXalNfYin1LnsxTV9PY96nL2I+/y/a/39X0LY4%0AYq+/BtPmPtR+nUcxTWatPUIoISjUW24n8F7QcvCH/DuY2sXnwA8wO6jf05if+b/FhP5dmJEI/hEF%0AweupP4ywoWGFwcv/iQkG/8/nvzbyvw0tN8aHGR1zIuiSH+L//OvNwdTEXsO81hswnZV7MTXRpzGd%0AZvUf11TZgv83H7ON/4KpDfa3nwNMM8xXMDXXKuARe9nfvnwHptnhEKb9eFEjz9lQmYKXf48JvMPU%0A/nr7DRf2mfhVA7dg+h6OYr6AXgWete/PxXxOdgFvcWEzX2Pv9VxMAFdhgvTNJsp+jMbfmwcxXxQV%0AwB/sS1OOUfez4sF8uWZg3qdXMdvc39H/JUxn8FHg53ZZTmOagP4HE/QfYzp5GztATBrxOKZT7kNM%0AM0EHzLf+cswQuGWYWoSIxJ6HC4d5igQ0VVPPwPS2j6T2p8/tmJracsxPtXyaHtcsIiKtoKlQ/xzT%0AdtUJ0xbZCfOT6RZqf6Iuwhy8IiKtw+1HLUuM5WDat/ZT24YVPCa6Tb1lERGJUwMxnRLdMTX1v2I6%0A9OqH+CFERMRxTQ3ez8T0mh+0l1/FnDOjAnOodgVmXOz+hh48cOBA344dO6JTUhGR5LEDc7K3Zmuq%0ATX0LMA4zLKoN4MXU3P+OGaOK/fe1Bku1Ywc+n08Xn49Zs2Y5XoZ4uWhbaFtoWzR+IfKTpTVZU9+E%0AGRe7AXMAwHvAAsxRZksxB96UAjMiLYCIiERPOOdOeJbaAyH8DmFq7SIiEkd0RGkr8Xg8Thchbmhb%0A1NK2qKVtER2xnunEZ7cPiYhImNq0aQMR5rNq6iIiLqJQFxFxEYW6iIiLKNRFRFxEoS4i4iIKdRER%0AF1Goi4i4iEJdRMRFFOoiIi6iUBcRcRGFuoiIiyjURURcRKEuIuIi4ZxPXcJUWlpKaWlp4HpGRgYA%0AGRkZgesiIrGkU+/GSG5uLrNmzXK6GCJC4lW4WnLqXdXURcT1gsM7NzeXe+65x9HyxJLa1EVEXESh%0ALiLiIgp1EREXUaiLiLiIQl1ExEUU6iIiLqJQFxFxEYW6iIiLOHbwUaId4SUikggcC/VkOsJLRKS1%0AhNP8cjXwftDlCPBdoBuwHNgKLAPSYlTGhJOTk8PChQuZNm0a1dXVThdHRGzJsG+GE+qfAiPsyyjg%0ABPBXYCYm1AcB+fayAFu3bqWsrIw333yTnJwcp4sjIrZk2Deb21HqBbYDu4FbgEX27YuAW6NYroTW%0AqVMnADIzM1mwYIHDpRERv2TYN5sb6rcDL9nXewGV9vVKe1mAvLw8hgwZwvLly0lLU6uUSLxIhn2z%0AOaHeHrgZ+J8G7vPZFwHS0tKYMWOGaz80IokqGfbN5ox+uQl4FzhgL1cCvYEK4HJgf0MPmj17duC6%0Ax+PB4/FEUEwREfcqKiqiqKgoKutqTqh/ndqmF4DXgbuBZ+y/rzX0oOBQFxGRC9Wv8Obm5ka8rnCb%0AX1IxnaSvBt02B7geM6Rxqr0sIiIOCremfhzoUe+2Q5igFxGROKFzv4iIuIhCXUTERRwP9WQ4bFdE%0ApLU4HurJcNiuiEhrcTzUk+GwXRGR1uLYqXf98vLyyMrKcvVhuyLirOD5G9LT0wMH+rhx/gbHQ91N%0Ah+0m0wdHJJEk0z7oeKi7STJ9cEQkPinURZKEppBMDgp1kSShKSSTg+OjX0REJHoU6iIiLqJQFxFx%0AEYW6iIiLKNRFRFxEoS4i4iIKdRERF9E4dREX0QFG4lio6zwpItGnA4zEsVBXeIuIRJ+aX0REHFZV%0AVUVhYSErVqyguLi4RetSR6lIktEUks47fvw4b731Fo888ggjRoxg4MCBLFq0iMGDB7N06dIWrVs1%0AdZEk459CsqysjJycnBaHiDTt7NmzlJSUkJ+fT35+Pu+99x6jRo3C6/Uyf/58Ro8eTbt27aLyXAp1%0AkQgl6kgTTSEZezU1NXz44YeBEF+9ejVXXXUVlmXx5JNPkp2dTWpqakyeW6EuEqFEHWmiKSRjY+fO%0AneTn57NixQoKCwtJS0vDsizuvfdeFi9eTPfu3VulHAp1kSTjpikknVRZWUlBQUGgNn7q1Cksy+LG%0AG2/kpz/9Kf369XOkXAp1EZEwHD16lOLi4kCIl5eXM3nyZCzL4uGHH2bIkCG0adPG6WIq1EVEGnL6%0A9GneeeedQIhv2rSJMWPGYFkWCxYsIDMzk4svjr8Ijb8SiUiL5eTksGzZMkpKSsjLy1NTSxhqamrY%0AuHEjK1asID8/n7Vr1zJ48GAsy2L27NlkZ2fTsWNHp4vZpHBDPQ34HXAt4APuBbYBrwDpQCkwA9Cg%0AV5E4oGGLTfP5fGzbti1QEy8sLKRnz55YlsUDDzzAyy+/TNeuXZ0uZrOFG+q/AN4A/o/9mFTgSWA5%0A8CzwGDDTvoiIwzRssWH79u0LhHh+fj41NTVYlsUtt9zC3Llz6du3r9NFbLFwQr0LMBG4214+BxwB%0AbgEm27ctAopQqIvEBQ1bNKqrqykqKgqEeEVFBR6PB8uymDlzJoMGDYqLzs1oCifU+wMHgIXAMOBd%0A4CGgF1Bp/0+lvSySdOKx/TpZhy2eOnWKNWvWBEL8448/Zvz48ViWxeLFixkxYgRt27Z1upgxFU6o%0AXwyMBB4E1gNzubBG7rMvF5g9e3bgusfjwePxRFBMkfil9mvnnD9/nnfffTdw0E9JSQlDhw7Fsizm%0AzJnD+PHjSUlJcbqYTSoqKgqcfrylwgn1PfZlvb38Z+BxoALobf+9HNjf0IODQ13EjdR+3Xp8Ph+f%0AfPJJoCZeXFxMnz598Hq9PPTQQ0yaNIkuXbo4Xcxmq1/hzc3NjXhd4YR6BbAbGARsBbzAZvtyN/CM%0A/fe1iEshEseaOseL2q9ja/fu3XU6N9u1a4fX62XGjBn85je/oXfv3k4XMa6EO/rlP4AlQHtgB2ZI%0AY1tgKXAftUMaRVynqXO8JEr7daLMNnbo0CEKCwsDIX7w4EGmTp2KZVnMmjWLgQMHuq5zM5rCDfVN%0AwOgGbvdGsSwiEkPxFt5+J06cYPXq1YGDfrZt20ZWVhaWZXH//fczbNgwLrpIUz+ES0eUikirOnfu%0AHOvXrw+E+IYNGxgxYgSWZTF37lzGjh1L+/btnS5mwlKoi0hM+Xw+Nm/eHBihsmrVKjIyMrAsi0cf%0AfZSJEyfSuXNnp4vpGgp1EYm6srKyQIgXFBSQmpqKZVncdddd/OEPf+Cyyy5zuoiupVAXkRarqqqq%0Ac27xo0ePYlkWlmXxk5/8JC7b8t1KoS7iIq01wuXYsWOsWrUqEOK7du1i4sSJWJbFgw8+yHXXXacR%0AKg5RqItEKB6HCMbquc+cOcO6desCnZsbN25k1KhRWJbFr371KzIzM6M2cbK0jEJdJELxOkQwGmpq%0Aavjggw/qTJw8aNAgLMviBz/4AdnZ2YEjaSW+KNRFBJ/PF5g4OT8/n4KCArp164ZlWdx33328+OKL%0AdOvWzeliShgU6iJJqrKyss7h92fOnMGyLG666Saee+45rrzySqeLKBGIdU+Gz+dr8OSNIgnHf4rd%0AIUOGxM0pdpvj888/rzNx8p49ewLnFrcsi8GDB6tzM07Y70NEb4ZCXSRMHo+H4uJiAKZPnx73p9g9%0Affo0b7/9diDEP/jgA8aOHYvX68WyLEaOHBmXEydLy0Jd76hImOL9FLvnz59n48aNgYN+3n77ba65%0A5hosy+KHP/whEyZMSIiJk6VlVFMXCVN1dTVZWVmsWbMmLppe/BMn+4cZFhUV0bNnz0BN3OPxxEU5%0ApflUU5e419Q5yRNBPJxi97PPPqvTuQlgWRa33nor8+bNo0+fPo6VTeKDQl1aRVPnJJeGBU+cvGLF%0ACiorK5kyZQqWZfHEE0/whS98QZ2bUodCXSSOnDx5ss7EyZ988klg4uQXX3yR4cOHu37iZGkZhbqI%0Ag86dOxeYODk/P5+SkhK++MUvYlkWzz77LOPHj6dDhw5OF1MSiEJdpBX5J072d26uXLmSvn37YlkW%0ADz30EJMnT+bSSy91upiSwBTq4ig3dKA2pby8vM7h9+3bt8fr9XL77bezYMECevXq5XQRxUUU6uIo%0AN3agHjx4sM7EyYcPHw5MnJybm8uAAQPUuSkxo1CXVuU/1L6kpCQhD7VvyPHjx1m9enVghMr27dvJ%0Azs7GsiweeOABhg4dqomTpdUo1KVVbd26lbKyMsrKysjJyYn7Q+0bcvbsWdatWxeoib/77ruMGDEC%0Ar9fLvHnzGDNmjCZOFsco1KVJ0Wz3jvdD7RtSU1PDRx99RH5+PkuWLOH5559nwIABWJbFzJkzmThx%0AIpdcconTxRQBFOoShmi2e+fl5ZGVlcXy5cvjuull165dgZr48uXL6dChAyNHjsTr9XLDDTeQlpbm%0Aqs5ccQ+FurSqeDjUviEHDhyoM3Hy8ePHmTp1Kl6vlzlz5pCenu50EUXColCXpHTs2DFWrlwZCPHS%0A0lImTZqEZVl897vf5dprr9UIFUlICnVxhH+S5uA2+lg6c+YMJSUlgRDfuHEjmZmZWJbFr3/9a0aP%0AHq1zi4sr6FMsjvB4PEDdNnr/BBTR4J842X/k5po1awITJz/11FNkZWVp4mRxpXBDvRT4HDgPnAXG%0AAN2AV4B0+/4ZQHXUSyhJJdKRNj6fjx07dgRq4oWFhXTv3h3Lsrj//vtZsmSJJk6WpBBuqPsAD3Ao%0A6LaZwHLgWeAxe3lmNAsn7hEc1unp6YHml/qaM9KmoqKCgoKCQG383LlzWJbFl7/8ZZ5//nn69u0b%0A3RchkgCa0/xSv9foFmCyfX0RUIRCXUIIVdNuTpPLkSNH6kycvHfv3sC5xR999FGuvvpqdW5K0mtO%0ATX0Fpvnlt8ALQC+g0r6/0l6WOJMoJ8xq6PQBZ8+erXMOlY8++ohx48ZhWRYLFy5k5MiROre4SD3h%0AhnoWsA+4DNPksqXe/T77coHZs2cHrns8nkAHmbSORDlhVvDpAyZNmkTv3r0pLi5mxYoVWJbFj3/8%0AYyZMmEBKSorTRRWJuqKiopBNks0Vbqjvs/8eAP6K6SitBHoDFcDlwP6GHhgc6iLBfD4fVVVVzJ8/%0Any1bTD0hJSWF8ePHM23aNEaNGsXTTz/tcClFYq9+hTc3NzfidYUT6p2AtsBRIBW4AcgFXgfuBp6x%0A/74WcSkkaezdu7fOxMlHjx7la1/7Grm5ufzsZz9j3bp1gaNNN27c6HBpRRJPOKHeC1M79///EmAZ%0AsAFYCtxH7ZBGcbFITpt7+PDhwMTJ+fn57N+/P9C5efLkSUpKSqisrOS2226joqIi7k4fIJJowgn1%0AXcDwBm4/BHijWxyJZ+GcNtc/cbJ/mOGWLVuYMGEClmWxZMkShg8fHji3+CuvvEJ5eTnl5eXk5ORw%0A7bXXtvZLEnEdHVEqYWvotLnnzp1jw4YNgZr4unXrGDZsGJZl8dxzzzFu3LiQEyfXX98vfvGL1nkh%0AIi6mUJew5eXlMWHCBObNm8fixYvJz8+nuLiYfv36YVkW3/ve95g0aVLYEycnyml4RRKJQj1JtGQa%0AubKyskBNfPfu3dxxxx1YltXiiZMbOw2vG6e9E2kNCvUk0Zxp5Kqqquoc9HPkyJHAxMk9evRolWYS%0AN0x7J+IEhXqSaGwauePHj7Nq1apAiG/fvp2JEydiWRbf/va360yc3JLxs9Eqr4iEplBPEsHt16mp%0AqXVGqLz33nuMHDkSy7KYN28eY8eOpV27dnFTXjW9iIRPoZ4EampqKCsro2/fvtx5552sXr2aAQMG%0A4PV6eeKJJ5g4cSKpqalOF7OOeJ32TiTeKdRdaufOnYHmlIKCArp06UKXLl147LHHWLRoET169HC6%0AiCISAxc5XQCJjv379/Pyyy/zzW9+k/79+zNhwgSKioq44YYbWL9+Pdu2bePmm29m+vTpCnQRF1NN%0APUEdPXqUlStXBtrFy8vLmTRpEl6vl4cffpghQ4bE7bnFw50wQ0SaT6HeSlp6XvMzZ87wzjvvBEJ8%0A06ZNjB49Gq/Xy4IFC8jMzEyYiZODX3OogI+nc70nm0Q5B780LDFSwAWae17zmpoaNm3aRH5+PitW%0ArGDt2rVcffXVWJbF7Nmzw544ubHQjIcdNF7KIbUS5Rz80jCFepzw+Xxs3769zsTJPXr0wLIsvvWt%0Ab/HSSy/RtWvXZq9XoSmSXBTqDtq3bx8FBQWBID9//jyWZXHzzTczd+5c+vTp43QRgfiv7YtILYV6%0AK/JPnPzGG2+wdOlS9u3bh8fjifuJk1szvPUFItIyCvUYOnXqFGvXrg3UxDdv3sz48eO59NJLmT9/%0APiNGjNDEyfUovEVaRuPUo+j8+fOsX7+eOXPmcP3113PZZZfx5JNP0qZNG55++mkOHDjAsmXLyM7O%0AJjMzU4EuIlEX69/6Pp/PF+OncI7P5+PTTz8NjFApLi7miiuuwLIsLMti8uTJdOnSpc5j/KeUHTJk%0AiE4pK3FNn1Xn2M2wEeWzQr2Z9uzZU2fi5Isvvhiv14tlWUydOpXevXs3+niPx0NxcTEA06dP1yll%0AJW7ps+qcloS62tSbcPjw4TrnFq+qqmLKlCl4vV6eeuopBg4c2KzOTZ1SVhKFPquJSTX1ek6cOMGa%0ANWsCTSqffvop2dnZgSaVYcOGBc4tHonq6mqysrJYs2aNfs5KXNNn1TmqqbfAuXPnWL9+faAmvn79%0A+sDEyc8//zzjxo2jffv2UXs+nVJWEoU+q4kp6ULd5/OxefPmQIivXLmS9PR0LMvikUceYdKkSXTu%0A3NnpYoqIRCQpQj144uSCggI6deqEZVnceeed/O53v6Nnz55OF1FEJCpcGeoNTZzsbxP/0Y9+RP/+%0A/Z0uoohITLiio/TYsWN1Jk7euXNnYOJky7K47rrrWtS5GQ06nakkCn1WnZd049TPnj1LSUlJYITK%0A+++/z6hRo7AsC6/Xy+jRox2fOFlEJFKuD/Wamho+/PDDwAQRq1ev5qqrrgoc9JOdnR13EyeLiESq%0ANUK9LbAB2APcDHQDXgHSgVJgBlDdwOMiDvWdO3cGQrygoICuXbsGmlOmTJlC9+7dI1qviEi8a41Q%0A/x4wCugM3AI8C1TZfx8DugIzG3hc2KFeWVlZ59zip06dCoS4ZVn069cvzKJGh9oVRcQpsQ71vsAf%0AgR9jwv1mYAswGagEegNFwOAGHhsy1I8ePUpxcXEgxMvLy5k8eXKgXfyaa66Jm3OL5+bmMmvWLKeL%0AISJJItZHlP4c+D5wadBtvTCBjv23V1MrOX36NO+8804gxDdt2sSYMWPwer288MILjBo1KmEmThYR%0AiVdNpehXgP3A+4AnxP/47EuDrr/+enbu3Mnu3bsZMGAAX/3qV8nNzSUrK4uOHTtGVGgRETcpKioK%0AzPLVUk2F+gRMG/o0IAVTW/8Ttc0uFcDlmOBv0NVXX813vvMdPB5PRBMni4i4ncfjwePxBJZzc3Mj%0AXldTof6EfQHThv4I8A1MB+ndwDP239dCreCXv/xlxIUTEZHmaW4jtr+ZZQ6wFLiP2iGNUo9G0IhI%0Aa2tOqBfbF4BDgDf6xXGX4PDOzc3lnnvucbQ8IuJ+mnhaRMRFFOoiIi6iUBcRcRGFuoiIiyjURURc%0ARMflBwk1BFFEJFGoph4kIyMjcGRXWVkZHo+HvLw8Fi5cyLRp06iubujswk3Lyclp8TpERMKhUG/C%0A1q1bKSsr48033yQnJ8exdYiIhCPmzS/+k9TE+ijKWB292alTJwAyMzNZsGCBY+sQEQlHQkxn11zR%0AOP+5fx3V1dVkZWWxZs0a0tLSIlpXNNYhIsmjJedTV/NLE9LS0pgxY0aLwjga6xARCYdCXUTERRTq%0AIiIuolAXEXERhbqIiIvoiNIYCh5mmZ6e3mrDO0UkeSnUY0jhLSKtzXXNL9E4JF+H9YtIonJdqOuw%0AfhFJZq4LdR3WLyLJLOah3tpNGHl5eQwZMoTly5dHfARnNNYhIuKEtjFe/+zt27ezc+dOpk+fHuOn%0AMlJSUqiqquLGG29s8TpSUlICo1eqq6sD1xX0IhJLubm5ALmRPDbmo18SuQnD4/E4XQQRkWaJefOL%0AmjBERFpPzENdgS4i0npcN/pFRCSZKdRFRFzENacJ0HlWRESaDvUUoBjoALQH/gY8DnQDXgHSgVJg%0ABuDo8fQKbxGRpptfTgFTgOHAF+3r2cBMYDkwCMi3l0VExGHNmdi0E6bWfg/wF2AyUAn0BoqAwQ08%0AxpGJpyMV3IRTWloaqPnrV4CItKaWTDwdzoMuAt4DBgK/Bh4FDgNdg9ZxKGg5WEKFuohIPGhJqIfT%0AUVqDaX7pAvwT0wQTzGdfRETEYc0Z/XIE+F9gFLXNLhXA5cD+UA+aPXt24LrH49Gh9yIi9RQVFQVG%0A7LVUU9X7HsA5zMiWjpiaei7wJeAg8AymkzSNhjtL1fwiItJMsWxTHwoswrSrXwT8CfgpZkjjUqAf%0AjQ9p9BUWFgLqbBQRCVesO0pbQjV1EZFmakmo6zQBIiIuolAXEXERhbqIiIso1EVEXEShLiLiIgp1%0AEREXUaiLiLiIQl1ExEUU6iIiLqJQFxFxEYW6iIiLKNRFRFxEoS4i4iIKdRERF1Goi4i4iEJdRMRF%0AFOoiIi6iUBcRcRGFuoiIiyjURURcRKEuIuIiCnURERdRqIuIuIhCXUTERRTqIiIuolAXEXERhbqI%0AiIso1EVaokMwAAADeUlEQVREXCScUL8SKAQ2Ax8B37Vv7wYsB7YCy4C0WBRQRETCF06onwUeBq4F%0AxgH/DlwDzMSE+iAg316WEIqKipwuQtzQtqilbVFL2yI6wgn1CmCjff0Y8AnQB7gFWGTfvgi4Neql%0AcxF9YGtpW9TStqilbREdzW1TzwBGACVAL6DSvr3SXhYREQc1J9QvAf4C/CdwtN59PvsiIiIOahPm%0A/7UD/gG8Ccy1b9sCeDDNM5djOlMH13vcdmBgi0spIpJcdgBXxWrlbYDFwM/r3f4s8Jh9fSYwJ1YF%0AEBGR6MkGajCdpe/blxsxQxpXoCGNIiIiIiKJ40ZMm/s2aptokoUO1rpQW8wvvL/by8m6LdKAP2OG%0ABX8MjCV5t8XjmH3kQyAP6EDybIs/YEYMfhh0W2Ov/XFMlm4BbmilMtbRFtNBmoHpYN2IOVgpWfQG%0AhtvXLwE+xbz+Z4FH7dsfI7n6IL4HLAFet5eTdVssAv7Nvn4x0IXk3BYZwE5MkAO8AtxN8myLiZih%0A4cGhHuq1D8FkaDvMdtuOA6d3GQ+8FbQ8k+Q+2vQ1wIv5lvWP5e9tLyeDvpi+lynU1tSTcVt0wQRZ%0Afcm4LbphKjtdMV9ufweuJ7m2RQZ1Qz3Ua3+cuq0db2GO7A8pFonfB9gdtLzHvi0ZZaCDtX4OfB/T%0A2e6XjNuiP3AAWAi8B7wApJKc2+IQ8DOgHPgMqMY0PSTjtvAL9dqvwGSoX5N5GotQ10FIhg7Wgq8A%0A+zHt6aGOiUiWbXExMBL4lf33OBf+gk2WbTEQeAhT6bkCs6/cVe9/kmVbNKSp197odolFqO/FdBb6%0AXUndb5pk0A4T6H/CNL+A+fbtbV+/HBN2bjcBc46gXcBLwFTMNknGbbHHvqy3l/+MCfcKkm9bZAJr%0AgYPAOeBVTLNtMm4Lv1D7RP087WvfFlIsQn0D8AXMt3B74DZqO8iSQRvg95jRDXODbn8d0xmE/fc1%0A3O8JzAeyP3A7UAB8g+TcFhWYZslB9rIXM/rj7yTfttiCaRfuiNlfvJj9JRm3hV+ofeJ1zL7THrMf%0AfQFY1+qlA27CdIRsxzT0JxMdrNWwydR+uSfrthiGqalvwtROu5C82+JRaoc0LsL8uk2WbfESpi/h%0ADOaL/l4af+1PYLJ0C/ClVi2piIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiLjH/werGgUmadmHlAAA%0AAABJRU5ErkJggg==" alt="" />
 

由平方损失函数的本性,奇点对拟合线的影响不成比例。如果有一个奇点离拟合线有10个标准差的距离,那么它对损失函数的贡献比25个只有2个标准差远的奇点们重要。

很明显,平方损失过度依赖奇点,对我们的拟合任何造成很大影响。频率论模式解决这个问题的手段就是通过调整平方损失函数,使它更稳定。

 

奇点的频率论纠正方法:Huber损失(Huber Loss)

 

损失函数的可能看起来有无限多种,但是相对靠谱的选择就是Huber loss。Huber损失引入一个临界值(critical value)使得损失曲线从平方变为线性。让我们画个图来比较一下Huber损失和标准损失的临界值c:

In [9]:
t = np.linspace(-20, 20)

def huber_loss(t, c=3):
return ((abs(t) < c) * 0.5 * t ** 2
+ (abs(t) >= c) * -c * (0.5 * c - abs(t))) plt.plot(t, 0.5 * t ** 2, label="squared loss", lw=2)
for c in (10, 5, 3):
plt.plot(t, huber_loss(t, c), label="Huber loss, c={0}".format(c), lw=2)
plt.ylabel('loss')
plt.xlabel('standard deviations')
plt.legend(loc='best', frameon=False);
 
aaarticlea/png;base64,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%0AiBvkP01eAAAAAElFTkSuQmCC" alt="" />
 

Huber损失对模型中拟合很好的点作用是等同于标准损失的,但是会降低奇点的影响。如一个20标准差的点标准损失200,但是c=3时的Huber损失只有55。我们来看看Huber损失的最佳拟合结果与标准损失做个对比(灰色线表示)。

In [10]:
def total_huber_loss(theta, x=x, y=y, e=e, c=3):
return huber_loss((y - theta[0] - theta[1] * x) / e, c).sum() theta2 = optimize.fmin(total_huber_loss, [0, 0], disp=False) plt.errorbar(x, y, e, fmt='.k', ecolor='gray')
plt.plot(xfit, theta1[0] + theta1[1] * xfit, color='lightgray')
plt.plot(xfit, theta2[0] + theta2[1] * xfit, color='black')
plt.title('Maximum Likelihood fit: Huber loss');
 
aaarticlea/png;base64,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%0Agg==" alt="" />
 

直观的看,会觉得好像Huber损失拟合是我们要的结果。

但一个贝叶斯主义者可能会说这种新的损失函数的动机有点可疑:如前所述,平方损失源自正态似然估计,但Huber损失看着有点(随意)ad hoc,这是哪儿来的? c到底用多少合适呢?对奇点使用线性的损失函数的动机有没有一个合理的解释呢?或者只是简单的把奇点删掉?这么多对模型的影响有多大?

 

贝叶斯方法处理奇点:冗余参数

 

贝叶斯方法处理奇点一般通过调整模型(modifying the model) ,这样奇点就被考虑到。很明显,线性函数对这个模型不是一个好结果。因此,让我们设计一个更复杂的模型来考虑奇点。一种方式就是把信号和噪声(background)混合在一起:

p({xi},{yi},{ei} | θ,{gi},σ,σb)=gi2πe2i√exp[−(y^(xi | θ)−yi)22e2i]+1−gi2πσ2B√exp[−(y^(xi | θ)−yi)22σ2B]

我们要做的就是把模型加上冗余参数: {gi}是一组权重介于0到1之间,表明每个点i拟合的程度。gi=0表示奇点,标准差σB的正态分布用来计算似然估计。σB也是一个冗余参数, 它的值可以是一组足够大的数,比如50。

现在我们的模型足够复杂了:有22个参数,但是大多数可作为冗余参数,最终将被边缘化(marginalized-out)。恰似之前我们在台球游戏里面边缘化p。让我们构建一个函数来实现似然估计。如上一节,我们使用emcee 包来探索参数空间。

为了算出结果,我们用函数开始定义先验概率,似然估计和后验概率:

In [11]:
# theta will be an array of length 2 + N, where N is the number of points
# theta[0] is the intercept, theta[1] is the slope,
# and theta[2 + i] is the weight g_i
# theta是长度2 + N的数组,其中N是点的数量
# theta[0]是截距,theta[1]是斜率
# theta[2 + i]是权重g_i def log_prior(theta):
#g_i needs to be between 0 and 1
if (all(theta[2:] > 0) and all(theta[2:] < 1)):
return 0
else:
return -np.inf # recall log(0) = -inf def log_likelihood(theta, x, y, e, sigma_B):
dy = y - theta[0] - theta[1] * x
g = np.clip(theta[2:], 0, 1) # g<0 or g>1 leads to NaNs in logarithm
logL1 = np.log(g) - 0.5 * np.log(2 * np.pi * e ** 2) - 0.5 * (dy / e) ** 2
logL2 = np.log(1 - g) - 0.5 * np.log(2 * np.pi * sigma_B ** 2) - 0.5 * (dy / sigma_B) ** 2
return np.sum(np.logaddexp(logL1, logL2)) def log_posterior(theta, x, y, e, sigma_B):
return log_prior(theta) + log_likelihood(theta, x, y, e, sigma_B)
 

现在我们运行MCMC样本来探索参数空间:

In [12]:
# Note that this step will take a few minutes to run!

ndim = 2 + len(x)  # number of parameters in the model
nwalkers = 50 # number of MCMC walkers
nburn = 10000 # "burn-in" period to let chains stabilize
nsteps = 15000 # number of MCMC steps to take # set theta near the maximum likelihood, with
np.random.seed(0)
starting_guesses = np.zeros((nwalkers, ndim))
starting_guesses[:, :2] = np.random.normal(theta1, 1, (nwalkers, 2))
starting_guesses[:, 2:] = np.random.normal(0.5, 0.1, (nwalkers, ndim - 2)) import emcee
sampler = emcee.EnsembleSampler(nwalkers, ndim, log_posterior, args=[x, y, e, 50])
sampler.run_mcmc(starting_guesses, nsteps) sample = sampler.chain # shape = (nwalkers, nsteps, ndim)
sample = sampler.chain[:, nburn:, :].reshape(-1, ndim)
 
-c:18: RuntimeWarning: divide by zero encountered in log
-c:19: RuntimeWarning: divide by zero encountered in log
 

一旦有了这些样本,我们就可以获得马尔可夫链(Markov chains)的一个很好的属性。因为这些样本的分布模型是后验的,所以我们可以通过忽略它们来整合出(如,边缘化)冗余参数。

我们通过样本的前两列来看斜率和截距的(边缘化)分布:

In [13]:
plt.plot(sample[:, 0], sample[:, 1], ',k', alpha=0.1)
plt.xlabel('intercept')
plt.ylabel('slope');
 
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAEPCAYAAABCyrPIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz%0AAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X10VPd95/H36BGBJSQiiiJZ1BCgDhxHRDzE8cKuYikV%0ARGqxG2nTQCJ1k3pzJGjdZhtNXZI1baQ60D2beo1wa7tpsXfUsOC4m8iJpsWOaryOQywFYiAEYshi%0Aj6osIDDECAmJ3/5x515mRiNpRsxoRtLndc4c3Xvnzp3vXOP5zu8ZRERERERERERERERERERERERE%0AREREEm4DcBI4DbjDPJ8HvAAcBX4IrJi80EREZLKkAj8H7gLSgSPAB0PO+SvgK/7t3wAOTlZwIiIS%0ALCWO116LlRB+AdwAvglsCjnng8D3/ds/w0oe8+MYk4iIjCKeCaEIeDtg/x3/sUBHgd/xb68Ffh24%0AM44xiYjIKOKZEEwE53wNyAV+DGzz/x2OY0wiIjKKtDhe2wcUB+wXY5USAl0FPhewfxY4E3qhD3zg%0AA+att96KeYAiItPcW8CSSE+OZwnhDWApVrtABvAp4Nsh58z1PwfwEPCvwK9CL/TWW29hjEn6x6OP%0APprwGBSnYlScitN+AB+I5ks7niWEIaxqIC9Wj6O/A34KfMH//N8Cy4F/wKpeOgZ8Po7xiIjIGOKZ%0AEAC+538E+tuA7R9gdTcVEZEEi2eV0YxTVlaW6BAiojhjZyrECIoz1qZKnNFyJTqACBl/fZiIiETI%0A5XJBFN/zKiGIiAighCAiIn5KCCIiAighiIiInxKCiIgASggiIuKnhCAiIoASgoiI+CkhiIgIoIQg%0AIiJ+SggiIgIoIYiIiJ8SgoiIAEoIIiLip4QgIiKAEoKIiPgpIYiICKCEICIifkoIIpL0VqxYkegQ%0AZgStqSwiMk1pTWURmdLa2toSHcKMpYQgIgnX0tLibG/evDmBkcxsSggiknB79+4d83mXy8X8+fMn%0AKZqZSwlBRBKmuroagFOnTpGRkUFPT0/Y84wxnD9/fjJDm5HSEh2AiMxMixcv5syZM87+17/+dQoL%0AC4POcblcqEPJ5FEJQUQmjd1g3N3dTXNzc9BzW7duDdrv6elRMphk8e52ugH4ayAVeAbYGfJ8PvA/%0AgQKs0sp/A/4hzHXU7VRkimtsbGTPnj2jPm+XBqqrq2lvb5/EyKavaLudxjMhpAI/AyoAH/Aj4NPA%0ATwPO2QFkAo9gJYefAQuAoZBrKSGITAHLli3j1KlTI453d3dTWVk5ajuAqobiI5nGIawFfg78ArgB%0AfBPYFHLOvwE5/u0c4CIjk4GITBHhkgHAqlWrxmwUVjJIDvFMCEXA2wH77/iPBXoaWAH0AEeBh+MY%0Aj4gkQHd394gvfA0+S07xTAiRpPw/A44AhcBKoBXIjmNMIhJHbrebefPmAdZgs9bWVkpLS4POyczM%0ApKyszDlPkkc8u536gOKA/WKsUkKg+wB7iOJbwFngN4A3Qi+2Y8cOZ7usrIyysrLYRSoiUWlpaWH7%0A9u1Bx1pbW1m4cCF9fX309PSwfft26uvr2bZtW1AJYWBgAIBjx45NaswzQWdnJ52dnRN+fTwbldOw%0AGonLsaqEDjOyUfm/A+8Cf47VmNwFfAjoC7mWGpVFpgi7gbixsZGnnnqKoSE1CyZKMjUqDwHbAC9w%0AAtiHlQy+4H8A/CWwGqv94CDQxMhkICJTRFtbG1VVVQDs2bOHoaEh+0spYmvXro1HaEHuuOOOuL/H%0AVKTpr0VkQkLHFSxcuJBz586NOM/r9TJ//vwRbQljUTfU2Ii2hKCpK0QkKrW1tZSVlQUlA7fbzcc+%0A9jFnf+XKlRw9ehSIvEtpVlYW/f39Ub0mVioqKjh48OCkvmcyUglBRCLidrvp6uoK+uLMzc3l3Xff%0AJT09ncHBwQRGd/t6enooLCwkPT2dGzduRPy6nJwcrly5EsfIJk4lBBGJKa/XS1tbG3v37nWmoK6o%0AqODChQu8++67GGNwu90AFBQU0NvbO+417S/fRAr9IrfjiSYZAEmbDCZCCUFExnTPPffg8/lITU1l%0AeHgYr9fLwYMHqa2t5ciRI6xcuZKTJ0/S29sbUTJIlvaB6fRFHiua7VRExlRYWMiVK1d47rnnAKis%0ArGTevHns378fgPvuu4/r16+PushNbm5u0H48k0FbWxutra1Bi+l4vd64vZ8khhGR+Gtqagrar6qq%0ACtovLi4e8ZrR/v/cvXt37AKLUGi84YwVl8/ni2U4CUdkM0ZMOYm+ryIzhsfjMcYY09HRYYwxZt26%0AdaOeu3v3blNYWDgpcY0mKyvLGGPM0qVLxzyvq6trMsJJKighiMjtam5uNhkZGc5+Q0ODs52dnW26%0AurrC/hoPV4KYqPT09BHHUlNTjTHjf/mPxy4JpKSkjHiuvLz8tq6dTIgyIajbqYiwcuVKrly5wquv%0Avur0tgld4hJuNQjHumHY7Xazc2fo+lkT093dHdUguIm+ZipIpqkrRGQKKCgo4NixY/T29gZ1BQ1M%0ABt3d3bS2ttLR0QHEtmG4sbFx1GTQ09PjbNsNxnY8gc83NjbicrmoqKigtLSU2bNnjzvFdmNjo7O9%0Ab9++Ee83E6mEIDJDzZ8/31m0ZrRf/IG/nJOlu2hRURE+n2/EcXsG1traWqcHVDher5fKysp4hpg0%0AVEIQkbDsX8w9PT3k5OQErWA22hd9YDXKZCSD2traUZ9btmwZYA2KCzdhnj0d9/79+4MmyAvtdmoP%0AopORlBBEZojNmzcD1riCq1evsn79+lHPtatTxvqCjtRY16iurg7aH+uXvb0858WLF8dNTocPH3a2%0AQ0sD+fn5Y752JlNCEJmm7Hr2UFlZWRhjOHTo0Ijn7C9oe+K6sb6gIzXWNdrb28est1+5ciUQvORm%0AVlZW1DHU19c725rEbnRqQxCZAerr69m7d++YvXlaWlpYvXr1bdWv2+8zmonMYbRs2TKndCDRibYN%0AQQlBZIa73YnmZs2axfXr1539aBqfQ9dUWLFiBcePH8ftdnP//fdHlJxGW4dBlBBEJEJ2D6KJjgGI%0AVa+jtrY2p30jEq2trTz44IMJny11KlBCEJnBVq5cyZEjR0Z9PlYDsG7nV3laWtqIdZbtLqMTNV5V%0A1UylbqciM9hov/TtRtnAMQW3w04G1dXVzrVycnLGfZ3b7XaSQWCj9+0kA0DJIEaUEESmsIqKCuDW%0Al+tode6hVTKBJe6JjM51uVy43W42b97sXOvKlSthE03g9QMTlp2cAnsAhbJ7GYkEmrTJoESSWSTT%0AO9tCZ/cMnbRt0aJFEU1RjTVBmjFm/Enlmpubne2GhgZTXl5uFi1a5MygGqikpCRoP9w54Y5J5NBs%0ApyLTU7j/DwK/gGPNThahX9yBmpqagpJUTU2NMSY4cYWuMWBPpx1uOmp7ym1j4pMMZlqCQQlBZHqz%0Af+lPZH7/BQsWONujvT5wfYPly5dHdF07AYxVgiguLnYShjGRL6ATumiPRA4lBJHpI9a/aKO9XuAv%0AdttYC+aEA4xZyrhdgUlGghFlQlCjskgSsuf/CZyYzW5AjsRo54Y2Lo/XoByukTrclBeBCgoKgq5r%0AjBmzK+ztCp0aI3Baa4mOxiGIJLlop2u+3T79o4lmDMO8efPo6+uLeQzhaGqL0Wkcgsg0E+3cQqtX%0Arw7aj2RW09HYC9IAESeD+vr6UZPBeIvWjGaskoySQeyohCAyg1RUVIw62+doC88km9bWVrZu3Zro%0AMKYElRBEpqCWlhZn+3brwMd6/WjJwOVyOckgkgVkVqxYEXVM8+fPd/YXL14c9jy32x22NBC4boKS%0AQfzEu4SwAfhrIBV4BggdV/8nwBb/dhrwQSAfuBxynkoIIiJRSqYSQiqwGyspLAc+jfWFH+i/AR/2%0APx4BOhmZDESmrWh6DiWTsaabkKkrnglhLfBz4BfADeCbwKYxzt8M/GMc4xFJCoHVQ1N19a5YTSYX%0A2GgtiRfPhFAEvB2w/47/WDizgUrg+TjGI5IU4tEldDz2L/pk66Ov9oDkkhbHa0dT6f9bwKuMUV20%0AY8cOZ7usrIyysrKJxiUy4zz22GMAQauTxVNubi6XL6v2d7J1dnbS2dk54dfHs1H5XmAHVhsCWG0E%0ANxnZsAzwArAPq1opHDUqi4hEKZlWTEsDfgaUAz3AYayG5Z+GnDcXOAPcCfSPci0lBBGRKCVTL6Mh%0AYBvgBU5glQB+CnzB/7A94D9ntGQgIhGKdnyASCCNVBaR26bRw8kpmUoIIpJEop1HKJoeSUoG04NK%0ACCLi8Hq9XLx4kbNnzyake6zEVjI1KseSEoKISJRUZSQiIhOihCAiIoASgsi0MN5SmCKRUEIQmQYK%0ACwvDHtfkcRINNSqLiExTalQWEZEJUUIQERFACUFERPyUEEREBFBCEBERPyUEEREBplBCqKioSHQI%0AIiLT2pRJCLNmzQraT7bFwkVEpjoNTBMRmaam/cA0zdkiIhIfUy4h2HO2uN1u1q5dm+BoRESmjymX%0AEGzHjx/n8OHDiQ5DRGTamLIJob29PajnUUtLSwKjERGZ+iJJCL8BvAQc9+9/CPhy3CKKwsGDB53t%0A1atXJzASEZGpL5KE8DTwZ8Cgf/9N4NNxi2gC6uvr+eIXv+jsu93uBEYjIjI1RZIQZgM/DNg3wI34%0AhDMxmzdv5vjx404V0v333x/2vIKCgskMS0RkSokkIZwHlgTs1wD/Fp9wJqa+vp7c3FwOHjxId3c3%0AL7/8MgDz5s0bcZ6IiIQXyYCFDwBPAfcBl4CzwBbgF/ELa4QxB6bl5uby8ssvU1BQQGFhIdXV1Tz1%0A1FMUFRWxYMECent7nXNdLhca5CYiM0E8Bqa9BZQD+VgNzP+OyU0G47p8+TInT57k4YcfBuDs2bMU%0AFhZijGH16tX2TQFg9+7dWmdWRCSMSDJHPvAosA6r/eAQ8BfAxTjGFWrcqSt6enpGLDReW1tLWVkZ%0ADz74IHfddRevv/46paWlKiWIyIwQjxLCN4H/B/wOVvvBeWBfhNffAJwETgOjdf0pA34MHAM6I7yu%0Aw+v1AtYI5sBpLdavX8/+/fs5fvw4ZWVlZGRkUFZWBoDH46G6ujratxIRmdbSIjinAPhqwH4z8KkI%0AXpcK7AYqAB/wI+DbwE8DzskFWoFK4B2s0kjEenp6qKysdH7xFxYWMm/ePHbv3s3AwAAA7733HqdO%0AnXJe09jYyJ49e7h06VI0byUiMu1FUkL4Z6xxByn+x6f8x8azFvg5VnvDDaySxqaQczYDz2MlA4AL%0AEVzXYVcRBVb/XLp0ic2bN/Nrv/ZrtLS0MGfOHOe5np4e2tvbAViyZAkiInJLJHVLv8Iai3DTv58C%0AvOffNkDOKK+rwfrl/5B//zPAR4A/CDjn60A6sALIBh4HngtzrXHbEGbPns0LL7wQVGJYv349r776%0AKuvWrePQoUNAcC+j2tpaDh06REZGBufOnRvz+iIiU020bQiRVBndMcFYImm1TQdKsXoxzQZ+ALyO%0A1eYQZMeOHc52WVmZ0x4AVnvBtWvXWLhwIW632ykV2EkgkMfjoaKigi996Uvs37+fWbNmcf369Sg+%0AlohIcurs7KSzs3PCr480c2wC/j3Wl/y/At+J4DX3AjuwGpYBHsEqZewMOMcNZPnPA3gG6AAOhFxr%0AzBJCTk4OV69exRhDS0sL27dvd56rrq7m+vXr7Nq1i9LSUsAqGXzve9/jvffew+fz8cgjj7B3794I%0APpKIyNQRjxLC14A1gMd/4T/EGqT2yDivewNYCtwF9GC1PYTOgfS/sRqeU4FMrCql/x5Z6LdcuXKF%0AnJwccnNzuXz5MqmpqXz3u9/lgQceoL+/f8T5+/fvB6wG5sLCQubMmUNbWxubN2+O9q1FRKaNSDLH%0Am8BKYNi/nwocAe6J4LUbgb/2v+bvgMeAL/if+1v/3z8B/hNW6eFp4H+EuU5ES2hWVFSwbNky9uzZ%0Ag8vlIjs7m8cee4xz586xc+fOoHOrq6vZuHEjDz74ICUlJWRlZQGoLUFEpo1oSwiRnPgT4GPcGoj2%0APuD7WNNgT5YxE0Lgr/vGxkb279/P+fPnWbhwIefOnXPaCUIbm40xzoA2exDb1q1bJ+sziYjEVTwG%0Apj0GdAN7/Y8u4C8nEly8bN68mcbGRmd/x44ddHd3O7/2X3vtNcDqnrps2TIOHTpEVlYWy5Ytc7qu%0A/v7v/z4A3d3dkxy9iEhyiCQh/CPwUeBbWGMG7sUaU5BU9uzZQ319PXv27OHy5cuUlpbS1tZGdXU1%0A9957r3OePUX2tWvXePvttwHIysrC7XazZMkSp+FZRGSmGasosYrgrqP2ufaxyfwpHVEbQnd3Nw88%0A8AAf+tCHaG9vJysri/T0dK5evUpVVRXt7e1B4xACJ73Ly8ujr6+PoqIifD5f0HVXrlzJkSNHYvuJ%0ARETiLJZtCJ2MPZbgY5G+SQxElBBCrV+/nkOHDlFRUcFLL70UNKLZbkewE4TH4+Huu+/ms5/9LOnp%0A6dx3333s2bMnlp9BRGRSxbINoQzrS/9JrHEIH8NqTL6M1TMoKdnLZ7a0tHDfffcBcOHCBRoaGrjj%0Ajjuora2lsbGRV199lebmZu68804AtmzZwmOPPcaJEyc4evQo69atIycnx7lm4MR5IiIz1Zv+v+uw%0ASg3VBC+pORnMRDQ1NRmPx2MA4/F4THZ2tsnKyjLZ2dkGq/Rj5s6daxoaGpz9lJQUk56ebuz3bG5u%0ANoBpamqaUAwiIolCZDNGOCJpVLbHH1RjjRNoBzKieZNE2blzJ3fffTdVVVU8+eSTXLlyheHhYa5e%0AvUp2djYA7777Lm+++aZTnXTz5k2GhoYAq03iypUrFBcXc//996sHkohMa5HULb2INX31x4EPA9ex%0ASgglcYwrlDG3uaCNy+Wiq6vLWSAn5OLccccdvPLKK6xatco53tTUxK5duwDIzMxkzZo1YedHEhFJ%0ARvEYh/AfAS/wm1jtB3nAlyYSXKK43W58Ph/f+9736O7upqurK+j5lpYWrl+/zqpVq+jo6HCO79q1%0Ai6qqKvLz8xkYGODq1at4vd6gMQ8iItNFxJkjwW67hACwePFi0tKs6ZueeOIJNmzY4Dy3YMECCgoK%0AyM/P56WXXiIlJYWbN286zxtjaGtr44UXXnDmQhIRSWbxKCFMG+vXr+f06dO88847QckArBlTH3ro%0AIV566SWys7OdZJCamsqiRYucaqaVK1eOqHISEZkOpso3W0xKCN3d3dx7773cuHEj7PNZWVkYY5z1%0AEdLS0pwGZp/PR2FhIS6Xi+LiYk2CJyJJTyWEMTz++ONBySA1NTXo+f7+fq5fv+4ct5MBQFFREa2t%0ArRhjGB4exu1209raOjmBi4hMgmlfQpg3bx59fX0jltOMpNonMzOTgYEBZ9+eNTU7O5vMzEzOnz8/%0AoZhERCaDSggh+vr6ACgoKKCqqoq+vj5WrFhBRsbYQynKy8uDkgHgVCV95jOf4cKFC+Tm5mpsgohM%0AG9O+hGCviVBbW+t0Nz1z5kzYEkJqairp6elh11gOLS3Y8vPzVVIQkaSkEkIIu/F3//79fP7zn+fM%0AmTMAYRPC8PBw2GSQl5cXNhmANU9SW1tbDCMWEUmMaZ8QAp06dQqwup8GjjGYNWvWmK+7dOlS2ONz%0A5syhpKSELVu20NbWxuLFi50qJDU4i8hUM+2rjAK1tbVx9uxZtm/f7lQlxWJMwe7du9m2bRtz587l%0A8uXLt309sLrIarEeEbkd8VhTORnEJCHYcnJyuHr1Kh6Phy1btlBTU8OBAwdGnJeRkcHg4GBE16yr%0Aq2PZsmUsWrTIWd9ZRCSRlBAiVF9fz8MPP0xpaSmZmZkRf/GPJTU1lfz8fK5duwbA4OAg169f1699%0AEUkINSpHaM6cOZSWllJfX3/bySAzMxOwGqXtxXhKSkooLCykra2Nffv2xSJkEZG4mrEJwV4ec+/e%0Avc7I5Kampglda3h4mMzMTDIzMxkeHqa9vZ2+vj7S0tI4evQoO3fuHPW16enpAPT09GgWVRFJqBmX%0AEIqKikYcO3z4MABPP/00NTU1UV9zaGiIgYEBp2vqiRMnOHHiBKdPn3aW4RyNPZXGAw88wJe//OWo%0A31tEJFZmbBsCWL2Otm3bRl9fHy6Xy2lkTk1NZXh4eNzXZ2dnc/Xq1THPGW8iPLUviEi8qA0hCps3%0Ab6avrw+v14sxhi1btgBQWFgY0etHSwZLly51tt9++21cLhfd3d14vd4R565atYq2tjZWrFhBdXU1%0AwKgD3TRNhojE04wuIQTKyMgImgm1oaGBJ598MmbXDxyjYJcK7ARRWVnpHH/mmWec9o1Q9fX17N27%0AN2Yxicj0pm6nUejp6QkqDdiD1FwuF7F+P4/H44xPsGdNDY3lgQce4G/+5m8oLS1lxYoVHD9+PKYx%0AiMjMkmxVRhuAk8BpwB3m+TLgXeDH/sektqo+8sgjtLW10dLSQm1tLcYYPB4P999/f8zfa8uWLcye%0APRvAGZtgW7t2LYWFhXz1q1+ltLSU1tZWJQMRmVZSgZ8DdwHpwBHggyHnlAHfjuBaJp4A51FSUmIA%0A43K5go7H6uHxeIwxxnR0dJiMjAxTWFhoSkpKjDHGNDU1GWOMSUtLM+np6XH9zCIy/fm/dyIWzxLC%0AWqyE8AvgBvBNYFOY8xJebRU4/uDo0aMYY/jEJz5BVlZWzN9ry5YteL1e7rnnHgYGBvD5fBw5cgSA%0A73//+7jdbtrb27l58yaLFy8GrCm8wzVIi4hMFTXA0wH7nwGeCDnnPwAXgaPAd4Hlo1xrUrJpfn6+%0AycvLMykpKaarqyvmpYM1a9YYwNTV1TnZ2xhjGhoaRsTS0dFhFixYYIwxJi8vzxhjzLp16yblPojI%0A9ECUJYS0aE6OUiSBdAPFwDVgI/BPwLJwJ+7YscPZLisro6ys7LYDDOT1ejl//jxpaWncvHmTVatW%0A4fP5wg5km6gf/ehHADz77LM8++yzNDc3AwT1KmptbWXr1q288cYbXLx4EcBZ3e3QoUMxi0VEpp/O%0Azk46OzsTHUZY9wIdAfuPEL5hOdBZYF6Y45OWTQsLC82sWbMMYDIyMka0J5SXl8e01GDMyBKC3ZZg%0AjDFdXV1mzZo1JiMjw3R0dDilCxGR8ZBEbQhvAEuxGpUzgE8xsgF5AbfaENb6t/viGNOYjDFUVFTQ%0A399PXl6eM+ndJz/5SQA6Ojp46aWXYvqeLpeLjo6OoMFon/rUpwBr3MFnP/tZLl++zODgIE888QR7%0A9+5l2bKwhSgRkaS2EfgZVuPyI/5jX/A/ALYCx7B6IL2GVaoIZ9IyaldXl7OdmZkZ9Gu+rq4upqUD%0AuwRif76Ojo4R8QBOTF1dXaa4uNg0NzdPzs0QkSmNKEsICe/hEyH/Z4s/e3yAPb+Qy+UiMzOTdevW%0Axbx0ECr0MxYVFeHz+aitrWX//v1UV1dz6tQpZylQEZGxRDswLZ6NylPSvn37gqardrlcpKSkcOzY%0AMUpKSgCra2o82COkFy9e7CQDt9vNgQMHqK2tZePGjVqNTUTiRiWEEKHTWbS0tLB9+3a8Xi9PPPEE%0AGzduZNu2bXGPw/68jY2NnDt3jtdee43r16+Tk5NDb29vXKbXEJHpRSWEGFu9erWTDF588UV+8pOf%0ATMr72vMqGWNoaWnhlVdewRhDb28vbW1t5OXlTUocIjJzqIQwjvT0dIaGhmhoaODUqVMcPnx43DUQ%0AYskYQ3p6OpmZmbz33nsYY+jp6aGzs1PVRyIypmSb3G5Kc7lcDA0N0dXVxbp165xkUF5eHvf3tqut%0AXC4XLpeL9957j+bmZlwuF4WFhU4ycLvHG9ohIhIZlRDG0drayh//8R8zODhITk4OKSkpzJs3j7Nn%0Az4Y9Py8vj0uXLsXkvY0xTtWRPWW2z+ejt7d33FXW2traVIIQmeFUQoixrVu3OgPUOjs7uXbtGsuX%0AB0+5ZH9pAzFLBkDQesz2+glLlizh5MmTzvsGvndjY6OzbS/us3LlSgBnNTYRkdEoIUShtLSUlJQU%0A2tvb2b17N11dXcDI8QOxEq6t4plnngGsqqKsrCzq6uqc5Tk3bdpET0+P89rGxkays7MBeOedd5xr%0A2OeIiExFkz3AL0jg7KT2PEM1NTXGGGPWrFlj0tPT47J2AmB2797tzJ/k8XicNRQImD0VMFVVVaap%0Aqck5r7y83JmxNZzs7GyzfPnyybmBIpIQaKRyfLhcLmpqagBrpbVVq1bh8Xi4++67KSsri1vPI+Nv%0ARygpKXEGxBljyM3N5d133wUgPz+f8+fPU1RURFFREV/96leprKykpaUFn8836hrNIjK9aU3lSeBy%0Auairq+M73/kO165dY2BgYNLee/ny5bz//e8Pmkajo6ODyspKAAoKCsjJyXGmt6iurqa9vX3S4hOR%0A5KGEMAnsUcILFy7k7bffdo53dHRQX1/PL3/5y5i/Z1paGkNDQyOOZ2dnc/XqVaqqqoK++OfNm0dq%0AaipXrlxhYGDAGXEtIjOHehnF2fr16+nq6qKtrY2PfOQjwK1G5c997nNxSQbAiGRgj4W4evUq+fn5%0AgNXVtKenh8WLF9PX18f58+cZHBzE7XaHTQatra20tLTEJV4RmXpUQrgN9rxHXq+Xixcv8r73vY+/%0A+qu/itusqOnp6dy4cYO6ujqeffZZUlNTKSws5EMf+hDf/e53WbJkCUNDQ5w5cyZsnIHzH9krs4nI%0A9BVtCWGqSEgLfaTsnkc+n8/MnTt3xDoKsXrk5+ePufKax+MxNTU1Jisry/h8vqC1HQLjNMaYwsLC%0AybtBIpIQqJdRfNTX11NZWTli9G9LSwu5ubkAHD58GK/X61Qb5eXlcfXq1bB1/xOVkZHBwMCA0+vp%0AW9/6Fjdv3gSsqqvMzEwGBweDxka4XC48Hg+f//zn6e/vj1ksIpLcVEJIMPtXOXEal4C/pGCMMVlZ%0AWaa4uNiUlJQYj8djCgsLTXZ2tjM+oaOjw1RVVTmrroXex7S0NOPz+YwxRquwiUxDRFlCmCoSfV/H%0A1dzcbDo6Okx6erqpqakxPp/P1NTUhF12c/ny5TFLDvZgtNTUVOPxeJwv/YaGBpOdnW3y8vJMU1OT%0AqaqqSvCl5yPyAAAPwklEQVQdEpHJRpQJQb2MYmDevHls376dyspKBgcHOXDgAIWFhTz//PMsW7Zs%0AxOyoJ06cYM2aNTF5b3tA3PDwsHNs9uzZFBUVMXv2bC5dusSuXbt47bXXguY6EhEJpYQQA319fUH7%0Axl9//8Ybb/CDH/yAV155ZcRrVq9eHZP3XrduHVlZWQBs2bKF9PR0+vv7+cEPfuC0ZRj/mIlTp05R%0AW1tLW1sbbW1tMXl/EZk+lBDiqLS0lI0bN3Ljxo0RpYRNmzbF5D22bNlCf38/c+bMAeDGjRsAvPji%0Ai8451dXVXLlyhYMHD3LgwAHe97738ad/+qcxeX8RmT6UEOKktbUVgG3btpGZmcnBgweDnt+wYUNM%0A38+eojtUQ0MDnZ2dnD17lvnz52OM4Z577tF02CIywlTpjmRMEg5Mi0TgegUpKSkUFBTwjW98gw0b%0ANjgDzWLJ4/GwZcuWEcc7OjrYsGGDU52VkpLCzZs3gwaricj0oqkrkowxhrq6OgBu3rwZNLVFrJMB%0AEJQMPB4Pa9asISMjg09+8pMAFBUVsXLlSt544w0yMjKYM2dOUNISkZlrqnwTTNkSAsDatWs5efIk%0AxcXFXLx4ccR8R8uXL+fEiRMxea+srCz6+/tZunQpAL29vVRWVnLgwAGqqqp4+eWXuXbtGgsXLuTc%0AuXMAVFRUjKjSEpGpTyWEJFFQUOBsHz58mM7OTo4fP86vfvUrUlNTmTVrFgCZmZnOeSkpE/vPEbik%0Apz0S+fTp05w+fZqGhgYn2bz44ov09/fT09OD2+0mIyMDQMlARAAlhLjp7e0N2i8tLQXg+eefZ3h4%0AmPLycowxDAwM8NxzzwHBSSQa4UoXDQ0NgDVO4ezZs2RnZ7No0SLAqjYKXCt6xYoVE3pfEZleVGWU%0AAMuWLQPg1KlTuFwu8vPz6e/v5/r16yxYsMBZ8zgzMzNo8Z3xGqGLi4uD1mcAa+6jwcFB6urq2L9/%0AP9u3b+fLX/4ygBqTRaa5ZKsy2gCcBE4D7jHOWwMMAb8T53iSwsMPP8yFCxcA60v5woULfPjDH+bw%0A4cP09vaSlpYGMGIlths3boxZrRRu4rqcnByMMaxdu5b+/n5aWlrIysqiuLgYl8vlJB8RkXgmhFRg%0AN1ZSWA58GvjgKOftBDqYOiWWCevp6WHr1q309fU5VTXGGA4dOsS+ffu4efPmiBlVA9kzm4ZjJ5nQ%0AYzk5OWzduhWPx8OqVau4du0aX/va1zDGUFRUxNq1a2//g4nIlBfPL+CPAo9iJQQAe2js10LO+yNg%0AEKuU0A48H+Za06rKaDzp6emsWLGCo0ePjhhXEFqNFKns7GwWL15MbW1t0Opp69ev59ChQ2FfY1c3%0AicjUlExVRkVAYIX2O/5joedsAp7078+cb/0xVFZW8tBDDwHwjW98g3Xr1jnPBU5iZ8vLyxv3mvYk%0AeKdOnWL+/PlkZmbS09PDoUOHqK+vB6zkEOjRRx+d8GcQEQn0SeDpgP3PAE+EnLMf+Ih/+x/8rwln%0AcueMnSRNTU2mrq5u1Oe7urrMggULTGFhYdCU1z6fL2jq6/Ly8rArqNnbgSu42es1rFu3blI+o4gk%0ADlH+yE6L5uQo+YDigP1irFJCoFXAN/3b+cBG4Abw7dCL7dixw9kuKyujrKwsdpEmyM6dO8d8vrS0%0AlOHhYXp7e+np6eHxxx9n165dfPzjH6e5uZm2tjZ8Pp+zXrJt1qxZuFwuiouLGR4eZnBwkIGBAebO%0AncszzzzDk08+yYIFC5zV1exriMjU1tnZSWdnZ6LDCCsNeAu4C8gAjhC+Udn294zeyyjRiTZhGhoa%0ATFZWllmwYIFZtGiRcblcztrJHR0dZvny5c65gWsul5SUhC0hACYtLc1ZyCctLU2lBZFpiiRaIGcI%0A2AZ4gRPAPuCnwBf8DxmH1+tlz549XLt2jV/+8pe8+uqrzqI3R48eZcOGDRw/ftw5/8KFC3R0dABw%0A9OhR53hoI/TQ0BCvv/46+/fv54tf/CKHDh1yRk6Ho4V1RCSZJDrRJkTgspfFxcXGGGNSU1ONMcZk%0AZ2cbY0zQOsn2+si7d+8Ou9xmRkaGqaurc56fM2eO87qOjg5TXl4+aixjPSciyYkkKiHIbdq4caOz%0AbU9ENzQ0BMCVK1doaWnBGIPX6wVgyZIlAGzdupXdu3c7y3SmpaXR1NTE4OAglZWVzhoN8+bNIzU1%0A1ZkAb9euXbS2trJixQqn55Htc5/7HHfccUfcP7OIyHgSnWiTxtKlS8Mer6qqMh6PxxhjjMfjMR6P%0AxyxdutQ0Nzc7JYTAkoPL5XK27WvW1dWZvLy8SfssIhJfqIQwvQ0NDdHS0jLieHt7uzPCefPmzWze%0AvJknnniCRYsW0dTURENDAx/96EcBKC8v584778Tj8QDWzKgAPp+PY8eOOeMR7FXfRqNV10QkERKd%0AaJNKR0dH0L7dvtDQ0OAcs7cXLVpkUlJSTHNzs6mqqjKLFi0yHR0dzniERYsWmZqaGtPV1eUcM8aY%0A5ubmEe8jIlML03Swb6Lva9Jbs2ZN0Be6zR74FvgFX1NTY4y51Qhtq6mpMTU1NSY/P98YYzVOi8jU%0AhaqMZqacnBxnzYVAe/fuxe12s337dp555hna2tq4dOkSLpeLxx9/HK/X68x4Onv2bObPn8/58+cB%0AqyG7ra0Nt9uaqLa7u3vyPpCIyCgSnWinBI/H4wxUC/31H6ipqcmUlJSMKFHU1dUZn88XVDJwuVzx%0ACVZE4o4oSwhTZbpp/2eTWFi4cCFPP21NMzV//nx+93d/l9OnTzsL5vT09PDCCy+wdetWABYvXsyZ%0AM2ecEkK4koiIJJ9oZztVQpiG1q5dy+HDh0d9fsWKFRw/fpyWlhZyc3M5d+4cCxcuZOvWrSxcuNAZ%0A8wBWNZESgMjUFG1CiOfkdpIgYyUDuDUVts/nY+fOnZw8edKZ3C5wCU632z3uBHwiMn2ohDBD2aWE%0AwGogr9fLV77ylXETiohMDcm0QI4kMXtSvE984hM89thjADz44INs2rQJwOlZJCIzh0oIQnp6Ou3t%0A7VRWVjJ//nxnfiMRmdrUhiBRu3HjBgAFBQV4vV5OnjzJypUrOXLkSIIjE5HJpIQgjsBSgZKByMyj%0ANgRx2NNo291MNTJZZGZRG4KIyDSlXkYiIjIhSggiIgIoIYiIiJ8SgoiIAEoIEgF7Sc1A6oEkMv2o%0Al5GIyDSlXkYiIjIhSggiIgIoIYiIiJ8SgoiIAEoIIiLiF++EsAE4CZwGwq24sgk4CvwY6ALuj3M8%0AIiIyingmhFRgN1ZSWA58GvhgyDkHgRLgw8DvAU/FMZ646+zsTHQIEVGcsTMVYgTFGWtTJc5oxTMh%0ArAV+DvwCuAF8E6tEEOi9gO07gAtxjCfupso/EsUZO1MhRlCcsTZV4oxWPBNCEfB2wP47/mOhHgB+%0ACnwP+MM4xiMiImOIZ0KIdGjxP2FVJf0W8Fz8whERkbHEc+qKe4EdWG0IAI8AN4GdY7zmLayqposh%0Ax38OfCDG8YmITHdvAUsSHQRY6zW/BdwFZABHGNmo/AFuJaVS//kiIjINbQR+hvUL/xH/sS/4HwBN%0AwDGsbqeHgDWTHaCIiIiIiCSxYuD7wHGskoPd62gHVi+lH/sfG8K9eBLNAn6IVQ12AnjMf3we8C/A%0AKeCfgdyERHfLaHHuILnupy0VK57v+PeT7X7aQuPcQfLdz18AP8GK57D/WDLez18wMs4dJNf9zAUO%0AYPWGPAF8hOS8l6Fx2u24yXQvo1IArPRv34FV3fRB4FHgi4kKahSz/X/TgNeBdcAurGowsEZmfy0B%0AcYUKF2cy3k+wYvIA3/bvJ+P9hJFxJuP9PIv1pRUoGe9nuDiT7X7uBT7n304D5pKc9zJcnFHdy2Sb%0Ay6gX69cswK+wMp09diHZFvO55v+bgfWL8RLw21j/UfD/fSABcYUKFyck3/28E/gE8Ay3YkvG+xku%0AThfJdz9hZEzJeD8h/L1Llvs5F1gPfMO/PwS8S/Ldy9HihGmyQM5dWFNavO7f/wOseY/+juQonqVg%0AJa9fcquaa4F/H//fBYkJLUi4OCH57ufXgS9hdU22JeP9DBenIfnup8GaGuYN4CH/sWS8n+HihOS5%0An4uA88DfA93A08Acku9ehovTrh1Ilns5YXdg/QOxs+6vcetXWDPWB0sWc7GS1se49evb1jf54YzK%0AjrOM5Luf1UCrf7uMW3XzyXY/R4sz2e4nwPv9f+dj/SBYT/LdTwgfZzLdz9VYU+/YPSD/GvgqyXcv%0Aw8X5F1j3NVnu5YSkA17gj0Z5/i7gzUmLJjJfAf4Ea2bXAv+x9/v3k4kdZ6C7SPz9/EusaU7OAv+G%0ANcfVcyTf/QwX57Mh59xF4u9nqEeB/0Ly3c9QdpyB7iKx97MA67+3bR3wIlZ1djLdy3Bxtoeccxfj%0A3MtkqzJyYWWwE1gZzvb+gO0HSfz/cPncKnplAR/HasH/NlDvP16PNS1HIo0WZ0HAOclwP/8Mq4fZ%0AIuB3gZeBz5J89zNcnHUk37/P2UC2f3sO8JtYMSXb/RwtzmT699mL9SNgmX+/Aqva9Tsk170cLc5k%0AupdRW4dVN3uEW92kNmL9CvsJVj3YP5H4+rp7sOrpjmDF9SX/8XlY9aHJ0hVttDiT7X4G+g/c6r2T%0AbPczUBm34nyO5Lqfi7D+mx/B6r5tDwpNtvs5WpzJ9u+zBPgRVjzfwqp+TbZ7CSPjzCX57qWIiIiI%0AiIiIiIiIiIiIiIiIiIiIiIjIVPJ/Ijjnj7AG8SXCXKAhQe8tIiIhzgLvi/I1sRrxfxdTbCSpiMhU%0A9Sv/3zKgE9iPNSfN//Qf/0NgAGtk50v+Y78JvAZ0Af8La4oFsBZ2+Zr/+KewFh7pwhp1e9B/zhys%0A6Yh/iDVi/Lf9x38P+N9Ys8+eAv6r//g3saYr/zGw8/Y+qoiIjOWq/28ZcBkoxJo/6zXgPv9zgQu2%0A5AP/yq0qJDfWBIH2efZEgfOBc8Cv+/ftaQz+EtgScOxnWPP3/B7QA+RhrWr3JrDK/3qVECRh0hId%0AgEiCHMb6UgbrV/1dWIkh0L3A8oDjGSHn7As471+B/+vfv+z/+5vAb3ErcWQCC7HWAPhnbk2h/C2s%0AebwSPUGazHBKCDJTDQRsDzP6/wv/Amwe5bn3/H8No69K9TvA6ZBjHwnZdxG84I5IQiTb9NciiXYV%0AyPFv/xD4d8AH/PtzgKVhXvND4N9jlTLgVpWTF6tdwvZh/18X1lTkeVjVUZuwekD9ilvTQYtMOiUE%0AmUnMKNuBngI6sBqVz2PV9/8j1vTBrwG/EeY154H/jFX1c8R/Plgra6VjNVIfA/484L0PA8/7r3sA%0Aq9H5IlZieBM1KouIzAi/BzyR6CBEQqmEIDL5DKOXUERERERERERERERERERERERERERERESS2f8H%0A2Vp5OJ1nHCwAAAAASUVORK5CYII=" alt="" />
 

可见,斜率分布在∼0.45附近,截距在∼31附近。我们一会儿会把这个模型画出来,现在让我们看看还有没有其他信息。

通过分析MCMC样本会发现,冗余参数的选择是完全对称的(completely symmetric):就像我们可以把{gi}做冗余参数,也可以用截距和斜率做冗余参数。让我们试试看,检查一下g1和g2的后验结果,奇点标在前两个点上:

In [14]:
plt.plot(sample[:, 2], sample[:, 3], ',k', alpha=0.1)
plt.xlabel('$g_1$')
plt.ylabel('$g_2$') print("g1 mean: {0:.2f}".format(sample[:, 2].mean()))
print("g2 mean: {0:.2f}".format(sample[:, 3].mean()))
 
g1 mean: 0.64
g2 mean: 0.41
 
aaarticlea/png;base64,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%0A/NedtWz3SOmLnxSRfyAi317+/d921bgdI6Uv/rOIfMfy83dIoRx+d0ft2yX+lYj898jvjeXm+6Yc%0Afp+IfIv+/vbyu7pjXqJQTOkLxp+Tx5XBS0PquPhxEfkby7/f28SfDZHSF9ci8l0i8k5E/o2I/Jnd%0ANG3nSOmLL4rIHxKR/ySFOeUv7qZp7x0ay833bXuVOqFtfsZLFARNnulHROSnpZpI+JKQ0hd/TQpa%0AFpVifOwih+c5kNIXh1JE/N2IyO+RYof5JSnszS8JKX3xl6QwN/2wFDlS/0xE+iLyP5+uWe8tGsnN%0A9005LESkS3935XFrHDrmu5ffvTSk9IVI4YT+ohQ+h9i28kNGSl98vzwmUV5IET79OyLyj568dbtF%0ASl98SwpT0v9e/vuXUgjEl6YcUvriB0XkLy8/f1NE/oOI/AEpdlSvCR+83MwJc49I6YvvkcLm+tFO%0AW7Z7pPQF42/Ly41WSumLPygFBc2+FDuHr4lIb3dN3BlS+uIXReTt8nNHCuXxXTtq367xSUlzSH+w%0AcjMnzD2iri9+WQoH25eX/35j1w3cIVLGBfCSlYNIWl/8rBQRS18Tkb+w09btFnV9cSEFd9vHUvTF%0AT+66gTvC35XCr/J/pNg5/rS8XrmZkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGR%0AkZGRkZGRkZGRkZGRkZGRkfHS8VLJyTIydoFLKTJRvyUFh4+XrZ2RkZGR8crwD0Xk90qhJH7xmduS%0AkbFVvG/1HDIyPhR8Uoqd9/+SorLWr0lRUOXyGduUkbE1ZOWQkbEevlMKwjcRkR8SkX8tRX3ibKrN%0AeBHIyiEjYz18TUT+rxS1qn9ACm78j5+1RRkZW8T7VuwnI+NDwYUUlefOReRHn7ktGRlbx/5zNyAj%0A4wPFvRQmpB8VkS+IyImIfE6K4vVffcZ2ZWRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRk%0AZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGS8Mvx/fjb3DbrlW+IAAAAASUVORK5CYII=" alt="" />
 

这两个参数不是很相关,但是我们可以看到(g1,g2)=(1,0)是比较明显的: g1的均值大于0.5,g2的均值小于0.5。如果我们选择中间值g=0.5那么我们的算法会把g2当中奇点。

让我们来确认一下,画出原始数据的边缘化测试模型,奇点用红圈标识。

In [15]:
theta3 = np.mean(sample[:, :2], 0)
g = np.mean(sample[:, 2:], 0)
outliers = (g < 0.5) plt.errorbar(x, y, e, fmt='.k', ecolor='gray')
plt.plot(xfit, theta1[0] + theta1[1] * xfit, color='lightgray')
plt.plot(xfit, theta2[0] + theta2[1] * xfit, color='lightgray')
plt.plot(xfit, theta3[0] + theta3[1] * xfit, color='black')
plt.plot(x[outliers], y[outliers], 'ro', ms=20, mfc='none', mec='red')
plt.title('Maximum Likelihood fit: Bayesian Marginalization');
 
aaarticlea/png;base64,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" alt="" />
 

看!上面黑线显示的结果更符合我们的直觉。而且,自动被识别的奇点也是我们可以手工识别出来的。为了比较,我把之前的方法用灰线标识:简单的最大似然估计和Huber损失的频率论方法。

 

讨论

 

今天,我们讨论线性回归(linear regression)中的奇点发现问题。一个经典的正态最大似然估计方法不能解决,但是在频率论中我们能够调整损失函数来纠正,在贝叶斯理论中通过引入一堆冗余参数的混合模型来调整。

两种方法都有优缺点:频率论方法相对直接而且计算高效,但基于难以解释的损失函数。贝叶斯方法容易建立并能产生好的结果,但是要求一堆主观前提。在写代码和计算时间上耗费更多。

 

最终结论

 

在上一篇中,我讨论了两种理论的差异,并且说明在简单问题下,忽略彼此差异,二者等价。在这一篇中,我们探讨了差异的一种:冗余参数处理。

在贝叶斯台球的例子中,我们论述频率论方法不靠谱,而贝叶斯方法靠谱。这并非说频率主义是错的,但是告诉我们用它的时候得当心。

在线性回归的例子中,我们论述了一种用频率主义和贝叶斯主义解决数据奇点问题的可行方法。用稳定的频率论损失函数相对的短平快,但是其动机混乱而难以解释。用贝叶斯混合模型更费力且需要大量计算,但是能够算出完美的结果,使多个问题被一次解决:也就是,边缘化一种方式找出最佳拟合模型,边缘化另种方式找出数据奇点。

哪个更好呢?频率主义和贝叶斯主义。

答案依赖于你对两者的掌握程度,也有赖于问题的复杂度,以及可用的计算资源。我,和很多物理背景的人一样,倾向于贝叶斯方法,因为它们能够从任何基本原理派生出我想要的结果。贝叶斯主义,基于一些概率公理的代数计算,我们可以构建非常复杂的方法来解决一大堆问题。就如质-能转换可以用到任何场合,从抛物运动(projectile motion)到恒星结构(stellar structure),贝叶斯原理和贝叶斯概率解释能用来解决几乎任何统计问题:从计算赌博赔率(gambling odds)到探索噪声数据中的外星信息(exoplanet transits in noisy photometric data)。在贝叶斯模式中,你不需要花大量时间来记忆和理解频率论技巧和术语(p值,假设检验,置信区间,断点等等),就为了解决一个小问题。我认为这是一种误解:人们总觉得贝叶斯很难。相反,很多科学家觉得它更容易。

简单和优美之外,我坚定贝叶斯主义立场的深层理由是必须比较科学研究中频率论置信区间(confidence intervals)和贝叶斯可信区域(credibility regions)。这篇已经够长了,我打算下一篇(http://jakevdp.github.io/blog/2014/06/12/frequentism-and-bayesianism-3-confidence-credibility/)来讨论。(有费马之嫌~~)

这篇博客是IPython notebook写的。可以[下载](http://jakevdp.github.io/downloads/notebooks/FreqBayes2.ipynb),或者看[nbviewer](http://nbviewer.ipython.org/url/jakevdp.github.io/downloads/notebooks/FreqBayes2.ipynb)静态网页。

frequentism-and-bayesianism-chs-ii的更多相关文章

  1. The Model Complexity Myth

    The Model Complexity Myth (or, Yes You Can Fit Models With More Parameters Than Data Points) An oft- ...

  2. Word Ladder I & II

    Word Ladder I Given two words (start and end), and a dictionary, find the length of shortest transfo ...

  3. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  4. Leetcode 笔记 117 - Populating Next Right Pointers in Each Node II

    题目链接:Populating Next Right Pointers in Each Node II | LeetCode OJ Follow up for problem "Popula ...

  5. 函数式Android编程(II):Kotlin语言的集合操作

    原文标题:Functional Android (II): Collection operations in Kotlin 原文链接:http://antonioleiva.com/collectio ...

  6. 统计分析中Type I Error与Type II Error的区别

    统计分析中Type I Error与Type II Error的区别 在统计分析中,经常提到Type I Error和Type II Error.他们的基本概念是什么?有什么区别? 下面的表格显示 b ...

  7. hdu1032 Train Problem II (卡特兰数)

    题意: 给你一个数n,表示有n辆火车,编号从1到n,入站,问你有多少种出站的可能.    (题于文末) 知识点: ps:百度百科的卡特兰数讲的不错,注意看其参考的博客. 卡特兰数(Catalan):前 ...

  8. [LeetCode] Guess Number Higher or Lower II 猜数字大小之二

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...

  9. [LeetCode] Number of Islands II 岛屿的数量之二

    A 2d grid map of m rows and n columns is initially filled with water. We may perform an addLand oper ...

  10. [LeetCode] Palindrome Permutation II 回文全排列之二

    Given a string s, return all the palindromic permutations (without duplicates) of it. Return an empt ...

随机推荐

  1. mysql基本数据类型(mysql学习笔记三)

    Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符 ...

  2. vc++ 内存连续读写操作

    //初始化内存 int *data=(int*)malloc(sizeof(int)*4); ZeroMemory(data, sizeof(int)*4); int *m=(int*)malloc( ...

  3. Delphi For Android 开发笔记-附:如何Delphi中同时实现Windows、Android版的GetModuleFileName函数

    在Windows中开发DLL时,经常会需要获取当前DLL所在目录以便读取同目录下的其他文件,而目前Delphi在开发android时,其实没多大必要获取,因为整个工程只有一个so文件,而这个so文件也 ...

  4. 【转】资源文件在Delphi编程中的应用

    段东宁 计亚南 (郴州职业技术学院, 湖南 郴州  423000) 摘要: 资源文件是一种能有效地组织.管理和使用资源的文件形式,在软件开发中有着广泛的应用.本文详细介绍了在Delphi编程中资源文件 ...

  5. 第七章 管理类型(In .net4.5) 之 使用类型

    1. 概述 本章介绍 值类型的装箱拆箱.类型转换 以及 C#4.0新推出的 dynamic 关键字. 2. 主要内容 2.1 装箱和拆箱 2.2 类型转换 有四种方式可以实现类型转换: ① 隐式转换: ...

  6. Linq操作

    Linq使用Group By 1 1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述 ...

  7. DB2中ixf文件的导入导出

    1. 导出数据 语法:EXPORT TO <文件路径>/文件名.IXF OF IXF SELECT * FROM 表名   2. 导入数据 语法:db2 IMPORT FROM <路 ...

  8. Android--PullToRefreshListView 的简单使用

    原文:  http://blog.csdn.net/lmj623565791/article/details/38238749; pull-to-refresh对ListView进行了封装,叫做:Pu ...

  9. SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ...

  10. XAML特殊字符

    此部分只限制在XAML中,代码中不受此类限制. 1.特殊字符转义 XAML 特殊字符转义 特殊字符 转义 小于号 < < 大于号 > > 取址符 & & 引号 ...