Splitting one consumption good into two identical goods changes the steady state
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 57/100
Hướng nghiên cứu
Read ogcore/aggregates.py around lines 678 and 681, where the issue identifies / alpha_c in the composite-consumption price formula. First run the baseline in examples/run_ogcore_example.py and reproduce the two-good case using the provided parameter changes. Done when removing those divisions preserves the one-good result and makes the split-good calibration match the equivalent one-good steady state.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
If a multi-good calibration is built from a single-good calibration and meant to be equivalent to it, it isn't — unless χⁿ and χᵇ are recalibrated. The reason is one term in the household conditions that is not adjusted.
OG-Core master (59ad58d7), default parameters unchanged. Rows B, C, D differ only in how the single good is counted:
| p̃ | r | w | L | B | |
|---|---|---|---|---|---|
| A. one good (default) | 1.00 | 0.06285 | 1.1779 | 0.3330 | 2.4590 |
| B. two identical industries, one good | 1.00 | 0.06285 | 1.1779 | 0.3330 | 2.4590 |
| C. the good split into two equal shares | 2.00 | 0.07560 | 1.1114 | 0.3647 | 2.3098 |
| D. as C, χ quoted in the new unit (× 2^0.5) | 2.00 | 0.06285 | 1.1779 | 0.3330 | 2.4590 |
Nothing real changes in C, yet r moves 127 bp and labor 9.5%. D has the same p̃ as C; the only difference is that χ was rescaled — and the economy is back to B.
Cause. At unit prices, Eq. (20) gives p̃ = ∏ αᵢ^(−αᵢ) — 1 for one good, 2 for two equal shares. So splitting the good halves the unit of composite consumption and doubles its price. In the labor condition, Eq. (36), those two variables sit on the left side only:
$$\underbrace{w_t e_{j,s}(1-\tau^{mtrx}{s,t})}{\times 1}\cdot\underbrace{\frac{1}{\textcolor{red}{p_t}}}{\times \frac{1}{2}}\cdot\underbrace{(\textcolor{red}{c{j,s,t}})^{-\sigma}}{\times 2^{\sigma}} = \underbrace{e^{g_y(1-\sigma)}\chi^n_s\left(\frac{b}{\tilde l}\right)\left(\frac{n{j,s,t}}{\tilde l}\right)^{\upsilon-1}\left[1-\left(\frac{n_{j,s,t}}{\tilde l}\right)^{\upsilon}\right]^{\frac{1-\upsilon}{\upsilon}}}_{\times 1}$$
$$2^{\sigma}\cdot\frac{1}{2} = 2^{\sigma-1} = 1.41 \qquad (\sigma = 1.5)$$
After the split, the left side of Eq. (36) is 1.41 times what it was, even though the household is doing exactly the same thing. The right side has no consumption and no price in it, so it is the same number as before. The two sides no longer match, so the household changes how much it works until they do. The same happens to the savings conditions, Eqs. (37) and (38), through χᵇ.
Why the right side does not adjust: χⁿ and χᵇ are numbers that were calibrated when the model had one good, so they are in "one-good" units. The code uses those same numbers no matter how many goods the model has.
Fix. Make the price of composite consumption equal 1 whenever all goods cost 1, for any number of goods. That is Eq. (20) without the division by αᵢ:
$$p_t = \prod_{i=1}^{I}\left([1+\tau^c_{i,t}] p_{i,t}\right)^{\alpha_i}$$
In code: remove / alpha_c at ogcore/aggregates.py lines 678 and 681. With one good this is exactly the current formula, so nothing that works today changes. With more goods, the unit of composite consumption no longer depends on how many goods there are, so the calibrated χ keep their meaning.
Reproduce. Row A is the baseline of examples/run_ogcore_example.py. For the other rows, replace the reform's og_spec.update({"cit_rate": [[0.35]]}) with:
# B: two identical industries, one good
og_spec.update({"M": 2, "gamma": [0.35, 0.35], "epsilon": [1.0, 1.0], "gamma_g": [0.0, 0.0],
"I": 1, "io_matrix": [[0.5, 0.5]]})
# C: as B, the good split into two equal shares
og_spec.update({"M": 2, "gamma": [0.35, 0.35], "epsilon": [1.0, 1.0], "gamma_g": [0.0, 0.0],
"I": 2, "alpha_c": [0.5, 0.5], "c_min": [0.0, 0.0], "io_matrix": [[1.0, 0.0], [0.0, 1.0]]})
# D: C, plus chi in the new unit
og_spec.update({"chi_n": (np.array(p.chi_n[0]) * 2**0.5).tolist(),
"chi_b": (np.array(p.chi_b) * 2**0.5).tolist()})
- Ngôn ngữ chính
- Python
- Star
- 85
- Fork
- 153
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 22
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của PSLmodels/OG-Core
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 57/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Resource-constraint check cannot exempt the terminal period without waiving the whole pathCó thể đã có người làm @arihantlodha-cmd đã nhận 47 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
PSLmodels/OG-Core#1210 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
PSLmodels/OG-Core#1197 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của PSLmodels/OG-Core
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
SACGF/variantgrid#2791 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bot-triaged oncall: cpu inductor
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
kubescape/cel-admission-library#141 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày