一种田间裂-裂区试验设计数据分析与可视化系统的制作方法

专利2022-06-29  91

本发明公开了一种田间裂-裂区试验设计数据分析与可视化系统,具体为裂-裂区试验
技术领域
:。
背景技术
::对于科研工作者来说,在设计试验时,当需要考虑到三种因素时,一般可以采用三因素随机完全区组试验设计或裂-裂区试验设计,当试验因素有主次之分时,常采用裂-裂区试验设计,并将主因子各个水平安排在裂-裂区,次要因子安排在整区或裂区,以获取较高的试验精度。裂-裂区试验设计由于具有操作性强、精度高等优点,已在全球不同地区得到广泛的认可与应用。尽管裂-裂区试验设计具有较高的精度,但是与随机区组试验设计相比,该设计数据方差分析的难度也加大了。因为裂-裂区试验设计共分为四个级别,分别为区组、主区、子区、子子区,对数据进行方差分析时,各级因子主效应或交互效应需要分别采用不同的误差项来进行分析。目前全球常用的统计分析软件主要有sas(statisticalanalysissystem)、spss(statisticalproductandservicesolutions)、dps(dataprocessingsystem)等,spss和dps软件均不能直接对裂-裂区试验设计数据进行方差分析,尽管sas可通过编程实现裂-裂区试验数据的方差分析,但是缺乏数据可视化功能,仍需借助绘图软件以实现数据可视化。以上统计软件虽各有优点,但截至目前尚未有一款软件能够同步实现裂-裂区试验设计数据方差分析、事后均值比较(如tukey’shsd法)及主效应和多级交互效应数据可视化功能等。目前主要采用sas软件编程来实现裂-裂区试验设计数据的方差分析及事后均值比较,该方法不仅编程复杂,而且数据录入格式不易掌握,对于无编程基础的科研人员来说使用难度较大。下面将举例说明采用sas软件对裂-裂区试验数据进行方差分析的过程,例如参加某田间试验的因素为三个,主处理为a,副处理为b,副副处理为c,重复为r,则在正确读入原始数据后,可采用下列的程序进行方差分析。/*·裂裂区试验设计方差分析·*/proc·anova;··class·a·b·c·r;··model·y=r·a·a*r·b·a*b·b*r(a)·c·a*c·b*c·a*b*c·c*r(a·b);··test·h=r·e=a*r;…··…·/*·测验区组r效应.*/··test.h=a·e=a*r;········./*·测验主处理a主效应·*/··test·h=b·e=b*r(a);······/*·测验副处理b主效应·*/··test·h=a*b·e=b*r(a);…·/*·测验a*b交互效应·*/··test·h=c·e=c*r(a·b);····/*·测验副副处理c主效应·*/··test·h=a*c·e=c*r(a·b);··/*·测验a*c交互效应·*/··test·h=b*c·e=c*r(a·b);··/*·测验b*c交互效应·*/··test·h=a*b*c·e=c*r(a·b);/*·测验a*b*c交互效应·*/··means·a/duncan·e=a*r;···/*·进行主处理a新复极差测验·*/··means·b/duncan·e=b*r(a);···/*·进行副处理b新复极差测验·*/··means·c/duncan·e=c*r(a·b);·/*·进行副副处理c新复极差测验·*/run;由以上代码可知,各级处理主效应及交互效应进行均值检测时误差项比较复杂。且该次分析中的指标为r,即本次运行只能得出r对各个因素的响应情况,分析其他指标时需要重新导入数据并运行。对于裂-裂区试验设计,在对其数据进行方差分析时主效应、二重交互及三重交互效应所采用的误差项不同,导致各效应间均值比较极为复杂,对于统计基础薄弱和编程技术不扎实的操作者来说,运用sas软件编程来进行裂-裂区试验数据方差分析将会非常困难,而且sas软件对数据录入的要求也不易掌握,每运行一次只能分析1个指标,工作效率不高,后续分析结果的可视化处理也对操作者的绘图水平提出了较高要求。即sas软件并不能实现裂-裂区试验数据分析、图形绘制及高质量图形输出一键自动完成的功能,导致用户的工作效率低且可操作性不强。技术实现要素:本发明的目的在于提供一种田间裂-裂区试验设计数据分析与可视化系统,以解决上述
背景技术
:中提出的问题。为实现上述目的,本发明提供如下技术方案:一种田间裂-裂区试验设计数据分析与可视化系统,包括数据录入模板模块,所述数据录入模板模块的输出端连接有数据分析可视化系统,所述数据分析可视化系统包括数据加载模块、表格动态显示模块和图片输出顺序调整模块。优选的,所述表格动态显示模块包括数据导入、方差分析结果及数据可视化三个子模块。优选的,所述数据导入子模块利用shiny包中renderdatatable函数实现,并通过javascript实现表格排序、筛选等功能。优选的,所述方差分析结果及数据可视化子模块均利用r与javcascript联合编程实现。优选的,所述图片输出顺序调整模块通过rshiny技术以表格的形式筛选出待输出图片的数据,利用javascript技术以拖拽方式实现图片输出顺序调整功能。与现有技术相比,本发明的有益效果是:本发明同步实现了裂-裂区试验设计数据方差分析、均值比较(tukey’shsd法)及数据可视化的功能。裂-裂区试验设计方差分析时主效应、二重交互及三重交互效应所采用的误差项不同,过程比较复杂,且本系统操作简单,无需编程,仅通过窗口点选式操作便可实现,本系统的开发极大地降低了裂-裂区试验设计分析的操作难度,提高了用户工作效率。附图说明图1为本发明数据分析与可视化系统结构框图;图2为本发明可视化系统结构框图;图3为本发明裂-裂区试验设计数据录入模板表格;图4为本发明数据加载模块界面示意图;图5为本发明数据导入、方差分析结果及数据可视化模块界面示意图图6为本发明拖拽调整图片输出顺序图;图7为本发明方差分析计算模型界面示意图;图8为本发明方差分析结果界面示意图图9为本发明主效应、二重交互效应及三重交互效应图;图10为本发明letex向rexpression转化示意图;图11为本发明调整各因子不同水平的顺序操作界面示意图;图12为本发明筛选后图形输出界面示意图;图13为本发明表格形式动态显示待输出界面示意图;图14为本发明调整主效应图和交互效应图的输出顺序图;图15为本发明图形参数调整及输出界面示意图;图16为本发明图形参数输出图。图中:100数据录入模板模块、200数据分析及可视化系统、210数据加载模块、220表格动态下市模块、230图片输出顺序调整模块。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例1.1裂-裂区试验设计数据录入模板模块数据录入模板的前5行分别为因子或指标中文名(chinesenames)、单位(units)、图形坐标轴标题(titleforggplot2)、因子或指标的英文名(englishnames)、因子代号(codenames)。自第6行起,a列为处理序号,b列为区组因素,c列为主因素,d列为子区因素,e列为子子区因素,f列及其之后的列为对应的因变量。数据录入后保存为.xlsx格式,并放到指定的路径即可,具体数据录入模板见图3;1.2田间裂-裂区试验数据分析及可视化系统主要利用rshiny完成,shiny是一个基于r语言的快速网站开发框架,shinyapp主要由一个用户交互脚本(ui)和一个服务器脚本(server)构成,ui中的output类与server中的render类相互辅助达到交互效果。ui负责控制系统界面的设计,在源代码中的固定名称为ui.r;server为服务器端,在源代码中的固定名称为server.r。1.21数据分析与可视化(1)数据加载:通过嵌入c语言中的“libxls”工具包以加载.xls和.xlsx格式数据文件,通过rbase包加载.csv格式数据文件,点击“browser”按钮,选择数据文件后,点击底部“确定”按钮,即可完成数据导入过程,数据加载模块如图4所示;(2)表格动态显示:主要包括“数据导入”、“方差分析结果”及“数据可视化”三个模块。利用shiny包中renderdatatable函数实现“数据导入”功能,并通过javascript实现表格排序、筛选等功能。通过r与javcascript联合编程实现“方差分析结果”与“数据可视化”模块功能。主要原理如下:1)服务器端通过sendcustommessage函数向客户端浏览器发送信息,客户端通过事件句柄调用客户端浏览器中的javascript函数来控制数据显示;2)客户端利用javascript函数shiny.oninputchange向服务器端发送信息,服务器端通过observeevent函数接收并激发相关函数,以处理浏览器端传回来的数据,并反馈回去。“数据导入”、“方差分析结果”及“数据可视化”模块界面分别如图5所示;(3)以拖拽方式调整图片输出顺序:通过rshiny技术以表格的形式筛选出待输出图片的数据,利用javascript技术以拖拽方式实现图片输出顺序调整功能,并将拖拽后的结果通过shiny.oninputchange函数传递给r服务器进行相关处理,最终将待输出的图片信息返回给客户端浏览器。拖拽调整图片输出顺序如图6所示;1.22方差分析模块主要利用data.table包、tidyverse包及自定义函数实现数据处理功能。主要功能包括:数据筛选、连续性变量和分类变量的设置、数据的齐次性和平衡性检测等。主要通过dplyr包中的filter、distinct、select、arrange、add_row、mutate、transmute、mutate_at等函数和purrr包中的map_xxx、map2_xxx、pmap_xxx、nest等函数及data.table包开发出一系列数据分析函数。主要利用rstudio中的agricolae和stringr等包和自定义函数,实现裂-裂区试验数据方差分析功能。使用第三类方差分析,同时筛选出主区、子区和子子区误差项,以供后续均值检测使用。裂-裂区试验设计嵌套模型如下:yijkl=μ ρl αi (wp)il βj (αβ)ij (sp)ijl γk (αγ)ik (βγ)jk (αβγ)ijk (ssp)ijkl(i=1,...,a;j=1,...,b;k=1,...,c;l=1,...,r)其中ρl、αi、βj、γk分别代表区组效应、主区效应、子区效应和子子区效应;(αβ)ij、(αγ)ik、(βγ)jk、(αβγ)ijk分别代表主区与子区交互效应、主区与子子区交互效应、子区与子子区交互效应及主区、子区、子子区三重交互效应;(wp)il、(sp)ijl、(ssp)ijkl分别代表主区、子区和子子区误差项。裂-裂区方差分析中各因子主效应、交互效应及误差项计算公式如下:在试验因子设计窗口,只需选择相应的主区、子区、子子区及区组因子,并点击“确定”,便可得到相应的裂-裂区方差分析计算模型。如图7所示;后台将会根据以上列出的模型计算公式对数据进行分析,将方差分析总表、主效应及交互效应多重比较结果展现在“方差分析结果”窗口中。如图8所示;1.23主效应及交互效应均值比较(tukey’shsd法)模块利用agricolae和tidyverse等包及自定义函数,实现主效应及交互效应均值检测。均值检测采用tukey’shsd(honestlysignificantdifference)法。主区误差项为(wp)il,即表中error(a),子区误差项为(sp)ijl,即表中error(b),子子区误差项为(ssp)ijkl,即表中error(c)。均值检测主要通过agricolae包中的hsd.test函数实现。(1)主因子不同水平间均值检测代码如下:(2)子因子不同水平间均值检测代码如下:(3)子子因子不同水平间均值检测代码如下:(4)主因子与子因子交互效应不同处理间均值检测代码如下:(5)主因子与子子因子交互效应不同处理间均值检测代码如下:(6)子因子与子子因子交互效应不同处理间均值检测代码如下:(7)主因子、子因子、子子因子交互效应不同处理间均值检测代码如下:1.24数据可视化模块本发明中的数据可视化模块主要借助rstudio中ggplot2工具包的绘图功能,通过一系列自定义函数和tidyverse、cowplot等工具包来实现主效应和交互效应图形的绘制,并结合rshiny和jquery技术实现图像的交互操作。(1)利用ggplot2绘制主效应和交互效应图通过ggplot2包中的geom_bar、geom_errobar、geom_text、scale_fill_grey和theme等函数,并结合均值检测(tukey’shsd法)结果绘制主效应和交互效应图。主效应、二重交互效应及三重交互效应图如图9所示;(2)图形坐标轴标题设计通过letex函数的排版功能,实现letex向rexpression的转化,将录入excel数据模板中的标题信息(titleforggplot2行)转化为rexpression的形式,添加到主效应和交互效应图中,将单位中的特殊符号(如上、下标)表示出来。具体如图10所示;(3)主效应和交互效应图中各因子不同水平排序设计通过自定义函数sortdataset实现对各因子不同水平的排序。通过在操作界面调整各因子不同水平的顺序,即可实现对图形中各因子不同水平的排序。(4)图形输出1)选择待输出的图形主要借助rshiny和javascript交互通讯技术,javascript将选择后的图片信息传递到服务器端,服务器端对相应的图片信息库进行筛选,最终将选择的图形输出。利用rshiny中的renderdatatable函数以表格的形式动态显示待输出的图片信息。2)调整图形的输出顺序通过javascript与rshiny交互通讯技术,以拖拽的操作方式调整主效应图和交互效应图的输出顺序。具体操作如图14所示;3)图形的绘制与合成利用rshiny与javascript交互通讯技术,javascript将选择的图形及其排序信息传回服务器端,服务器端利用cowplot函数绘制主效应和交互效应图并将其合成,通过renderui函数动态显示合成图。4)图形参数调整及输出利用rshiny开发tiffparamtersui函数。ui端通过tiffparamtersui函数实现图形参数调整界面,server端实现图形输出。ui端代码如下:server端代码如下:出图结果如图16所示。虽然在上文中已经参考了一些实施例对本发明进行描述,然而在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本发明所披露的各个实施例中的各项特征均可通过任意方式相互结合起来使用,在本说明书中未对这些组合的情况进行穷举的描述仅仅是处于省略篇幅和节约资源的考虑。因此,本发明并不局限于文中公开的特定实施例,而且包括落入权利要求的范围内的所有技术方案。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种田间裂-裂区试验设计数据分析与可视化系统,包括数据录入模板模块(100),其特征在于:所述数据录入模板模块(100)的输出端连接有数据分析可视化系统(200),所述数据分析可视化系统(200)包括数据加载模块(210)、表格动态显示模块(220)和图片输出顺序调整模块(230)。

2.根据权利要求1所述的一种田间裂-裂区试验设计数据分析与可视化系统,其特征在于:所述表格动态显示模块(220)包括数据导入、方差分析结果及数据可视化三个子模块。

3.根据权利要求2所述的一种田间裂-裂区试验设计数据分析与可视化系统,其特征在于:所述数据导入子模块利用shiny包中renderdatatable函数实现,并通过javascript实现表格排序、筛选等功能。

4.根据权利要求2所述的一种田间裂-裂区试验设计数据分析与可视化系统,其特征在于:所述方差分析结果及数据可视化子模块均利用r与javcascript联合编程实现。

5.根据权利要求1所述的一种田间裂-裂区试验设计数据分析与可视化系统,其特征在于:所述图片输出顺序调整模块(230)通过rshiny技术以表格的形式筛选出待输出图片的数据,利用javascript技术以拖拽方式实现图片输出顺序调整功能。

技术总结
本发明公开了裂‑裂区试验技术领域的一种田间裂‑裂区试验设计数据分析与可视化系统,包括数据录入模板模块,数据录入模板模块的输出端连接有数据分析可视化系统,数据分析可视化系统包括数据加载模块、表格动态显示模块和图片输出顺序调整模块,本发明同步实现了裂‑裂区试验设计数据方差分析、均值比较(Tukey’s HSD法)及数据可视化的功能。裂‑裂区试验设计方差分析时主效应、二重交互及三重交互效应所采用的误差项不同,过程比较复杂,且本系统操作简单,无需编程,仅通过窗口点选式操作便可实现,本系统的开发极大地降低了裂‑裂区试验设计分析的操作难度,提高了用户工作效率。

技术研发人员:郑俊林;夏桂敏;吴奇;孙一迪;陈涛涛;迟道才;孙仕军;张旭东;刘光岩;张丰
受保护的技术使用者:沈阳农业大学
技术研发日:2020.01.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25312.html

最新回复(0)