目录

99.23 金融难点通俗解释:小卖部经营比喻PPI(生产者物价指数)vsCPI(消费者物价指数)

目录

    • [0. 承前](#0. 承前)
    • [1. 简述:价格指数对比](#1. 简述:价格指数对比)
    • [2. 比喻:两大指数对比](#2. 比喻:两大指数对比)
      • [2.1 简单对比](#2.1 简单对比)
      • [2.2 生动比喻](#2.2 生动比喻)
    • [3. 实际应用](#3. 实际应用)
      • [3.1 价格传导现象](#3.1 价格传导现象)
    • [4. 总结](#4. 总结)
    • [5. 有趣的对比](#5. 有趣的对比)
    • [6. 数据获取实现代码](#6. 数据获取实现代码)
    • [7. 数据可视化实现代码](#7. 数据可视化实现代码)

0. 承前

本文主旨:

本文使用小卖部比喻PPI和CPI,目的是让大家对这两个知识点有一个更加通俗易懂、贴近生活的理解。并用数据实证了CPI和PPI的价格传导之谜:为什么进货价涨了10%,零售价却不敢跟着涨这么多?这个困扰着小卖部老板的问题,恰好反映了CPI和PPI的微妙关系。

数据显示,2023-2024年间,生产者价格指数(PPI)的波动幅度明显大于消费者价格指数(CPI)。这种"不完全传导"现象,正是市场竞争下商家利润调节的结果,也展现了宏观经济中价格传导的真实状态。

如果想更加全面清晰地了解金融资产组合模型进化论 的体系架构,可参考:
0. 金融资产组合模型进化全图鉴

1. 简述:价格指数对比

  • PPI含义:侧重于生产者层面的价格变化,展示了企业出售其产品时所面临的价格波动,这些波动可能会间接影响到消费者价格。比如:小卖部进货时的价格变化。
  • CPI含义:关注的是消费者层面的价格变化,直接反映了普通家庭的生活成本变化。比如:小卖部卖给同学时的价格变化。

2. 比喻:两大指数对比

2.1 简单对比

  • PPI关注"进货价格变化"

    小明的小卖部进货价格变化:
    薯片批发价:2元→2.2元(涨10%)
    饮料进货价:1元→1.1元(涨10%)
    文具采购价:5元→5.5元(涨10%)

    PPI上涨10%
    含义:进货成本普遍上涨10%

  • CPI关注"售价变化"

    小明的小卖部售价变化:
    薯片售价:3元→3.2元(涨6.7%)
    饮料售价:2元→2.1元(涨5%)
    文具售价:8元→8.4元(涨5%)

    CPI上涨约6%
    含义:同学们买东西要多花6%

2.2 生动比喻

  • PPI就像问:

    "进货时要多花多少钱?"

    • 批发市场的价格变化
    • 工厂发货价的变化
    • 还没加上店铺利润
  • CPI就像问:

    "同学们买东西要多花多少钱?"

    • 小卖部标价的变化
    • 实际购买价的变化
    • 已经包含店铺利润

3. 实际应用

3.1 价格传导现象

复制代码
进货价格上涨(PPI上涨):
- 薯片批发价涨了1角
- 饮料进价贵了1毛
- 文具采购成本增加

售价变化(CPI变化):
- 可能立即涨价
- 可能暂时不涨
- 可能部分涨价

4. 总结

复制代码
关注点:
- PPI看"进货贵了多少"
- CPI看"卖价涨了多少"

就像小卖部:
- PPI是批发市场的价格变化
- CPI是小卖部标价的变化

5. 有趣的对比

复制代码
小明的小卖部:
进货价(PPI)涨了10%:
- 以前进100元的货
- 现在要花110元

售价(CPI)涨了6%:
- 以前卖3元的薯片
- 现在卖3.2元

这就说明:
- 虽然进货价涨得多
- 但售价涨得少
- 小明承担了部分成本上涨

6. 数据获取实现代码

通过以下代码可以获取PPI和CPI数据。

python 复制代码
# 导入tushare
import tushare as ts

def get_cpi_data(start_m, end_m):
    """
    获取CPI数据
    
    参数:
    start_m: 开始月份,格式:'YYYYMM',如'202401'
    end_m: 结束月份,格式:'YYYYMM',如'202412'
    
    返回:
    DataFrame: CPI数据,包含月份和同比等信息
    """
    try:
        # 初始化pro接口
        pro = ts.pro_api('token')
        
        # 获取CPI数据
        df_cpi = pro.cn_cpi(start_m=start_m, end_m=end_m)
        
        return df_cpi
    
    except Exception as e:
        print(f"获取CPI数据失败: {e}")
        return None

def get_ppi_data(start_m, end_m):
    """
    获取PPI数据
    
    参数:
    start_m: 开始月份,格式:'YYYYMM',如'202401'
    end_m: 结束月份,格式:'YYYYMM',如'202412'
    
    返回:
    DataFrame: PPI数据,包含月份和同比等信息
    """
    try:
        # 初始化pro接口
        pro = ts.pro_api('token')
        
        # 获取PPI数据
        df_ppi = pro.cn_ppi(start_m=start_m, end_m=end_m)
        
        return df_ppi
    
    except Exception as e:
        print(f"获取PPI数据失败: {e}")
        return None

注意:token需要自行申请。

7. 数据可视化实现代码

使用以上代码中的两个函数,结合以下代码,可实现数据可视化:

python 复制代码
import matplotlib.pyplot as plt
import pandas as pd

def plot_cpi_ppi_trend(start_m, end_m):
    """
    Plot CPI and PPI YoY trends
    """
    # Get data
    cpi_data = get_cpi_data(start_m, end_m)
    ppi_data = get_ppi_data(start_m, end_m)
    
    if cpi_data is None or ppi_data is None:
        return
    
    # Create figure
    plt.figure(figsize=(12, 6))
    
    # Plot CPI YoY
    plt.plot(cpi_data['month'], 
             cpi_data['nt_yoy'],
             marker='o',
             color='#FF6B6B',
             linewidth=2,
             label='CPI YoY(%)')
    
    # Plot PPI YoY
    plt.plot(ppi_data['month'], 
             ppi_data['ppi_yoy'],
             marker='s',
             color='#4ECDC4',
             linewidth=2,
             label='PPI YoY(%)')
    
    # Set title and labels
    plt.title('CPI vs PPI YoY Trends (2023-2024)', fontsize=14, pad=15)
    plt.xlabel('Month', fontsize=12)
    plt.ylabel('YoY Change Rate(%)', fontsize=12)
    
    # Rotate x-axis labels
    plt.xticks(rotation=45)
    
    # Add grid
    plt.grid(True, linestyle='--', alpha=0.3)
    
    # Add legend
    plt.legend(loc='best', fontsize=10)
    
    # Add zero line
    plt.axhline(y=0, color='gray', linestyle='--', alpha=0.5)
    
    # Adjust layout
    plt.tight_layout()
    
    # Show plot
    plt.show()

# Example usage
if __name__ == "__main__":
    # Set time range
    start_m = '202301'
    end_m = '202401'
    
    # Plot trends
    plot_cpi_ppi_trend(start_m, end_m)

数据可视化结果:

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
四口鲸鱼爱吃盐19 分钟前
CVPR2024 | TT3D | 物理世界中可迁移目标性 3D 对抗攻击
人工智能·深度学习·机器学习·3d·对抗样本
琑951 小时前
Next.js项目MindAI教程 - 第四章:用户认证系统
开发语言·javascript·数据库·人工智能·mysql·typescript·node.js
pen-ai1 小时前
【NLP】 8. 处理常见词(Stopwords)的不同策略
人工智能·自然语言处理
爱吃泡芙的小白白2 小时前
模型评估——acc、P、R、F值、交叉验证、K折交叉验证
机器学习·模型评估·模型训练·acc、p、r、f值·k折交叉验证
程序趣谈3 小时前
算法随笔_74: 不同路径_1
数据结构·python·算法
乱世刀疤4 小时前
AI绘画软件Stable Diffusion详解教程(11):图生图进阶篇(局部用上传蒙版重绘)
人工智能·ai作画·stable diffusion
Cheng_08294 小时前
LLM自动化评测
python
朱剑君4 小时前
用Python打造AI玩家:挑战2048,谁与争锋
人工智能·python
东临碣石825 小时前
【AI论文】MM-Eureka:基于规则的大规模强化学习探索视觉“啊哈”时刻
人工智能
JM丫5 小时前
python基础
笔记·python