本發(fā)明涉及數(shù)據(jù)統(tǒng)計(jì)
技術(shù)領(lǐng)域:
,特別是涉及一種基于大數(shù)據(jù)的并行方差分析方法及裝置。
背景技術(shù):
:隨著數(shù)據(jù)量的增長,數(shù)理統(tǒng)計(jì)成為處理信息、做出決策重要理論和方法,通過數(shù)理統(tǒng)方法可以從數(shù)據(jù)中獲取信息和判斷規(guī)律,從而作為數(shù)據(jù)挖掘工作的先導(dǎo)。方差分析的前提條件是數(shù)據(jù)組之間滿足獨(dú)立,即事件一和事件二之間相互影響的概率,方差具有齊性,即各數(shù)據(jù)組方差相同,均為正態(tài)分布。其實(shí)質(zhì)是檢驗(yàn)多個(gè)正態(tài)分布總體均值是否相等,造成數(shù)據(jù)波動(dòng)有兩個(gè)原因:一是影響因素水平不同,二是來自偶然誤差,方差分析的作用就是判斷是哪一個(gè)原因造成的。方差分析包括單因素分析和多雙因素分析,單因素分析包括單因素方差分析,多雙因素分析包括雙因素?zé)o重復(fù)方差分析和雙因素等重復(fù)方差分析,其中,單因素方差分析得出該因素是否對數(shù)據(jù)造成顯著性影響的結(jié)論,上述檢驗(yàn)方法均在spss(statisticalproductandservicesolutions,統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案)中可以實(shí)現(xiàn),spss可以根據(jù)輸入數(shù)據(jù)得出一張表,表中信息包含:方差來源、偏差平方和、自由度、方差、計(jì)算所得f值、顯著性水平(即最終結(jié)論)。目前,現(xiàn)有軟件spss對數(shù)據(jù)進(jìn)行處理時(shí),一行為一條數(shù)據(jù),包括信息有:影響因素a的種類、影響因素b的種類、影響因素c的種類等等以及在這些條件下的試驗(yàn)結(jié)果。不同條件由不同列決定,這樣就造成數(shù)據(jù)規(guī)模消耗較大,例如,有a,b兩個(gè)因素,因素a包括10個(gè)不同的影響水平,因素b包括20個(gè)不同的影響水平,則有10*20=200行數(shù)據(jù)記錄,如表1所示,如果再進(jìn)行重復(fù)試驗(yàn)2次,獲得10*20*2=400行數(shù)據(jù),總的規(guī)模就是4列,400行,4*400。表1傳統(tǒng)的試驗(yàn)數(shù)據(jù)表因素a因素b實(shí)驗(yàn)次數(shù)實(shí)驗(yàn)數(shù)據(jù)111xx……………………10110xx……………………120180xx……………………1020200xx由此可見,當(dāng)表中數(shù)據(jù)達(dá)到200m時(shí),利用spss對大量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)處理時(shí),容易造成軟件運(yùn)行困難,難以實(shí)現(xiàn)數(shù)據(jù)分析,亟需一種基于spss對輸入數(shù)據(jù)進(jìn)行簡化處理的方法。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例的目的在于提供一種基于大數(shù)據(jù)的并行方差分析方法及裝置,以實(shí)現(xiàn)對大數(shù)據(jù)進(jìn)行簡化處理,進(jìn)而對處理后的大數(shù)據(jù)進(jìn)行規(guī)?;治觥>唧w技術(shù)方案如下:一種基于大數(shù)據(jù)的并行方差分析方法,包括:利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),并存儲(chǔ)所述試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為p的矩陣,矩陣的每個(gè)元素為試驗(yàn)數(shù)據(jù)xijx,其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,r代表因素b中不同水平的個(gè)數(shù),因素b中不同影響水平記為b1、b2、…、bj、…、br,s代表重復(fù)做試驗(yàn)的次數(shù);ai和bj所做的試驗(yàn)數(shù)據(jù)為xij1、xij2、…、xijx、…、xijs;i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且s、m和r中至少兩項(xiàng)不能同時(shí)取零;創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext;根據(jù)所有試驗(yàn)數(shù)據(jù),在所述sparkcontext中計(jì)算統(tǒng)計(jì)量f;加載f分布表,并查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)尋找fs0和fs1;比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高顯著。進(jìn)一步地,利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r=0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述當(dāng)m≠0、r=0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為s的試驗(yàn)數(shù)據(jù)xix。進(jìn)一步地,利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r≠0、s=1時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述m≠0、r≠0、s=1時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為r的試驗(yàn)數(shù)據(jù)xij。進(jìn)一步地,利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r≠0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述m≠0、r≠0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為r·s的試驗(yàn)數(shù)據(jù)xijx。進(jìn)一步地,據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,其中,va為因素a的組間方差,va=sa/fa,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sa,fa為因素a的組間自由度,fa=m-1,fe為組內(nèi)自由度,fe=m·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qt為矩陣中所有數(shù)據(jù)的平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),進(jìn)一步地,根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fe為組內(nèi)自由度,fe=fa·fb,qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中每一列數(shù)據(jù)和的平方的和,qt為矩陣中所有數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),進(jìn)一步地,所述根據(jù)所有試驗(yàn)數(shù)據(jù),計(jì)算統(tǒng)計(jì)量f,包括:根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,因素a和因素b相互作用的統(tǒng)計(jì)量fab:fab=vab/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,vab為因素a和因素b作用下的組間方差,vab=sab/fab,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-w,sab為因素a和因素b相互影響下的組間的偏差平方和,sab=qt-ct-se-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fab為因素a和因素b相互影響下的組間自由度,fab=fa·fb,fe為組內(nèi)自由度,fe=m·r·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中因素b中每一列中數(shù)據(jù)和的平方的和除以因素b中每列數(shù)據(jù)的個(gè)數(shù),qt為矩陣中每個(gè)數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),w為矩陣中因素b中每一列中每一行數(shù)據(jù)和的平方除以s,進(jìn)一步地,所述比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高度顯著,包括:fs0、fs1分別與fa和fb進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著。進(jìn)一步地,所述比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高度顯著,包括:fs0、fs1分別與fa、fb和fab進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著,若fab<fs0,則因素a和b相互影響不顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著,若fs1≤fab<fs0,則因素a和b相互影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著,若fab≥fs1,則因素a和b相互影響高度顯著。一種基于大數(shù)據(jù)的并行方差分析裝置,該裝置包括:數(shù)據(jù)讀取模塊、程序創(chuàng)建模塊、數(shù)據(jù)計(jì)算模塊、查表模塊和對比分析模塊;數(shù)據(jù)讀取模塊,用于利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),并存儲(chǔ)所述試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為p的矩陣,矩陣的每個(gè)元素為試驗(yàn)數(shù)據(jù)xijx,其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,r代表因素b中不同水平的個(gè)數(shù),因素b中不同影響水平記為b1、b2、…、bj、…、br,s代表重復(fù)做試驗(yàn)的次數(shù);ai和bj所做的試驗(yàn)數(shù)據(jù)為xij1、xij2、…、xijx、…、xijs;i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且s、m和r中至少兩項(xiàng)不能同時(shí)取零;程序創(chuàng)建模塊,用于創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext;數(shù)據(jù)計(jì)算模塊,用于根據(jù)所有試驗(yàn)數(shù)據(jù),在所述sparkcontext中計(jì)算統(tǒng)計(jì)量f;查表模塊,用于加載f分布表,并查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)查詢fs0和fs1;對比分析模塊,用于比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高顯著。本發(fā)明實(shí)施例提供的一種基于大數(shù)據(jù)的并行方差分析方法及裝置,可以通過簡化處理兩個(gè)因素在不同影響水平作用下的試驗(yàn)數(shù)據(jù),處理后的試驗(yàn)數(shù)據(jù)有效地減少了數(shù)據(jù)規(guī)模,使得spss能夠高效完成相應(yīng)分析,實(shí)現(xiàn)了對大數(shù)據(jù)的簡化處理,進(jìn)而對處理后的大數(shù)據(jù)進(jìn)行規(guī)模化分析。當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本實(shí)施例中第一種基于大數(shù)據(jù)的并行方差分析方法的流程圖。圖2為本實(shí)施例中第二種基于大數(shù)據(jù)的并行方差分析方法的流程圖。圖3為本實(shí)施例中第三種基于大數(shù)據(jù)的并行方差分析方法的流程圖。圖4為本實(shí)施例中第四種基于大數(shù)據(jù)的并行方差分析方法的流程圖。圖5為本實(shí)施例中一種基于大數(shù)據(jù)的并行方差分析裝置的示意圖。圖6為本發(fā)明實(shí)施例中對數(shù)據(jù)集大小影響的效果圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。方差分析的基本原理是認(rèn)為不同處理組的均數(shù)間的差別基本來源有兩個(gè):(1)實(shí)驗(yàn)條件,即不同的處理造成的差異,稱為組間差異;(2)隨機(jī)誤差,如測量誤差造成的差異或個(gè)體間的差異,稱為組內(nèi)差異。圖1為本申請實(shí)施例提供的第一種并行計(jì)算方法,該方法包括:s101,利用分布式文件系統(tǒng)hdfs(thehadoopdistributedfilesystem,hadoop分布式文件系統(tǒng))讀取試驗(yàn)數(shù)據(jù),并存儲(chǔ)所述試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為p的矩陣,矩陣的每個(gè)元素為試驗(yàn)數(shù)據(jù)xijx,其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,r代表因素b中不同水平的個(gè)數(shù),因素b中不同影響水平記為b1、b2、…、bj、…、br,s代表重復(fù)做試驗(yàn)的次數(shù);ai和bj所做的試驗(yàn)數(shù)據(jù)為xij1、xij2、…、xijx、…、xijs;i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且s、m和r中至少兩項(xiàng)不能同時(shí)取零;其中,所述形式如下矩陣的試驗(yàn)數(shù)據(jù)為:行為m、列為p的矩陣,矩陣的每個(gè)元素為試驗(yàn)數(shù)據(jù)xijx,其中,其中,i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且s、m和r中至少兩項(xiàng)不能同時(shí)取零。具體的,對當(dāng)m≠0、r=0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)進(jìn)行分析,稱之為單因素方差分析:此時(shí),矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為s的試驗(yàn)數(shù)據(jù)xix。對當(dāng)m≠0、r≠0、s=1時(shí)矩陣中的試驗(yàn)數(shù)據(jù)進(jìn)行分析,稱之為雙因素?zé)o重復(fù)方差分析:此時(shí),矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為r的試驗(yàn)數(shù)據(jù)xij。對當(dāng)m≠0、r≠0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)進(jìn)行分析,稱之為雙因素重復(fù)方差分析:此時(shí),表格中的試驗(yàn)數(shù)據(jù)為:行為r、列為r·s的試驗(yàn)數(shù)據(jù)xijx。s102,創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext(程序入口點(diǎn));其中,所述sparkcontext是編寫spark程序用到的第一個(gè)類,足以說明sparkcontext的重要性;s103,根據(jù)所有試驗(yàn)數(shù)據(jù),在所述sparkcontext中計(jì)算統(tǒng)計(jì)量f;具體的,根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,計(jì)算統(tǒng)計(jì)量f;s104,加載f分布表,并查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)尋找fs0和fs1;其中,所述f分布表是統(tǒng)計(jì)學(xué)中一系列通用的表格,不同信度α對應(yīng)不同分布表,橫坐標(biāo)是x1,縱坐標(biāo)是y1,如f0.05(7,9)就查信度是0.05對應(yīng)的表橫坐標(biāo)為7,縱坐標(biāo)為9處的值;分別在α=0.05和α=0.01根據(jù)組間和組內(nèi)的自由度找出對應(yīng)的值fα。值得一提的是,我們可以在spark實(shí)現(xiàn)查表操作,具體方法為:選取信度為和s1的s0分布表,將f分布表作為程序的輸入文件,用split算子將f分布表存成二維數(shù)組,計(jì)算自由度,利用自由度作為查找二維數(shù)組的下標(biāo),找出結(jié)果即是fs0和fs1。s105,比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高顯著。若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著,若fab<fs0,則因素a和b相互影響不顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著,若fs1≤fab<fs0,則因素a和b相互影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著,若fab≥fs1,則因素a和b相互影響高度顯著。值得一提的是,在對大數(shù)據(jù)進(jìn)行大規(guī)模分析時(shí),可對因素a和b獲得的影響結(jié)果進(jìn)行兩兩組合或三三組合分析,例如:若fa<fs0,fb<fs0,則因素a和因素b都影響不顯著;若fα≥fs1,fb≥fs1,則因素a和因素b都影響高度顯著;若fa<fs0,fs1≤fb<fs0,則因素a影響不顯著,因素b影響一般顯著;若fb<fs0,fs1≤fa<fs0,則因素b影響不顯著,因素a影響一般顯著;若fα≥fs1,fs1≤fb<fs0,則因素a影響高度顯著,因素b影響一般顯著;若fb≥fs1,fs1≤fa<fs0,則因素b影響高度顯著,因素a影響一般顯著,若fα≥fs1,fb<fs0,則因素a影響高度顯著,因素b影響不顯著;若fb≥fs1,fa<fs0,則因素b影響高度顯著,因素a影響不顯著?;谏鲜鼍唧w實(shí)現(xiàn)方式,在本申請的第二種具體實(shí)現(xiàn)方式中,圖2為本實(shí)施例中第二種基于大數(shù)據(jù)的并行方差分析方法的流程圖,第二種并行計(jì)算方法即單因素方差分析方法,該方法包括:s201,利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),所述形式如下表格的試驗(yàn)數(shù)據(jù)為:行為m、列為s表格的試驗(yàn)數(shù)據(jù)xix;其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,s代表在因素a不同影響水平下做的試驗(yàn)次數(shù);所述每個(gè)影響水平試驗(yàn)數(shù)據(jù)為x11、…、xix、…、xms;i∈[1,2,…,m],x∈[1,2,…,s],i、x、s和m屬于自然數(shù),且s和m不能取零,存儲(chǔ)入所述分布式文件系統(tǒng)hdfs中的所有試驗(yàn)數(shù)據(jù)均被集群網(wǎng)絡(luò)中所有連接的計(jì)算機(jī)后續(xù)共同訪問;具體試驗(yàn)數(shù)據(jù)表格如表2所示:表2單因素試驗(yàn)數(shù)據(jù)表格s202,創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext(程序初始運(yùn)行環(huán)境);s203,根據(jù)所有試驗(yàn)數(shù)據(jù),在所述程序初始運(yùn)行環(huán)境sparkcontext中,利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,其中,va為因素a的組間方差,va=sa/fa,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sa,fa為因素a的組間自由度,fa=m-1,fe為組內(nèi)自由度,fe=m·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qt為矩陣中所有數(shù)據(jù)的平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),具體編程過程為:利用map算子讀取所存儲(chǔ)的試驗(yàn)數(shù)據(jù)的每一行數(shù)據(jù),存成數(shù)組a,計(jì)算數(shù)組a的和,建一個(gè)用于存儲(chǔ)數(shù)據(jù)集的變量sumrdd,將所述數(shù)組和存入sumrdd;然后再利用reduce算子對sumrdd進(jìn)行逐行求和,得到所有試驗(yàn)數(shù)據(jù)總和,利用所述數(shù)據(jù)總和除以數(shù)據(jù)總個(gè)數(shù),獲得平均數(shù),利用所述平均數(shù)的平方除以總數(shù)據(jù)個(gè)數(shù),獲得中間變量,記為ct;遍歷數(shù)組a,將數(shù)組a里的每一個(gè)數(shù)據(jù)求平方,獲得數(shù)組b,再對所述數(shù)組b求和,建一個(gè)用于存儲(chǔ)所述數(shù)組b求和的變量sum2rdd,將所述所述數(shù)組b和存入sum2rdd:對sum2rdd求和,獲得中間變量qt;利用map算子讀取sumrdd每一行數(shù)據(jù),并計(jì)算所讀取數(shù)據(jù)的平方值,再用reduce算子對所述平方值求和,將所述和除以行數(shù)m,獲得結(jié)果記為qa。s203,加載f分布表,并查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)尋找fs0和fs1;s204,fs0、fs1分別與fa比較,若fa<fs0,則影響不顯著,fs1≤fa<fs0,則影響一般顯著;若fa≥fs1,則影響高顯著?;谏鲜鼍唧w實(shí)現(xiàn)方式,在本申請的第三種具體實(shí)現(xiàn)方式中,圖3為本實(shí)施例中第三種基于大數(shù)據(jù)的并行方差分析方法的流程圖。第三種并行計(jì)算方法即雙因素?zé)o重復(fù)方差分析方法,該方法包括:s301,利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為r矩陣的試驗(yàn)數(shù)據(jù)xij;其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,因素b中不同影響水平記為b1、b2、…、bj、…、br;因素a和因素b影響水平作用下所做的試驗(yàn)數(shù)據(jù),記為x11、…、xij、…、xmr;i∈[1,2,…,m],j∈[1,2,…,r],i、j、r、和m屬于自然數(shù),且m和r不能取零,存儲(chǔ)入分布式文件系統(tǒng)hdfs中的所有試驗(yàn)數(shù)據(jù)均被集群網(wǎng)絡(luò)中所有連接的計(jì)算機(jī)后續(xù)共同訪問;具體試驗(yàn)數(shù)據(jù)表格如表3所示:表3雙因素?zé)o重復(fù)試驗(yàn)數(shù)據(jù)表格s302,創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext(程序入口);s303,根據(jù)所有試驗(yàn)數(shù)據(jù),在所述程序初始運(yùn)行環(huán)境sparkcontext中,利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fe為組內(nèi)自由度,fe=fa·fb,qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中每一列數(shù)據(jù)和的平方的和,qt為矩陣中所有數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),s304,加載f分布表,查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)尋找fs0和fs1;s305,fs0、fs1分別與fa和fb比較,fs0、fs1分別與fa和fb進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著。基于上述具體實(shí)現(xiàn)方式,在本申請的第四種具體實(shí)現(xiàn)方式中,圖4為本實(shí)施例中第四種基于大數(shù)據(jù)的并行方差分析方法的流程圖。第四種并行計(jì)算方法即雙因素等重復(fù)方差分析方法,該方法包括:s401,利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為r·s的矩陣,所述矩陣中的元素為試驗(yàn)數(shù)據(jù)xijx,其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,r代表因素b中不同水平的個(gè)數(shù),因素b中不同影響水平記為b1、b2、…、bj、…、br,s代表在因素a和因素b每個(gè)影響水平作用下重復(fù)做的試驗(yàn)次數(shù);所述每個(gè)影響水平相互作用下所做的試驗(yàn)數(shù)據(jù)為xi11、xi12、…、xijx、…、xirs;i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且m≠0、r≠0、s≠0,所述分布式文件系統(tǒng)hdfs中的所有試驗(yàn)數(shù)據(jù)均被集群網(wǎng)絡(luò)中所有連接的計(jì)算機(jī)后續(xù)共同訪問;具體試驗(yàn)數(shù)據(jù)表格如表4所示:表4雙因素?zé)o重復(fù)試驗(yàn)數(shù)據(jù)表格s402,創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext(程序入口);s403,根據(jù)所有試驗(yàn)數(shù)據(jù),在所述程序初始運(yùn)行環(huán)境sparkcontext中,利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,因素a和因素b相互作用的統(tǒng)計(jì)量fab:fab=vab/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,vab為因素a和因素b作用下的組間方差,vab=sab/fab,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-w,sab為因素a和因素b相互影響下的組間的偏差平方和,sab=qt-ct-se-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fab為因素a和因素b相互影響下的組間自由度,fab=fa·fb,fe為組內(nèi)自由度,fe=m·r·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中因素b中每一列中數(shù)據(jù)和的平方的和除以因素b中每列數(shù)據(jù)的個(gè)數(shù),qt為矩陣中每個(gè)數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),w為矩陣中因素b中每一列中每一行數(shù)據(jù)和的平方除以s,s404,加載f分布表,查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)找出fs0和fs1;s405,比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高度顯著,包括:fs0、fs1分別與fa、fb和fab進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著,若fab<fs0,則因素a和b相互影響不顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著,若fs1≤fab<fs0,則因素a和b相互影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著,若fab≥fs1,則因素a和b相互影響高度顯著。上述本實(shí)施例中的s0可以取0.01,s1可以取0.05,但是該取值僅僅是實(shí)施例的一種情況。圖5為本申請實(shí)施例提供的一種基于大數(shù)據(jù)的并行方差分析裝置,該裝置包括:數(shù)據(jù)讀取模塊501、程序創(chuàng)建模塊502、數(shù)據(jù)計(jì)算模塊503、查表模塊504和對比分析模塊505;其中,數(shù)據(jù)讀取模塊501,用于利用分布式文件系統(tǒng)hdfs讀取試驗(yàn)數(shù)據(jù),并存儲(chǔ)所述試驗(yàn)數(shù)據(jù),所述試驗(yàn)數(shù)據(jù)為:行為m、列為p的矩陣,矩陣的每個(gè)元素為試驗(yàn)數(shù)據(jù)xijx,其中,m代表因素a中不同影響水平的個(gè)數(shù),因素a中不同影響水平記為a1、a2、…、ai、…、am,r代表因素b中不同水平的個(gè)數(shù),因素b中不同影響水平記為b1、b2、…、bj、…、br,s代表重復(fù)做試驗(yàn)的次數(shù);ai和bj所做的試驗(yàn)數(shù)據(jù)為xij1、xij2、…、xijx、…、xijs;i∈[1,2,…,m],j∈[1,2,…,r],x∈[1,2,…,s],i、j、x、s、m和r屬于自然數(shù),且s、m和r中至少兩項(xiàng)不能同時(shí)取零;程序創(chuàng)建模塊502,用于創(chuàng)建一個(gè)程序初始運(yùn)行環(huán)境sparkcontext;數(shù)據(jù)計(jì)算模塊503,用于根據(jù)所有試驗(yàn)數(shù)據(jù),在所述sparkcontext中計(jì)算統(tǒng)計(jì)量f;查表模塊504,用于加載f分布表,并查詢f分布表,獲得fα值,獲取信度閾值α=s0和α=s1,利用f分布表,根據(jù)信度閾值α=s0和α=s1在組間的自由度和組內(nèi)的自由度對應(yīng)查詢fs0和fs1;對比分析模塊505,用于比較fs0、fs1和f,若f<fs0,則影響不顯著,fs1≤f<fs0,則影響一般顯著;若fα≥fs1,則影響高顯著。具體的,數(shù)據(jù)讀取模塊501,包括:第一數(shù)據(jù)讀取子模塊506,用于利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r=0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述當(dāng)m≠0、r=0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為s的試驗(yàn)數(shù)據(jù)xix。第二數(shù)據(jù)讀取子模塊507,用于利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r≠0、s=1時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述m≠0、r≠0、s=1時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為r的試驗(yàn)數(shù)據(jù)xij。第三數(shù)據(jù)讀取子模塊508,用于利用分布式文件系統(tǒng)hdfs讀取當(dāng)m≠0、r≠0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù),所述m≠0、r≠0、s≠0時(shí)矩陣中的試驗(yàn)數(shù)據(jù)為:行為m、列為r·s的試驗(yàn)數(shù)據(jù)xijx。具體的,數(shù)據(jù)計(jì)算模塊503,還包括:第一數(shù)據(jù)計(jì)算子模塊509,用于根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,其中,va為因素a的組間方差,va=sa/fa,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sa,fa為因素a的組間自由度,fa=m-1,fe為組內(nèi)自由度,fe=m·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qt為矩陣中所有數(shù)據(jù)的平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),第二數(shù)據(jù)計(jì)算子模塊510,用于根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-ct-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fe為組內(nèi)自由度,fe=fa·fb,qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中每一列數(shù)據(jù)和的平方的和,qt為矩陣中所有數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),第三數(shù)據(jù)計(jì)算子模塊511,用于根據(jù)所有試驗(yàn)數(shù)據(jù),利用map算子和reduce算子,按照如下表達(dá)式計(jì)算統(tǒng)計(jì)量f,所述統(tǒng)計(jì)量f的表達(dá)式為:因素a的統(tǒng)計(jì)量fa:fa=va/ve,因素b的統(tǒng)計(jì)量fb:fb=vb/ve,因素a和因素b相互作用的統(tǒng)計(jì)量fab:fab=vab/ve,其中,va為因素a的組間方差,va=sa/fa,vb為因素b的組間方差,vb=sb/fb,vab為因素a和因素b作用下的組間方差,vab=sab/fab,ve為組內(nèi)方差,ve=se/fe,sa為因素a的組間的偏差平方和,sa=qa-ct,sb為因素b的組間的偏差平方和,sb=qb-ct,se為組內(nèi)的偏差平方和,se=qt-w,sab為因素a和因素b相互影響下的組間的偏差平方和,sab=qt-ct-se-sb-sa,fa為因素a中組間自由度,fa=m-1,fb為因素b中組間自由度,fb=r-1,fab為因素a和因素b相互影響下的組間自由度,fab=fa·fb,fe為組內(nèi)自由度,fe=m·r·(s-1),qa為矩陣中每一行數(shù)據(jù)和的平方的和除以總列數(shù),qb為矩陣中因素b中每一列中數(shù)據(jù)和的平方的和除以因素b中每列數(shù)據(jù)的個(gè)數(shù),qt為矩陣中每個(gè)數(shù)據(jù)平方的和,ct為矩陣中所有數(shù)據(jù)和的平方除以總個(gè)數(shù),w為矩陣中因素b中每一列中每一行數(shù)據(jù)和的平方除以s,具體的,對比分析模塊505,包括:第一對比分析子模塊512,用于fs0、fs1分別與fa和fb進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著。第二對比分析子模塊513,用于fs0、fs1分別與fa、fb和fab進(jìn)行比較,若fa<fs0,則因素a影響不顯著,若fb<fs0,則因素b影響一般顯著,若fab<fs0,則因素a和b相互影響不顯著;若fs1≤fa<fs0,則因素a影響一般顯著,若fs1≤fb<fs0,則因素b影響一般顯著,若fs1≤fab<fs0,則因素a和b相互影響一般顯著;若fα≥fs1,則因素a影響高度顯著,若fb≥fs1,則因素b影響高度顯著,若fab≥fs1,則因素a和b相互影響高度顯著?;诖?,對上述方法進(jìn)行了試驗(yàn)驗(yàn)證,具體為:為了驗(yàn)證實(shí)例2-4,將在spark上實(shí)現(xiàn)方差分析的三個(gè)算法即單因素方差分析方法算法、雙因素?zé)o重復(fù)方差分析方法算法、雙因素等重復(fù)方差分析方法算法。隨后,將相同的數(shù)據(jù)分別輸入spss中方差分析和spark上實(shí)現(xiàn)的方差分析,以此驗(yàn)證所實(shí)現(xiàn)算法正確性,以保證可以得到正確的判斷結(jié)果。最后,將不同規(guī)模的數(shù)據(jù)集分別實(shí)驗(yàn)于單因素方差分析,雙因素?zé)o重復(fù)方差分析和雙因素等重復(fù)方差分析,并記錄結(jié)果。(1)正確性評估本實(shí)驗(yàn)主要關(guān)注并行化后的方差分析算法是否能計(jì)算出正確的結(jié)果,結(jié)果以spss軟件計(jì)算得出的為準(zhǔn),結(jié)果相同則視為并行化后計(jì)算正確。單因素方差分析即實(shí)例2:試驗(yàn)數(shù)據(jù):5組不同工藝方法下的實(shí)驗(yàn)結(jié)果,將試驗(yàn)數(shù)據(jù)分別輸入spss和所編寫scala程序中,如表5和6所示,所得結(jié)果如下:表5效應(yīng)檢驗(yàn)平方和自由度均方f值顯著性組間131.957432.9894.306.016組內(nèi)114.915157.661總計(jì)246.87219表6scala程序運(yùn)行結(jié)果由表5和6可以看出,兩個(gè)結(jié)果相同,說明程序計(jì)算正確。雙因素?zé)o重復(fù)方差分析即實(shí)例3:試驗(yàn)數(shù)據(jù):a因素有4個(gè)水平,b因素有6個(gè)水平,因素a和因素b兩兩配對的情況下的實(shí)驗(yàn)結(jié)果。將試驗(yàn)數(shù)據(jù)分別輸入spss和所編寫scala程序中,所得結(jié)果見表7和表如下:表7主體間效應(yīng)檢驗(yàn)表8scala程序運(yùn)行結(jié)果由表7和8可以看出,兩個(gè)結(jié)果相同,說明程序計(jì)算正確。雙因素等重復(fù)方差分析即實(shí)例4:試驗(yàn)數(shù)據(jù):a因素有4個(gè)水平,b因素有3個(gè)水平,因素a和因素b兩兩配對的情況下且每種情況實(shí)驗(yàn)兩次的結(jié)果。將試驗(yàn)數(shù)據(jù)分別輸入spss和所編寫scala程序中,所得結(jié)果見表9和表10:表9主體效應(yīng)檢查表10scala程序運(yùn)行結(jié)果由表9和10可見,兩個(gè)結(jié)果相同,表明程序計(jì)算正確。(2)數(shù)據(jù)集大小的影響為了測試數(shù)據(jù)集大小變化對算法性能的影響,利用spark中產(chǎn)生正態(tài)分布向量算子:normalvectorrdd來生成指定行數(shù)、列數(shù)的正態(tài)分布數(shù)據(jù)。數(shù)據(jù)集規(guī)模分別是200m,2g,5g,10g,見圖6,圖6顯示了單因素方差分析,雙因素?zé)o重復(fù)方差分析和雙因素等重復(fù)方差分析算法分別對4個(gè)數(shù)據(jù)處理的運(yùn)行時(shí)間。由圖6可見,三個(gè)算法中,運(yùn)行時(shí)間隨著算法的復(fù)雜性增加而增加,實(shí)現(xiàn)了大規(guī)模數(shù)據(jù)進(jìn)行方差分析,其中,雙因素等重復(fù)方差分析最為復(fù)雜所以耗時(shí)最久。由上可知,當(dāng)遇到大數(shù)據(jù)規(guī)模時(shí),常用統(tǒng)計(jì)軟件spss已經(jīng)無法處理時(shí),anovaonspark可以高效完成相應(yīng)分析,并且由于輸入數(shù)據(jù)格式的改變,有效減少了數(shù)據(jù)規(guī)模。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本說明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。當(dāng)前第1頁12