前几天晚上我盯着屏幕发呆,屏幕上是一个我让 AI 帮我生成的粒子星系动画。几千个光点在黑色背景里旋转,四条旋臂从中心螺旋伸出来,蓝紫色的内核慢慢过渡到金色的边缘,像真的银河系一样。
我盯着看了一会,突然脑子里冒出一个念头:我卖调料这么多年,那些销量数据摊开来看,怎么感觉也是这个形状。
你仔细想想,一家调味品批发商的日常数据,看起来是杂乱无章的一串数字。今天卖出 200 包火锅底料,明天只出了 30 包,后天突然跳到 500 包,跟宇宙里随机分布的恒星没什么两样。
但只要你把时间轴拉长——三个月,半年,一年——那些数字里会慢慢浮现出结构来。就像星系的旋臂,平时看不见,一旦你退后一步,整个图案就清楚了。
从「感觉」到「看见」
我以前也不是什么数据派。我是个卖调料的,武汉农贸市场里长大,后来自己开了档口,每天进货出货、算账收款,哪懂什么数据分析。
转折点是去年。有一天我突然发现,我一直在凭感觉进货——感觉冬天到了火锅底料应该好卖,感觉夏天来了凉拌汁应该走量大。但「感觉」这个东西,有时候准,有时候真的不准。
准的时候觉得自己是天才,不准的时候,库房里堆着几百件过期的货。那感觉,你懂的。
所以我开始琢磨,能不能用一点简单的方法,把那些「感觉」变成看得见的东西。我就是用 Python,很简单的那种——pandas 读个 Excel,matplotlib 画个图。没什么高深的。工具不重要,重要的是你开始去看了。
第一条线索:天气和销量
我第一个想搞清楚的问题是——天气和销量之间,到底有没有关系。这个直觉每个做批发的都有。天冷卖火锅底料,天热卖凉拌汁,这是常识。但常识和证据之间是有一段距离的。
我把过去两年的销售记录翻出来,从网上找了武汉这几年每天的气温数据,两个表一合并,画散点图。结果出来的时候,我自己都愣了一下。
真的有相关性,而且比我想象的还要明显。气温低于 10 度的时候,火锅底料和辣椒面的销量,平均比气温 25 度以上时高出差不多 60%。这个 60% 不是我拍脑袋想的,是跑回归跑出来的。R² 虽然不高,大概 0.3 多一点,但趋势是清楚的。
但更有意思的事情在后面。
藏在残差里的节奏
我把每天的数据点按时间顺序连起来,画成一条折线。然后用滑动平均把大趋势抹出来,再把实际销量减去这条趋势线,得到所谓的「残差」——那些不能被大趋势解释的部分。
你猜我在残差里看到了什么?
周期性。大概每 30 到 40 天,会有一个小波峰,然后回落,然后再起来——像个呼吸的节奏。
我一开始以为是噪声,后来仔细想了想,这特么不全是噪声。每个月的月底,餐馆会集中进货,备下个月的货。这个节奏顺着供应链往上游传,传到我这里,就是每隔一阵子突然来一波订单,然后平静几天,再又一波。这个节奏,就是我数据里的旋臂。
星系比喻不是一个修辞
星系里的旋臂是怎么形成的?天体物理学家会告诉你——是密度波。恒星并不是固定在旋臂里的,它们绕着银河中心转,穿过旋臂。旋臂本身是一种密度更高的波,恒星进去时速度慢一点,出来时快一点,所以在旋臂那里会「堵车」,看起来亮一点。
翻译成人话:旋臂不是一个固定的结构,它是一个规律,一个模式。星星来来去去,但那个螺旋的形状一直在。
你的销量数据也是一样。具体的每一笔订单,就像星系里的某颗恒星。今天张三来买了 50 包鸡精,明天李四来拉了 200 瓶醋——单看任何一笔,都是随机的。但你把几千笔订单放在一起看,那些重复出现的模式,就是你的旋臂。
四条旋臂
我自己的数据里,到现在辨认出了四条旋臂。跟银河系竟然刚好一样——当然这只是巧合。
| | 11 月到次年 2 月,12 月是全年最高点。12 月平均销量是全年月均的 1.8 倍,8 月最低,只有 0.6 倍。 |
| | 春节前两周、端午前一周、中秋前两周出现脉冲式高峰。2023 到 2024 年,节日采购峰值在变大。 |
| | 每月 25 到 30 号可识别小高峰。R² 只有 0.15,但稳定出现在大多数月份。 |
| | 三天内降温超 8 度,5 到 7 天后火锅类产品销量有可测量的跳升。还不能完全解释,但数据里它就在那里。 |
🖼 图片:四条旋臂标注示意图
核心、旋臂、外围
星系不止有旋臂。银河系中间有一个亮得发白的核心,恒星密度最高,旋臂从核心伸出来,外围越来越稀疏,直到消失在黑暗里。这个结构,在你的生意数据里也有对应。
核心部分,就是你的基本盘——不管季节怎么变,总有人要买的东西。对我来说是生抽、老抽、味精、食盐。需求弹性很小,构成时间序列里稳定的基线。
旋臂,是围绕核心的波动,有波峰有波谷,但不会脱离核心。
外围,是偶尔卖一点、大部分时候不动的产品。某些小众香料、进口调料——稀疏,遥远,但也是整个系统的一部分。
扰动会恢复
我刚开始做数据分析时满脑子想的是预测——下个月卖多少,下个星期进多少货。这个思路没错,但容易让你盯着细节而看不见结构。
后来我换了角度:不去预测具体数字,而是先搞清楚数据里有哪些结构。哪条旋臂现在是活跃的,哪条在消退。
2024 年 3 月,我有一段销量突然掉得很厉害,比模型预测少了快 30%。我一开始以为是模型坏了,后来才发现——是一家连锁餐厅那个季度换了供应商,少了一家大客户。
如果你只看原始销量曲线,它就是一个 outlier,一个该被剔除的异常值。但把它放进星系的框架里看,它就是一个扰动——核心还在那里,旋臂还会回来。
果然,那个月丢掉的销量,在接下来的两个月里慢慢回来了。不是那家餐厅回来了,是其他客户的订单慢慢填补了缺口。
暗物质:数据里看不见的引力
这个比喻最让我着迷的地方是暗物质。天文学家说,星系里我们能看见的物质——恒星、气体、尘埃——只占总质量的不到 20%。剩下的 80% 是暗物质,看不见,但通过引力影响一切。没有它,旋臂根本维持不了那个形状。
你的生意里也有暗物质。
口碑、店主的信任、同行之间的闲话、某个大厨在背后跟别人说你家的花椒质量稳定——这些东西不直接出现在销量数据里,但它们在幕后拉着一切。
我有一个做了十二年川菜的客户,进货量不是最大的,但他从来不换供应商。他会跟别的厨师推荐我。这些推荐带来的新客户,你很难在数据里直接追溯到源头。这就是生意里的暗物质。
我试过一个粗糙的方法——给每个大客户标注「影响力分数」。初始值都是 1。如果知道客户 A 介绍了客户 B,A 加 0.5;如果 A 连续六个季度稳定进货,再加 0.3。这个分数当然非常主观,但它给了我一个视角,去看那些「数据之外」的东西。
有个做湘菜的大哥,进货量在所有客户里排不进前十,但他的影响力分数是最高的。他跟好几个新开张的餐馆老板熟——他的推荐比我发传单管用多了。这些东西,不藏在销量数字里,但藏在星系的引力场里。
退后一步,把自己当成天文学家
我今天聊这个,不是想讲天文学,也不是想教 Python。我是真的觉得——换个角度看数据,有时候比多跑几个模型更有用。
我们这些做传统生意的,每天的流水、订单、库存,在大多数时候就是数字。记在账本上,存在手机里,最多月底看看赚了多少。
但如果你愿意退后一步,把自己当成天文学家,那些数字就不再是一串流水账——它们变成了一片星空。有些星星组成了星座,有些是流星转瞬即逝,有些区域特别亮说明那里有东西,有些区域一片黑暗但你知道它在拉扯一切。
这个视角一旦有了,你就回不去了。
我现在每个月底做复盘,不再只看「这个月比上个月多卖了没」。我把过去 12 个月的数据拉出来,看看哪条旋臂现在往上走、哪条往下走、有没有新的扰动出现、基本盘还稳不稳。
我自己用的工具说出来都不好意思——pandas 加 matplotlib,偶尔用一下 seaborn。全部代码不超过 200 行,跑在一个我花了两个晚上配置好的 Jupyter Notebook 里。
给你的建议
先别急着预测,先别急着找 AI 帮你算下个月卖多少。先把你的数据画出来,时间轴拉长——三个月不行就半年,半年不行就一年。然后盯着那条线看,问自己:这里有没有规律?那里有没有周期?哪些是每次都出现的,哪些是一次性事件?那些反复出现的,就是你的旋臂。
找到它们之后,很多事情会变得清楚一点。不是全部清楚,但至少你不再是在完全黑暗里做决策了。我用这个方法,去年年底备货的准确率比前年提高了大概 25%。库房里堆积的过期货明显少了——这个我不用算也知道。
最后
我们活在数据里,但数据不是冷冰冰的数字。数据是人,是选择,是一家家餐馆每天开门关门背后那些具体的决策。你看到的销量曲线,其实是几百个陌生人的集体行为叠在一起的结果。
这个想法,每次想到都会觉得有点震撼。
那些光点,每一颗都是一个人在某个时刻做了一个决定。然后它们聚在一起,变成了旋臂,变成了结构,变成了你可以依靠的东西。时间。流逝的本身。
如果觉得不错,点个「在看」、转发吧。谢谢你看我的文章,我们下次再见。
作者:航源
投稿或爆料:3559198105@qq.com