最近,我正在读《深入浅出数据分析》这本书。

上期跟大家分享的书中主题是「实验检验理论」。

今天,我跟大家聊聊「最优化-寻找最大值」这个颇具实操性质的知识点。

‍01 统计学家的赖皮话

“一切模型都是错误的,但其中一些是有用的。”——George Box

02 约束条件与决策变量

1、我们想尽量提高利润,为此必须确保橡皮鸭和橡皮鱼的产量都正合适。我们需要您帮忙找出理想的产品组合:这两种产品我们各应该生产多少?

2、你需要哪些数据才能解决这个问题?首先,最好能够知道橡皮鸭和橡皮鱼的赢利能力,是否一种产品比另一种产品利润更高?除此之外,最好能知道约束这个问题的其他因素。生产这些产品需要多少橡胶?生产这些产品需要多少时间?

3、你需要得到有关能控制的因素和不能控制的因素的可靠数字。



4、你能控制的变量受到约束条件的限制。你最终追求的无非是利润,而找到正确的产品组合就是确定下个月利润水平的办法。但选择哪种产品组合将会受到约束条件的限制。



5、决策变量却是你能控制的因素。你可以选择生产多少只橡皮鸭,多少条橡皮鱼;在不超出约束条件的情况下,你的工作就是选择一个组合,实现最大利润。

03 目标函数与产品组合

1、为了解决一个最优化问题,你需要将决策变量、约束条件及希望最大化的目标合并成一个目标函数。你希望最大化或最小化的对象就是目标,目标函数则可以帮助你找出最优化结果。



2、现在可以试着做一些产品组合。你可以在等式中填入一些代表每种产品利润的数值,以及一些假定的数量。



3、列出有其他约束条件的产品组合。橡胶量和时间量限制了能够生产的橡皮鱼的数量,着手考虑这些约束条件的最好途径是想象一些假定的产品组合。

4、在同一张图形里绘制多种约束条件。我们可以把两种时间约束条件画在同一张图形里,图中不再用条形图代表每种产品组合,而是用虚线代表。这样的图形能够方便地同时表示两种时间约束条件。



5、我们还可以用这张图形来表示橡胶量约束条件。实际上,可以将任何数量的约束条件画在这张图形上,然后考虑有可能采用的产品组合。



6、合理的选择都出现在可行区域里。产品组合所在的由约束线围成的空间被称为可行区域。每当在图形中增加约束条件,可行区域就会发生变化,你则可以通过可行区域来找出最优点。



7、现在,你唯一需要做的就是尝试每一种可能采用的产品组合,然后看看哪一种利润最高,对吗?

8、你不必一一尝试,可以利用 Excel 函数实现。

04 用电子表格实现最优化

1、Excel 表格中函数插件「求解器」可以解决最优化的问题。只要插入约束条件,写下目标函数,其他的算术工作就交给「求解器」吧。具体方法如下:

2、制作电子表格,定义最优模型。这里有一些数字可以算出橡胶需求量,单元格“C10:C11”的公式用于计算所需要的橡胶的数量(C10=B5 *B10,C11=B6 *B11)。单元格“B20”的公式用于将橡皮鱼的数量和橡皮鸭的数量分别与相应的单件利润相乘,得出总利润(B20=B5 *B17+B6 *B18)。



3、将组成模型的元素插入 Execl,运用求解器运算。首先,点击“数据-模拟分析-规划求解”,设定你的目标单元格(B20),使其指向你的目标函数。然后,找出你的决策变量(B5:B6),将决策变量添加到“可变单元格”处。之后,添加约束条件(B13<=B14,B5<=400,B6<=300)。最后点击“求解”。



4、得出结果。想实现最大利润,只要生产 400 只橡皮鸭和 80 条橡皮鱼就行了。而且,如果你比较一下计算结果和你自己画的图,就会发现,求解器所认为的最精确点位于可行区域的外限上。





05 按照分析目标矫正假设

1、你的“分析”带来的结果:所生产的橡皮鸭没有卖光,这比你为我们估计的 2320 美元的利润要低得多。

2、你的模型告诉你如何实现最大利润,但仅仅是在你所规定的约束条件下。你的模型接近事实,但永远无法完美,有时候,这种不完美会导致问题。



3、你的分析工具不可避免地会简化实际情况,但如果你的假设和数据都是正确的,那么这些工具就相当可靠。

4、你的目标应该是尽量创建最有用的模型,让模型的不完美相对于分析目标变得无足轻重。

5、为了让你的最优化模型重新产生效果,需要加入哪些假设条件?模型中没有任何因素表明人们真正会购买此产品。这个模型描述了时间、橡胶量、利润,但得有人购买产品,模型才会生效。然而正如我们所见,实际情况并不是这样,所以,我们需要增加一个体现人们会买什么产品的假设。

6、根据橡皮鸭和橡皮鱼的历史销售数据,你发现橡皮鸭和橡皮鱼的销量似乎背道而驰,一个上升,另一个则下降。



06 提防负相关变量

1、我们不知道为什么橡皮鸭和橡皮鱼的销量看上去南辕北辙,但可以肯定它们是负相关关系。一种产品越多,就意味着另一种产品越少。



2、不要假定两种变量是不相关的。创建模型时,务必要规定假设中的各种变量的相互关系。

3、你需要增加一个新约束条件,用于估计某个月的橡皮鸭和橡皮鱼的需求量。看看这些历史销售数据,估计一下下个月的橡皮鸭和橡皮鱼的最高销量,假设下个月的销量与前几个月的销量相似。


4、再用一次「求解器」,这次加上新的约束条件。例如,如果你认为下个月售出的橡皮鱼的数量不会超过 50 条,就一定要加上一个约束条件,告诉求解器,所建议的橡皮鱼的产量不得超过 50 条。





5、新方案表现出色。每一只橡皮鸭和橡皮鱼都几乎是一离开生产线就立即卖掉了,这样一来,再没有积压的库存,客户完全有理由相信,利润最大化模型让他们心想事成。

07 你的假设立足于不断变化的实际情况

1、你所使用的所有数据都是观察数据,你无法预知未来。

2、你的模型现在是在起作用,但可能会突然失灵。你需要做好准备,以便在必要的时候重新构建分析方法,反复不断地进行构建正是分析师的工作。

3、做好修改模型的准备!

全文完