13.4.3 收集有关地区的统计信息

13.4.3 收集有关地区的统计信息

我们的目标是展示自 1990 年以来,不同地区森林面积的变化。我们需要遍历所有已有的地区,检查数据是否可用,找到下载的指标值。这可以通过使用我们创建的映射,非常轻松地完成,因为已经用年份和地区 ID 作为关键字。
需要小心的是有一些数据可能会缺失,因此,我们要过滤掉所有没有我们需要年份数据的地区。另外,我们还想要显示森林总面积,而不是百分比,因此,在返回数据之前,要进行简单的计算。虽然听起来可能很难,但是,代码并不非常复杂。在清单 13.17 中,我们只要在交互式 F# 中输入几条命令,能得到想要收集的数据。

清单 13.17 计算森林面积(交互式 F#)

> let calculateForests(area:float<km^2>, forest:float<percent>) =   <--[1] 计算森林总面积
     let forestArea = forest * area 
     forestArea / 100.0<percent> 
;; 
val calculateForests : float<km ^ 2> * float<percent> -> float<km ^ 2>

> let years = [ 1990; 2000; 2005 ] 
   let dataAvailable(key) =       <-- [2] 对于给定的给定的键,值是否可用?
     years |> Seq.forall (fun y –> 
       (Map.contains (y, key) areas) && 
       (Map.contains (y, key) forests));; 
val years : int list 
val dataAvailable : string –> bool

> let getForestData(key) =     <-- [3] 得到每年的值
     [| for y in years do 
         yield calculateForests(areas.[y, key], forests.[y, key]) |];; 
val getForestData : string -> float<km ^ 2> array

> let stats = seq {     <-- [4] 对所有地区,查找可用数据
     for name in regions do 
       if dataAvailable(name) then 
         yield name, getForestData(name) };; 
val stats : seq<string * float<km ^ 2> array>

清单 13.17 定义了几个辅助函数,处理下载的数据,并定义名为 stats(统计数据)的值保存最后的结果。由于有了计量单位,可以很容易看出第一个函数的用途[1],它用该地区的总面积和森林面积占比,计算森林总面积,以平方公里计。
第二个函数[2]检查指定的地区是否有三年我们所需要的数据,它使用的函数 Map.contains 测试 F# 映射(第二个参数)是否包含第一个参数的关键字。最后一个辅助函数[3]看起来和第二个很相似,假定数据可用,以年和地区作为关键字,对所有监控的年份,从映射中提取数据;然后,使用第一个函数,计算出原始数据的森林面积。
组合最后两个函数,就可以收集所有地区的统计数字了[4],返回元组的序列,元组的第一个元素为地区名,第二个元素为数组,数组有三个元素,对应于所监控的三年的值。
在交互式 F# 中获取数据以后,虽然可以在互动窗口中进行观察,但是,很难通过输出数据找出模型。为了能够从收集的数据中获取更多的信息,必须以更友好的方式对数据进行可视化,例如,使用 Microsoft Excel。

内容概要:本文深入探讨了多种高级格兰杰因果检验方法,包括非线性格兰杰因果检验、分位数格兰杰因果检验、混频格兰杰因果检验以及频域因果检验。每种方法都有其独特之处,适用于不同类型的时间序列数据。非线性格兰杰因果检验分为非参数方法、双变量和多元检验,能够在不假设数据分布的情况下处理复杂的关系。分位数格兰杰因果检验则关注不同分位数下的因果关系,尤其适合经济数据的研究。混频格兰杰因果检验解决了不同频率数据之间的因果关系分析问题,而频域因果检验则专注于不同频率成分下的因果关系。文中还提供了具体的Python和R代码示例,帮助读者理解和应用这些方法。 适合人群:从事时间序列分析、经济学、金融学等领域研究的专业人士,尤其是对非线性因果关系感兴趣的学者和技术人员。 使用场景及目标:①研究复杂非线性时间序列数据中的因果关系;②分析不同分位数下的经济变量因果关系;③处理不同频率数据的因果关系;④识别特定频率成分下的因果关系。通过这些方法,研究人员可以获得更全面、细致的因果关系洞察。 阅读建议:由于涉及较多数学公式和编程代码,建议读者具备一定的统计学和编程基础,特别是对时间序列分析有一定了解。同时,建议结合具体案例进行实践操作,以便更好地掌握这些方法的实际应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值