如何基于CPI数据计算季度通胀率并生成Inflation Rate新变量
季度通胀率计算方案
公式修正提示
你给出的公式存在括号缺失问题,正确写法应为:Inflation Rate = (CPI_previous - CPI_current) / CPI_current
注:常规通胀率计算通常采用(CPI_current - CPI_previous)/CPI_previous * 100(百分比形式),以下代码默认按你指定的公式实现,可自行调整。
代码实现
R语言实现(计量经济常用工具)
假设数据框名为df,使用dplyr包按国家分组计算:
library(dplyr) # 按国家分组,确保时间序列有序后计算通胀率 df <- df %>% group_by(Country) %>% arrange(Year, Quarter) %>% mutate( `Inflation Rate` = (lag(CPI) - CPI) / CPI ) %>% ungroup() # 输出结果 print(df)
Python实现(Pandas工具)
假设DataFrame名为df,通过分组移位计算:
import pandas as pd # 按国家、年份、季度排序 df = df.sort_values(['Country', 'Year', 'Quarter']) # 分组获取上一期CPI并计算通胀率 df['Inflation Rate'] = (df.groupby('Country')['CPI'].shift(1) - df['CPI']) / df['CPI'] # 输出结果 print(df)
关键注意事项
- 必须保证数据按国家→年份→季度的顺序排列,否则滞后项匹配错误;
- 每组第一期(如2000Q1)无历史数据,对应通胀率会显示
NA(R)或NaN(Python),属于正常现象; - 若需百分比结果,在公式后乘以100即可。
内容的提问来源于stack exchange,提问作者jenea22
相关产品推荐
相关产品推荐

