买菜记账与物价波动追踪:用 AI 看清过去一年菜篮子的通胀曲线

📅 发布时间:2026/9/17 18:53:55
买菜记账与物价波动追踪:用 AI 看清过去一年菜篮子的通胀曲线
买菜记账与物价波动追踪用 AI 看清过去一年菜篮子的通胀曲线在每一个普通的中国家庭里最能敏锐感知物价冷暖的温度计永远是老妈手里的那个菜篮子老妈从菜市场回来总会一边摘菜一边念叨今天的猪后腿肉又涨了八毛钱一斤、这几个月的鸡蛋比去年这时候便宜多了、现在的大葱真贵一根都要两块钱然而这种基于口头的物价记忆往往是碎片化、情绪化且缺乏长期数据支撑的。在家庭 Beancount 复式记账流水中过去一年我们沉淀了超过1200 张超市与菜场买菜小票涵盖了猪肉、鸡蛋、叶菜、水果等 30 多种核心生活物资的明细数据。为了给老妈的菜篮子提供一份科学、精确、具备时序预测能力的家庭微观经济学账本我设计了一套基于 Beancount 商品单价时间序列提取 局部加权回归LOWESS物价指数分析流水线。flowchart TD LedgerHistory[过去 365 天家庭 Beancount 账本流水 (1200 张买菜小票)] -- PriceExtractor[单品单价时序抽取引擎:\n提取 (日期, 品名, 物理规格, 实付单价)] PriceExtractor -- TimeSeriesData[(构建家庭生鲜商品单价时序库)] TimeSeriesData -- CPI_Calculator[家庭专属定制菜篮子物价指数 (Family CPI) 计算] CPI_Calculator -- SeasonalTrend[季节性周期波动与节前物价峰值预警] SeasonalTrend -- SmartShopping[智能采购建议: 鸡蛋处于近一年价格低谷, 可适量多储备]家庭菜篮子物价指数Family CPI的计算模型不同于国家统计局宏观统计的全国 CPI家庭专属 CPI 必须以自家餐桌的真实消费权重为基准确定家庭核心篮子权重Basket Weights$\omega_i$猪肉25%、鸡蛋15%、绿叶蔬菜20%、豆制品15%、当季水果25%。拉氏物价指数Laspeyres Price Index计算$$L_t \frac{\sum_{i1}^n P_{i,t} \cdot Q_{i,0}}{\sum_{i1}^n P_{i,0} \cdot Q_{i,0}} \times 100$$以去年同期的商品价格作为基期 $P_{i,0}$精确计算出当下家庭真实的物价涨跌波动率。季节性价格周期分解Seasonal Decomposition剥离中秋、春节等节日效应带来的短期尖峰还原出商品供求关系的真实价格中枢。基于 Python 的单品物价提取与回归分析import re import numpy as np from datetime import datetime from collections import defaultdict from typing import List, Dict, Tuple class FamilyPriceTrendTracker: def __init__(self, beancount_file_path: str): self.file_path beancount_file_path self.item_price_history defaultdict(list) def parse_ledger_prices(self): # 正则提取形如: Expenses:Food:Groceries:Meat 45.60 CNY ; 鲜五花肉 (1.2kg, 38.0元/kg) pattern re.compile( r(\d{4}-\d{2}-\d{2})\s\*\s([^])\s([^])\n r\sExpenses:Food:Groceries:\w\s([\d\.])\sCNY\s;\s([^\(\n])(?:\(([\d\.])\s*元/([^\)\n])\))? ) with open(self.file_path, r, encodingutf-8) as f: content f.read() for match in pattern.finditer(content): date_str, payee, desc, total_amount, item_name, unit_price, unit match.groups() item_name item_name.strip() if unit_price: price float(unit_price) self.item_price_history[item_name].append((date_str, price)) def get_price_summary(self, item_name: str) - Dict[str, float]: history self.item_price_history.get(item_name, []) if not history: return {} prices [p[1] for p in history] current_price prices[-1] min_price min(prices) max_price max(prices) avg_price sum(prices) / len(prices) # 波动率评估 volatility_pct ((max_price - min_price) / avg_price) * 100 return { current_price: current_price, min_price: min_price, max_price: max_price, avg_price: round(avg_price, 2), volatility_pct: round(volatility_pct, 1) }实测一年的物价发现与智慧采购在分析了过去一年的小票数据后系统向老妈呈现了一份有趣的生活洞察猪肉单价在去年 11 月达到最低点14.5 元/斤今年 8 月缓慢上涨至 18.2 元/斤上涨 25.5%鸡蛋单价在每年春夏之交4~5月处于稳定低谷4.2 元/斤秋冬由于产蛋率下降会自然上升 15%老妈的买菜能力老妈在早市上买到的生鲜单价平均比社区精品生鲜超市便宜 22.4%老妈戴着眼镜看完了这张折线图骄傲地拍了拍胸脯看看我就说我每天起早去菜市场能省下不少钱吧这电脑算出来的账单真解气烟火气里的微观经济学宏观经济学的指标再宏大最终都会具象化为老百姓厨房案板上的每一勺油盐、每一斤肉菜。用严密的数据分析记录下一家人一粥一饭的物价变迁肯定长辈在柴米油盐里的辛劳与精明这便是科技赋予平凡生活最温柔的敬意。