引入解释性变量

Introduce Explainning Variable(引入解释性变量)

Summary:

  • 将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。

Tips:

  • 在条件逻辑中,Introduce Explaining Variable可以用来将每个条件子句提炼出来,以一个良好命名的临时变量来解释对应条件子句的意义。

 

Comments by Allen Lee:

Inline Temp与Introduce Explaining Variable:

  • 两者在一定程度上(外表行为)恰恰相反。前者把临时变量的表达式直接插入调用方以便去掉临时变量,后者却把相关表达式提炼出来用一个临时变量代替。
  • 前者要去掉的临时变量所代表的表达式是比较简单的,一般用来储存直接对某个函数或者某个对象的成员函数调用所得到的返回值,如order.GetResult();(函数样式)或者order.Result;(C# property 样式);而后者要提炼的表达式确实比较复杂,至少不是一眼可以看出其含义的,如textBox1.Text.ToUpperCase().Contains("@");。
  • 前者一般是为实施其他重构原则,例如Extract Method,铺平道路所用;而后者则一般为提高代码,尤其是不能一眼看出其含义的复杂表达式,的可读性所用。
  • 后期优化时,有时某些表达式虽然比较简单,例如order.GetResult();,但由于其内部算法复杂并只赋值一次,如果把它使用Inline Temp直接嵌入调用方,那么每次需要用到的时候都进行一次计算将会付出很大的代价。此时我们可能首先看看是否能够把该函数进行Extract Method,再看看是否能够Substitute Algorithm,尽量把函数分割,实在没办法的时候,我们就只能重新引入临时变量把结果储存一次留为后用。

Introduce Explaining Variable与Replace Temp with Query:

  • 这两者可以看情况组合使用。当我们发现某些表达式返回的结果其实可以对外开放,那么,我们可以用Introduce Explaining Variable引入临时变量,然后用Replace Temp with Query把这个临时变量提取到一个单独的Query。  
  • 这两者组合使用有时候也等效于直接使用Extract Method。所以,如果你有时候发现要提炼的函数由于临时变量太多而逻辑不清晰,不妨把Extract Method的过程拆成这两者来用,往往会收到意想不到的效果。

 

在R语言中,引入虚拟变量可以使用GARCH模型进行建模。根据引用\[1\]中的步骤,可以选择Quick-Estimate Equation,并选择GARCH模型。如果要在mean equation中引入虚拟变量,可以在mean equation字段输入:y y(-1) y(-2) D;如果要在variance equation中引入虚拟变量,则在variance equation中输入:D。这样就可以将虚拟变量引入到GARCH模型中进行分析。\[1\] 另外,根据引用\[2\]中的条件均值规范,可以将解释性变量Xt引入到GARCH模型中。这个解释性变量可以是虚拟变量、市场收益或波动率等。\[2\] 综上所述,要在R语言中引入虚拟变量,可以使用GARCH模型,并根据需要将虚拟变量放在mean equation或variance equation中,或者将其他解释性变量引入到GARCH模型中进行分析。 #### 引用[.reference_title] - *1* *3* [R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...](https://blog.csdn.net/weixin_39943678/article/details/109979766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [金融计量模型(十一):对波动率和相关性建模](https://blog.csdn.net/qq_52737544/article/details/118190904)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值