关于FOQAT包的介绍请点击阅读:FOQAT包介绍 或者 中文说明手册。
FOQAT包迎来一个重要功能更新:anylm。顾名思义,这个功能目的就是让线性回归分析更加随心所欲。主要特点如下:
- 批量计算线性相关系数、线性回归斜率、线性回归截距、线性回归P值。结果汇总到表。
- x和y以及填充颜色(z)三个维度都可以选择多个物种。
- 支持第四维度操作即数据分组(t)。
- 批量出图:输出一个包含所有图的页面。图的id与输出结果中的行号、id对应。
- 输出结果中还包含每组线性回归数据的详细信息(数据、图、线性回归结果),可以单独导出,进行进一步处理。
- 支持多种线性回归方法(OLS、MA、SMA、RMA)。
本功能提供了一个基础框架,可以根据实际应用场景设置参数(不限于时间序列数据)。例如:
- 探索颗粒物多种组分之间(x、y)的相关性;
- 探索某种污染物(x)与其他多种污染物(y)的相关性,并探索其他多种物理化学因素(z)对相关性的影响;
- 探索臭氧(y)周末效应(工作日和周末,分组t)的年际(x)变化。
- ······
下面演示一个简单例子以说明功能:
本例子探索内置数据集aqi的相关性。按天分组,探索每天的O3和NO以及NO2的相关性。并以CO作为填充颜色探索CO对相关性的影响。
#安装官方包‘remotes’
install.packages("remotes")
#调用其中的‘install_github’函数安装foqat包
remotes::install_github("tianshu129/foqat")
#载入foqat包
library(foqat)
#载入lubridate包,在数据集中加入额外一列day表示自然日,以便于按天分组。
library(lubridate)
df=data.frame(aqi,day=day(aqi$Time))
#批量进行线性回归分析
x=anylm(df, xd=c(2,3), yd=6, zd=4, td=7,dign=3)
Rstudio右下角plot区域会生成包含所有图的页面,但是排版较乱。点击zoom放大看大图。
得到排版清晰的大图(可以拖拽窗口调整比例):
结果:线性回归汇总页面
图上方为图的id、相关系数、斜率、分组代号。id与结果汇总表的行号、详细结果列表的序号和图列表中的序号对应。
图例色阶标注数值为0%、25%、50%、75%、100%的数值。
点击右上方Environment中的结果x,左上方会显示结果的内容:
结果:结果列表
其中包含的几部分简述如下。
- data_list
结果:data_list数据结构
多级列表对数据进行细分,层次依次为:x->y->z(如果有)->t(如果有)。可以快速找到所关注的回归结果对应的数据组,并导出。
2. lm_df
结果:批量线性回归结果汇总表
该表汇总了批量线性回归的结果,行号与页面id对应。
3. lm_list
结果:详细线性结果的列表
该列表中存储了每一组线性回归的详细回归结果,序号与页面id对应。可供查阅导出。
4. plot_list
结果:图的列表
本列表中包含你在总页面中看到的所有图,序号与页面id对应。格式为ggplot。可以导出后用ggplot2包进行加工。
5.all_plot
一个存储了所有图的汇总页面。默认在得到结果后会自动显示。可以通过showpage=FALSE来关闭总图页面的显示(在数据量大的时候,建议启用)。
可以用gridExtra::grid.arrange()函数来展示总图页面all_plot。
可以用ridExtra::arrangeGrob()+ggplot2::ggsave()函数来输出总图页面all_plot。
#显示和输出总图页面all_plot
gridExtra::grid.arrange(grobs=x[["all_plot"]], nrow=5)
g <- gridExtra::arrangeGrob(grobs=x[["all_plot"]], nrow=5)
ggplot2::ggsave(filename="example.jpg", plot=g)