DSGE筆記系列3:Dynare基本應(yīng)用(3)

\text{DSGE筆記系列 3}

此文內(nèi)容為《動(dòng)態(tài)隨機(jī)一般均衡(DSGE)模型》的筆記,李向陽(yáng)老師著,清華大學(xué)出版社出版。

我只將個(gè)人會(huì)用到的知識(shí)作了筆記,并對(duì)教材較難理解的部分做了進(jìn)一步闡述。為了更易于理解,我還對(duì)教材上的一些部分(包括代碼和正文)做了修改。

僅供學(xué)習(xí)參考,請(qǐng)勿轉(zhuǎn)載,侵刪!


\S \text{ 第3章 } \S

\text{Dynare基本應(yīng)用(3)}


上一篇有關(guān)Dyanre的文章為大家介紹了有關(guān)log-levelDynare解的表示計(jì)算結(jié)果的保存等一系列內(nèi)容。在這篇文章,我會(huì)總結(jié)有關(guān)DSGE確定性模擬技術(shù)。

3.8 確定性模擬

確定性模擬隨機(jī)模擬是模型分析的重要內(nèi)容和方法,是在參數(shù)估計(jì)和模型求解之后必須要進(jìn)行的操作。不論是確定性模擬還是隨機(jī)模擬,都必須是模型結(jié)構(gòu)參數(shù)已知并且模型已經(jīng)被求解的基礎(chǔ)上才能進(jìn)行的。

在開(kāi)始模擬之前,還有一些準(zhǔn)備工作:

  • 首先,在大多數(shù)情況下,不論是確定性模擬還是隨機(jī)模擬,都需要提供初始條件(Initial Condition),某些情況下還需要提供終止條件(Terminal Condition)。

初始條件和終止條件一般是指內(nèi)生變量和外生變量的初值終值。

  • 另外,根據(jù)問(wèn)題分析的需要,指定外生沖擊的變化特征包括外生沖擊的大小、外生沖擊的方差、外生沖擊的持續(xù)周期等。

3.8.1 初始條件終止條件

一般來(lái)說(shuō),初值設(shè)定的目標(biāo)有兩個(gè):

  • 為隨機(jī)模擬和確定性模擬的計(jì)算提供穩(wěn)態(tài)值,提供一個(gè)初始的出發(fā)點(diǎn)

通常,如果模型的內(nèi)生變量穩(wěn)態(tài)很容易求出,則可以直接將穩(wěn)態(tài)值作為初值,這樣會(huì)提升計(jì)算效率

  • 為確定性模擬提供初值

終值的設(shè)定并不是專指設(shè)定模擬后各期的值。如果設(shè)置終值,它會(huì)覆蓋初值的部分設(shè)定

在Dynare中,模擬始于第1期,在模擬開(kāi)始之前的一期為第0期,模型開(kāi)始之前的第2期為負(fù)1期,以此類推。初值就是第0期及以前各期的值,終止即T+1期及以后各期的值。

假設(shè)總模擬期數(shù)是 T,模擬期是指 1T 期,模擬后的第一期是指 T+1 期。一般情況下,Dynare在儲(chǔ)存模擬結(jié)果(確定性模擬)時(shí),不僅考慮模擬器,而且考慮模擬前和模擬后各一期,因此一共有 T+2 期。所以,如果畫(huà)此模擬路徑,則往往會(huì)首尾出現(xiàn)跳躍的情況。這是因?yàn)樵O(shè)定值通常和模擬計(jì)算的結(jié)果存在較大的差異。

在Dynare中,設(shè)定初值和終值分別使用關(guān)鍵字 initvalendval,并使用 end 關(guān)鍵字結(jié)束初值和終值的設(shè)定,如下表3.5所示。一般來(lái)說(shuō),所有內(nèi)生變量和外生變量都要設(shè)定初值,否則默認(rèn)為0;而終值設(shè)定則不是必須的。

在確定性模擬中,使用 initval 模塊設(shè)定初值是對(duì) 第0期 及其之前的各期設(shè)定取值。沒(méi)有使用 endval 模塊時(shí), initval 模塊設(shè)定的初值將作為模擬后各期的取值,同時(shí)也作為模擬計(jì)算的初值。理解這一點(diǎn)非常重要!

如果 initval 模塊后緊接著 steady 命令,那么 initval 模塊的作用將發(fā)生變化:

  • 首先,steady命令將使用 initval 模塊提供的初值作為初始猜測(cè)值以計(jì)算穩(wěn)態(tài)

  • 然后,Dynare將剛剛計(jì)算的穩(wěn)態(tài)值作為模擬的初值

如果使用 endval 模塊設(shè)定終值,將會(huì)覆蓋部分 initval 的功能:終值優(yōu)先用于設(shè)定模擬后各期的值,而不管 initval 的初始如何設(shè)定。如果某些變量在 endval 中沒(méi)有設(shè)定,那么其取值于上一個(gè) initval 模塊或 steady 命令穩(wěn)態(tài)值。

此外,當(dāng) steady 命令結(jié)合 initvalendval 同時(shí)使用時(shí),Dynare輸出兩個(gè)穩(wěn)態(tài)值,這是分別給予初始和終值的設(shè)定計(jì)算出來(lái)的。如果兩個(gè)模塊中的外生變量的值有差異,那么兩個(gè)穩(wěn)態(tài)值一般不同。initval 模塊對(duì)應(yīng)的穩(wěn)態(tài)值被設(shè)定為初值,endval 模塊對(duì)應(yīng)的穩(wěn)態(tài)值被設(shè)定為終值。


3.8.2 穩(wěn)態(tài)求解命令:steady

計(jì)算穩(wěn)態(tài)值是非線性模型求解的一個(gè)非常具有挑戰(zhàn)性的問(wèn)題。在Dynare中,steady命令被用來(lái)求解模型的穩(wěn)態(tài)值。

具體來(lái)說(shuō),steady命令使用一個(gè)非線性的牛頓遞歸算法,以 initvalendval 模塊中聲明的內(nèi)生和外生變量的值作為初始值來(lái)求解穩(wěn)態(tài)。

通常來(lái)說(shuō),較為復(fù)雜(甚至簡(jiǎn)單)的模型,Dynare都無(wú)法準(zhǔn)確地求出穩(wěn)態(tài)值,這可能是因?yàn)槌跏贾惦x穩(wěn)態(tài)值太遠(yuǎn),或默認(rèn)求解的遞歸算法并不合適。經(jīng)驗(yàn)表明,完全依靠Dyanre來(lái)計(jì)算模型的穩(wěn)態(tài)值,幾乎行不通。所以,求解模型的穩(wěn)態(tài)值,大部分只能靠手動(dòng)編程實(shí)現(xiàn)。

在Dynare具體編程時(shí),穩(wěn)態(tài)求解通常采取以下幾種常見(jiàn)的模式:

  • 方法一:自定義穩(wěn)態(tài)參數(shù)

    這是最常用的方法,特別合適中小規(guī)模的模型,而且要求穩(wěn)態(tài)值能夠方便地計(jì)算,具有解析解。使用這種處理方式,允許方便地循環(huán)調(diào)用模型文件來(lái)進(jìn)行某個(gè)或某些參數(shù)的敏感性測(cè)試。其基本邏輯是:

    • 對(duì)每一個(gè)內(nèi)生變量定義一個(gè)穩(wěn)態(tài)參數(shù),比如消費(fèi) C ,定義穩(wěn)態(tài)參數(shù)為 Css

    • 然后編程計(jì)算Css 的值,這要求內(nèi)生變量的穩(wěn)態(tài)值具有解析式。

    • 然后 initval 模塊直接將 Css 的值賦給 C 即可

    直接將穩(wěn)態(tài)值賦給內(nèi)生變量,省去了Dynare自行求解穩(wěn)態(tài)值的繁瑣過(guò)程。在源代碼 20中,甚至直接省去了 steady 命令,直接使用 stoch_simul 命令來(lái)計(jì)算穩(wěn)態(tài)值:

    var C ...;
    varexo epsA;
    parameters alpha beta ...;
        
    model;
    ...;
    end;
             
    initval;
    C = Css;
    ...;
    end;
         
    stoch_simul;
    
  • 方法二:內(nèi)置模塊命令 steady_state_model

    穩(wěn)態(tài)計(jì)算的內(nèi)置模塊命令提供了更加靈活、可靠的穩(wěn)態(tài)值計(jì)算方式,這是計(jì)算穩(wěn)態(tài)的第二個(gè)辦法。相比于第一種方法,此方法更為便捷,甚至不需要自行定義任何穩(wěn)態(tài)參數(shù)。在某些情況下,此命令十分有用。

    這種方法的局限性在于,該方法同樣要求內(nèi)生變量穩(wěn)態(tài)值具有解析解的形式或數(shù)值求解。也即同樣只適用于中小模型。對(duì)于不具有解析解求解穩(wěn)態(tài)非常困難的模型,不推薦使用。

  • 方法三:外部M文件

    對(duì)于復(fù)雜的模型,通常使用自定義的外部穩(wěn)態(tài)計(jì)算文件是一種選擇,也是穩(wěn)態(tài)計(jì)算的第3種方法。使用外部M文件,通常需要遵循一定的約定:

    • 首先,外部M文件的名稱必須滿足形式filename_steadystate.m

    • M文件的書(shū)寫(xiě)必須遵循一定的格式

    在教材的 5.8 金融加速器與隨機(jī)波動(dòng)模型示例 會(huì)對(duì)外部M文件技術(shù)進(jìn)行講解。


3.8.3 確定性模擬

確定性模擬(\text{Deterministic Simulation})具體而言就是說(shuō):通過(guò)外生沖擊的確定性變化過(guò)程來(lái)考察系統(tǒng)的變化。即,系統(tǒng)是如何返回原來(lái)的均衡的或者如何達(dá)到另外一個(gè)新均衡的。

比如,在某一期或第幾期突然施加一個(gè)外生沖擊來(lái)考察各內(nèi)生變量在外生沖擊發(fā)生后的變化路徑和趨勢(shì),畫(huà)出脈沖響應(yīng)圖,以直觀觀測(cè)外生沖擊的影響。

1 確定性「模型」和隨機(jī)「模型」
  • 確定性模型是指(1)模型中不存在隨機(jī)的外生沖擊 (2)存在外生沖擊,但其實(shí)完全可見(jiàn)。也就是所說(shuō)的完全信息。

  • 隨機(jī)模型是值模型中存在隨機(jī)的外生沖擊,形式上模型不僅存在期望算子和外生沖擊的概率分布,而且外生沖擊的方差不能為0。

區(qū)別確定性模型和隨機(jī)模型的一個(gè)關(guān)鍵的判斷標(biāo)準(zhǔn)就是對(duì)外生沖擊的定義。以下舉例說(shuō)明:假設(shè)模型中存在一個(gè)外生的技術(shù)沖擊變量,\{\epsilon_t \}_{t=0}^T 滿足獨(dú)立同分布,

  • 第一,如果 \epsilon_t=0,t=0,1,\cdots,T ,此時(shí)完全沒(méi)有外生沖擊,是確定性模型

  • 第二,如果 \epsilon_0=0,\epsilon_1=0.02,\epsilon_t=0,t=2,\cdots,T,外生沖擊被完全預(yù)期,是確定性模型

  • 第三,如果 \epsilon_t \sim N(0,{0.01}^{2}), t=0,1,\cdots,T,則外生沖擊不能被完全預(yù)期,是隨機(jī)模型

2 確定性模擬的4種類型

根據(jù)外生沖擊的:

  • 可預(yù)期性

  • 變化長(zhǎng)短類型

可以將確定性模擬分成4個(gè)類型,這需要通過(guò)Dyanre的幾個(gè)命令:

  • 初值命令 initval

  • 終值命令 endval

  • 沖擊命令 shocks

  • 模擬命令 simul

的組合才能實(shí)現(xiàn)。見(jiàn)表3.6

3 外生沖擊模塊設(shè)定:shocks

在Dynare中,外生沖擊是指由 varexo 定義的變量。確定性模擬使用外生沖擊模塊設(shè)定外生沖擊的暫時(shí)性變化,而永久性變化則需要 endval 模塊來(lái)定義。

確定性模擬和隨機(jī)模擬的外生沖擊設(shè)定方式在Dyanre中不完全相同,如表3.7所示:

從語(yǔ)法看,也可以悟出隨機(jī)模擬的內(nèi)在含義:由于沒(méi)有 periods 關(guān)鍵字以指定外生沖擊出現(xiàn)的時(shí)間,所以外生沖擊每一期都存在,而且是隨機(jī)抽取。

這有別于脈沖響應(yīng)函數(shù)。因?yàn)槊}沖響應(yīng)函數(shù)計(jì)算時(shí),雖然也要隨機(jī)模擬,但外生沖擊僅發(fā)生在第一期,以后各期為0。

4 Dynare確定性模擬命令:Simul

Simul命令根據(jù)既定設(shè)置,求解非線性聯(lián)立方程,得到模擬值。首先分析simul的求解邏輯,然后再分析simul命令的語(yǔ)法。

(1) 求解邏輯

一般來(lái)說(shuō),確定性模型具有以下的一般形式:

f(y_{t+1},y_t,y_{t-1},U_t)=0

其中,y_t 為內(nèi)生變量(向量),U_t 為外生沖擊(向量)。假設(shè)模型具有穩(wěn)態(tài) \bar{y} ,滿足:

f(\bar{y},\bar{y},\bar{y},\bar{u})=0

其中,\bar{u} 為外生變量的穩(wěn)態(tài)值;Dynare使用 steady 命令來(lái)計(jì)算模型的穩(wěn)態(tài)值。

通常情況下, 在模擬開(kāi)始前即第0期,通常假設(shè)系統(tǒng)處于穩(wěn)態(tài)。在接下來(lái)的第1期即模擬的開(kāi)始,外生沖擊已經(jīng)完全確定。模擬的基本目的就在于分析系統(tǒng)在外生沖擊下的變化路徑,是回歸原始均衡還是達(dá)到一個(gè)新的均衡。

確定性模擬事實(shí)上是基于兩個(gè)邊界的數(shù)值求解問(wèn)題。Dynare實(shí)際上是使用了一個(gè)有限期模型來(lái)近似逼近無(wú)限期模型,從而實(shí)現(xiàn)數(shù)值求解。具體來(lái)說(shuō),Dynare求解如下的非線性聯(lián)立方程(Stack System)來(lái)確定模擬計(jì)算:

\begin{split} \left\{ \begin{matrix} f(y_2,y_1,y_0,U_1)=0 \\ f(y_3,y_2,y_1,U_2)=0 \\ \vdots \\ f(y_{T+1} ,y_T,y_{T-1},U_T=0) \end{matrix} \right. \end{split} \nonumber

其中,T 為模擬的總期數(shù)。Dynare將使用牛頓算法來(lái)求解該聯(lián)立方程組。

(2) simul的語(yǔ)法

相比于隨機(jī)模擬的命令 stoch_simul ,確定性模擬命令 simul 要簡(jiǎn)單得多,使用的選項(xiàng)很少。

simul (options) ...;

確定性模擬的 options 只有6個(gè),但最常用的只有 periods 一個(gè)。


3.8.4 介紹一個(gè)完整的例子

我們來(lái)看一個(gè)完整的例子:帶有投資的新古典增長(zhǎng)模型。

(1)建模

假設(shè)家庭選擇消費(fèi)、勞動(dòng)和資本存量來(lái)最大化終身貼現(xiàn)效用;

\max_{\{ C_{t},N_{t},K_{t} \}_{j=0}^\infty} E_0 \sum_{t=0}^\infty \beta^t \cdot U(C_t,N_t) \quad (1)

\text{s.t.}

\begin{split} C_t + K_{t+1}&= Y_t+ (1-\delta)K_t\\ \log A_t &= \log A+\rho \log A_{t-1}+\epsilon_t^A, \epsilon_t^A \sim N(0, \sigma^2) \end{split}

  • 生產(chǎn)函數(shù)和效用函數(shù)方面。

    • 生產(chǎn)函數(shù)為\text{CES}形式:Y_t=A_t \left[ \alpha K_t^\psi + (1-\alpha) N_t^\psi \right]^{\frac{1}{\psi}}

    • 效用函數(shù)為消費(fèi)和勞動(dòng)不可分函數(shù):U(C_t,N_t) = \frac{\left[ C_t^\theta (1-N_t)^{1-\theta} \right]^{1-\tau}}{1-\tau}

  • 變量方面

    • C_t、N_t、K_t、Y_t分別為消費(fèi)、勞動(dòng)、資本存量、產(chǎn)出,屬內(nèi)生變量

    • A_t為技術(shù)沖擊,屬外生變量

  • 參數(shù)方面

    • \beta>0 為折現(xiàn)率

    • \theta>0為效用函數(shù)中消費(fèi)的權(quán)重

    • \tau>0為風(fēng)險(xiǎn)厭惡參數(shù)

    • \alpha>0為資本存量的產(chǎn)出份額

    • \psi為生產(chǎn)函數(shù)中資本存量和勞動(dòng)的替代彈性參數(shù)

    • \delta>0為折舊率

    • \rho>0為技術(shù)沖擊的自回歸系數(shù)

    • \sigma>0為資技術(shù)沖擊的方差

(2)求解消費(fèi)者行為
  • 采用\text{Lagrange}方法求解,對(duì)三個(gè)決策變量求導(dǎo),有:

    \frac{\partial L^{Household}}{\partial C_t} \equiv 0

    \beta^t U_c(C_t,N_t)- \lambda_t = 0

    \frac{\partial L^{Household}}{\partial L_t} \equiv 0

    \beta^t U_N(C_t,N_t) + \lambda_t A_t F_N(N_t,K_t) = 0

    \frac{\partial L^{Household}}{K_{t+1}} \equiv 0

    -\lambda_t + E_t \lambda_{t+1} A_t F_K(K_{t+1}, N_{t+1}) + (1-\delta) = 0

(3)總結(jié)

消去\lambda,最終得出系統(tǒng)的動(dòng)力學(xué)方程由5個(gè)內(nèi)生變量C_tN_t、Y_t、K_tA_t以及5個(gè)均衡條件:

  1. \text{Euler方程}:\frac{\partial L^H}{\partial K_{t+1}} \equiv 0
    U_C(C_t,N_t) = \beta E_t{U_C(C_{t+1},N_{t+1})[A_{t+1}F_K(K_{t+1},N_{t+1})+1-\delta]}
  2. \text{勞動(dòng)供給方程}:\frac{\partial L^H}{\partial N_t} \equiv 0
    A_tF_N(K_t,N_t) = -\frac{U_N(C_t,N_t)}{U_C(C_t,N_t)}
  3. \text{生產(chǎn)函數(shù)}
    Y_t = A_t F(K_t,N_t) = A_t \left[ \alpha K_t^\psi + (1-\alpha) N_t^\psi \right]^{\frac{1}{\psi}}
  4. \text{資源約束條件}
    K_{t+1} = Y_t - C_t + (1-\delta)K_t
  5. \text{技術(shù)的AR(1)過(guò)程}
    \log A_t = \log A+\rho \log A_{t-1}+\epsilon_t^A, \epsilon_t^A \sim N(0, \sigma^2)
(4)敲代碼

為了便于編程,把偏導(dǎo)數(shù)的部分先計(jì)算出來(lái):

\begin{split} U_C(C_t,N_t) &= \theta \left[ C_t^\theta (1-N_t)^{1-\theta} \right]^{-\tau} C_t^{\theta - 1}\\ U_N(C_t,N_t) &= -(1-\theta)\left[ C_t^\theta (1-N_t)^{1-\theta} \right]^{-\tau} (1-N_t)^{-\theta}\\ F_N(K_{t}, N_{t}) &= (1-\alpha) \left[ \alpha K_{t}^\psi + (1-\alpha)N_{t}^\psi \right]^{\frac{1}{\psi}-1} N_{t}^{\psi-1}\\ F_K(K_{t+1}, N_{t+1}) &= \alpha \left[ \alpha K_{t+1}^\psi + (1-\alpha)N_{t+1}^\psi \right]^{\frac{1}{\psi}-1} K_{t+1}^{\psi-1} \end{split}

完整的代碼示例如下所示(可以直接復(fù)制運(yùn)行)

/* 
 * 教材源代碼24 確定性模擬(預(yù)期的永久性沖擊)
 * Modified by 愛(ài)吃漢堡薯?xiàng)l based on Xiangyang Li@SCC, 2020/3/30
 * 與書(shū)本上的不同,本代碼更加直觀
 */

close all;    % 關(guān)掉所有現(xiàn)存的figures

%---- 定義變量部分 ----%
// 定義內(nèi)生變量
var                 
C,                  // 消費(fèi)
N,                  // 勞動(dòng)
Y,                  // 總產(chǎn)出
K,                  // 資本存量
A                  // 技術(shù)水平
;


// 定義外生變量
varexo              
epsA                // 技術(shù)擾動(dòng)
;

// 定義參數(shù)
parameters          
beta,
delta,
rho,
sigma,
theta,
tau,
alpha,
psi,
tech_s
;

// 參數(shù)校準(zhǔn)
beta    =   0.99;   // 折現(xiàn)率
delta   =   0.025;  // 折舊率
rho     =   0.85;   // 自回歸系數(shù) 
sigma   =   0.01;   // 沖擊的方差
theta   =   0.35;   // 消費(fèi)在效用函數(shù)中的權(quán)重
tau     =   2;      // 風(fēng)險(xiǎn)規(guī)避系數(shù) 
alpha   =   0.35;   // 資本占生產(chǎn)中的比例
psi     =  -0.1;    // 資本和勞動(dòng)的替代彈性
tech_s  =   1;      // 技術(shù)的穩(wěn)態(tài)



%---- 模型定義部分 ----%

model;

// 首先定義便于編程的局部變量

# U_Ct = theta * ( C^theta * (1-N)^(1-theta) )^(-tau) * C^(theta-1);
# U_Ct1 = theta * ( C(+1)^theta * (1-N(+1))^(1-theta) )^(-tau) * C(+1)^(theta-1);
# U_Nt = -(1-theta)* ( C^theta * (1-N)^(1-theta) )^(-tau) * (1-N)^(-theta);
# F_Nt = (1-alpha) * ( alpha*K(-1)^psi + (1-alpha) * N^psi )^(1/psi-1) * N^(psi-1);
# F_Kt1 = alpha * ( alpha*K^psi + (1-alpha) * N(+1)^psi )^(1/psi-1) * K^(psi-1);

% (1) 歐拉方程
U_Ct = beta * U_Ct1 * (A(+1) * F_Kt1 + 1 - delta);

% (2) 勞動(dòng)供給方程
A * F_Nt = -1 * U_Nt / U_Ct;

% (3) 生產(chǎn)函數(shù)
Y = A * (alpha * K^psi + (1-alpha) * N^psi)^(1/psi);

% (4) 資源約束條件
K = Y - C + (1-delta)*K(-1);

% (5) 水平技術(shù)沖擊AR(1)過(guò)程
log(A) = log(tech_s) + rho*log(A(-1)) + epsA;

end;

%---- 初值設(shè)定部分 ----%
% 教材的代碼是使用 `steady_state_model;` 命令計(jì)算的穩(wěn)態(tài)
% 我這里是直接把教材代碼算出來(lái)的穩(wěn)態(tài)值作為初值了
initval;
K = 6.93619;
Y = 0.857369;
N = 0.325829;
C = 0.683964;
A = 1;
end;


%---- 設(shè)置終值 ----%
endval;
epsA = (1-rho)*log(0.5);
end;

%---- 計(jì)算穩(wěn)態(tài) ----%
steady;

%---- 設(shè)置沖擊 ----%
shocks;
var epsA;
periods 40;
values 0.3;
end;

%---- 確定性模擬 ----%
simul(periods=150);

rplot C;
rplot K;

我在這里設(shè)置的是技術(shù)水平發(fā)生永久性變化(減?。?,并在第40期發(fā)生一次正的一次性技術(shù)沖擊,產(chǎn)出Y_t、消費(fèi)C_t和資本存量K_t的變化如下脈沖響應(yīng)圖所示:

對(duì)于不同的沖擊類型和預(yù)期,只需要參考表3.6進(jìn)行修改即可!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容