帮助中心 广告联系

灵宝信息网-灵宝天气预报-灵宝教育网-灵宝租房-灵宝新闻网-灵宝生活网

热门关键词:

关于太原零距离这件事可以这样解读吗?

来源:原创/投稿/转载 发布时间:2023-02-03

  15 年以来,我一直在美国加州大学伯克利分校公共卫生学院教授“基于R语言的应用流行病学”。我从 2000 年初开始教授这门课程,当时大多数人对 R 并不感兴趣。后来,R 语言的受欢迎程度提高了,参加我的课程的人数也增加了。我教授的是应用流行病学的 R 语言编程基础。学生需要完成自己选择的项目。因为我的学生来自多个学科,因此他们的项目通常非常有创意,我从他们身上也学到了很多知识。

  在过去的 15 年里,我亲眼目睹了“数据科学”的兴起,以及学生们在项目中表现出来的独特性和创造性。当然,这门课程本身也在不断发展。我利用贝叶斯网络作为统一框架来介绍概率依赖、因果图和决策网络(用于决策分析)。

  后来,我开始尝试 Python。不幸的是,疫情导致我的教学中断,因为我是美国旧金山的卫生主任兼人口卫生司司长。为了应对疫情,我几乎没有时间学习 Python 以及 Python 数据分析。

  我不记得具体的时间,但最终我发现了 Julia,这是一种专为科学计算而设计的编程语言,不仅拥有 Python 和 R 的简单性,而且还具备 C++ 的速度。我爱上了 Julia,并放弃了学习 Python。无论是过去还是现在,我都没有时间同时学习一门以上的编程语言。随着我对 Julia 的了解越来越多,我开始相信,对我来说,学习 Julia 是一项比坚持使用 R 更好的长期投资。

  我通过编程来探索或测试我对流行病的研究、学习新方法以及可视化和分析数据。我对贝叶斯网络、决策网络、因果推理、马尔可夫决策过程,以及基于主体的建模很感兴趣。

  使用 Julia 编程更加简单。例如,在 R 中,我们需要尽量避免循环,因为这类语句非常低效。但在 Julia 中,循环的执行效率很高,因为 Julia 会在执行之前先编译代码。

  我是 R 语言的 epitools 包的创建者。我开发了基本流行病学的分析函数,其中有几个来自 Kenneth J. Rothman 编写的教科书《现代流行病学》。例如,如果我想创建一个函数来计算 2x2 列联表的优势比,则可以通过以下几种方式提供数据:

  如果我想编写一个函数来处理这些数据类型,就不得不对数据类型进行大量处理和检查,才能调用下一个函数(嵌套或外部)。其中涉及的工作量超出了必要。下面,我们来看看如何利用 Julia 的多重分派来实现这个函数。

  2003 年,我们发表了一项研究,证明饮用未经过滤的市政自来水与晚期 HIV 病患者感染隐孢子虫病有一定的关系。下面是论文中的列联表。

  让我们比较一下暴露最高的类别和最低的类别,计算未经调整的优势比。下面的计算使用的是 2x2 列联表。

  问题在于,这三个函数的名称相同,皆为oddsratio。在 Julia 中,我们可以利用多重分派实现。相比之下,R 语言则是单分派。

  这就是多重分派。函数 oddsratio 有三种写法,可以处理多种数据类型。请注意,编写这些代码非常容易。

  在本文中,我简单介绍了我从 R 切换到 Julia 的主要原因。我说明了如何编写多重分派函数。请注意,使用三种方法来处理不同参数类型的函数对我来说是多么容易。

责任编辑:admin

本网转载作品的目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如涉及作品内容、版权等问题,请联系我们进行修改或删除!

联系我们 -