一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了基于BP神經(jīng)網(wǎng)絡(luò)和ARIMA組合模型的藥品銷量預(yù)測(cè)方法;解決了基于傳統(tǒng)研究方法或人工神經(jīng)網(wǎng)絡(luò)的單項(xiàng)預(yù)測(cè)方法預(yù)測(cè)精度低的問題。本方法是先用ARIMA模型預(yù)測(cè)某類藥品的歷史年銷售量,是其線性規(guī)律信息包含在了ARIMA模型的預(yù)測(cè)誤差中,然后用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)ARIMA模型的誤差,使其非線性規(guī)律包含在BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果中。最后用ARIMA的預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)相加得到組合預(yù)測(cè)模型的預(yù)測(cè)值;本方法能夠較大程度地克服時(shí)間序列法在預(yù)測(cè)藥品銷量時(shí)的缺陷,顯著提高藥品銷量預(yù)測(cè)精度;能夠較好的預(yù)測(cè)藥品銷量,可以作為未來藥品銷量預(yù)測(cè)方法;能夠通過Eviews軟件簡(jiǎn)單實(shí)現(xiàn)其預(yù)測(cè)藥品銷量過程,實(shí)用性強(qiáng),便于推廣應(yīng)用。
【專利說明】
一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)在醫(yī)藥行業(yè)銷售領(lǐng)域,特別是一種基于混合的ARMA模型 和人工神經(jīng)網(wǎng)絡(luò)模型的醫(yī)藥銷量的預(yù)測(cè)。
【背景技術(shù)】
[0002] 醫(yī)藥市場(chǎng)作為我國(guó)社會(huì)市場(chǎng)經(jīng)濟(jì)的重要組成部分,對(duì)于國(guó)民經(jīng)濟(jì)的可持續(xù)發(fā)展具 有重大的影響。在醫(yī)藥市場(chǎng)營(yíng)銷中,藥品配給是其中的一項(xiàng)重要內(nèi)容,不斷改進(jìn)配送數(shù)量預(yù) 測(cè)方法,提高預(yù)測(cè)精度對(duì)醫(yī)藥企業(yè)具有重要意義。通過對(duì)藥品銷售的預(yù)測(cè)分析,醫(yī)藥企業(yè)可 以更合理的確定藥品配送種類和數(shù)量,從而減少企業(yè)成本、提高效益,是企業(yè)進(jìn)一步邁向信 息化;醫(yī)藥企業(yè)可以通過藥品銷量預(yù)測(cè)掌握各類藥品的銷售情況,進(jìn)而平衡連鎖藥店和企 業(yè)之間的矛盾;連鎖藥店如果不能合理地配送藥品,保證銷售的需求,不僅會(huì)帶來藥品缺貨 導(dǎo)致銷售機(jī)會(huì)的流失,使銷售業(yè)績(jī)下降;并且也會(huì)傷害消費(fèi)者與企業(yè)之間的關(guān)系,影響企業(yè) 的信譽(yù)和市場(chǎng)份額的占有率;而且如果當(dāng)藥品銷售量不佳,導(dǎo)致的藥品積壓現(xiàn)象也會(huì)越來 越嚴(yán)重,會(huì)增加藥品庫(kù)存所需的費(fèi)用,繼而會(huì)影響企業(yè)資金流動(dòng),增加企業(yè)負(fù)荷,這對(duì)企業(yè) 都是相當(dāng)不利的??偟膩碚f,準(zhǔn)確地藥品銷售預(yù)測(cè)是解決上述矛盾的最好方法,通過可行的 預(yù)測(cè)方法,得出較為理想的預(yù)測(cè)結(jié)果,然后根據(jù)預(yù)測(cè)結(jié)果做出相應(yīng)的配送藥品方案,是企業(yè) 各部門能很好的配合,降低不必要的開支,達(dá)到利潤(rùn)最大化是非常必要的。
[0003] 目前,已經(jīng)存在多種銷售量的預(yù)測(cè)方法,例如時(shí)間序列、回歸分析、灰色預(yù)測(cè)、神經(jīng) 網(wǎng)絡(luò)、模糊技術(shù)和遺傳算法等,在實(shí)際的銷售預(yù)測(cè)中也都取得了較為理想的效果。其中,運(yùn) 用最多的是時(shí)間序列法,即僅通過歷史藥品月售銷量的變化規(guī)律直接預(yù)測(cè)未來的藥品月售 銷量,其優(yōu)點(diǎn)是簡(jiǎn)單易行,便于掌握,能夠充分運(yùn)用原時(shí)間序列的各項(xiàng)數(shù)據(jù),計(jì)算速度快,對(duì) 模型參數(shù)有動(dòng)態(tài)確定的能力。因此,如果直接尋找歷史藥品月售量的發(fā)展規(guī)律,在此基礎(chǔ)上 進(jìn)行藥品月售量預(yù)測(cè)就會(huì)造成預(yù)測(cè)精度不高的問題。
[0004] 因此,需要一種針對(duì)醫(yī)藥行業(yè)藥品銷量的預(yù)測(cè)方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的之一是提出一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法;本發(fā)明的目 的之二是提出一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng)。
[0006] 本發(fā)明的目的之一是通過以下技術(shù)方案來實(shí)現(xiàn)的:
[0007] 本發(fā)明提供的一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,包括以下步驟:
[0008] 建立AR頂A模型;
[0009] 獲取藥品銷量歷史數(shù)據(jù)序列并輸入到ARIMA模型預(yù)測(cè)獲取ARIMA模型預(yù)測(cè)誤差和 ARIMA預(yù)測(cè)結(jié)果;
[0010] 建立BP神經(jīng)網(wǎng)絡(luò)模型;
[0011]將ARMA模型預(yù)測(cè)誤差輸入到BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié) 果;
[0012] 將ARB1A預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè)結(jié)果。
[0013] 進(jìn)一步,所述ARIMA模型通過以下步驟建立:
[0014]通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)P;
[0015]通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d;
[0016] 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q。
[0017] 進(jìn)一步,所述差分次數(shù)d通過以下步驟來獲取:
[0018] 使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序 列圖;
[0019] 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖;
[0020] 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次 數(shù)即為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d。
[0021] 進(jìn)一步,所述自回歸系數(shù)p通過以下步驟來獲?。?br>[0022] 使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù) 序列的自相關(guān)圖;
[0023] 根據(jù)自相關(guān)圖在p階后不再超出置信邊界,確定自回歸系數(shù)p。
[0024] 進(jìn)一步,所述移動(dòng)平均系數(shù)q通過以下步驟來獲取:
[0025] 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù) 據(jù)序列的偏自相關(guān)圖;
[0026] 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。
[0027] 進(jìn)一步,所述ARIMA模型預(yù)測(cè)誤差通過以下步驟來獲?。?br>[0028] 根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有 線性規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q);
[0029] 使用ARB!A(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列;
[0030]使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到ARIMA(p,d,q)的預(yù)測(cè)誤 差序列。
[0031] 進(jìn)一步,所述BP神經(jīng)網(wǎng)絡(luò)模型采用三層BP神經(jīng)網(wǎng)絡(luò)模型。
[0032] 本發(fā)明的目的之二是通過以下技術(shù)方案來實(shí)現(xiàn)的:
[0033] 本發(fā)明提供的一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng),其特征在于:包括藥品 銷量歷史數(shù)據(jù)序列采集模塊、ARIMA模型模塊、BP神經(jīng)網(wǎng)絡(luò)模型模塊、預(yù)測(cè)結(jié)果模塊;
[0034]所述藥品銷量歷史數(shù)據(jù)序列采集模塊,用于獲取藥品銷量歷史數(shù)據(jù)序列;
[0035]所述ARIMA模型模塊,用于建立ARIMA模型;并將藥品銷量歷史數(shù)據(jù)序列輸入到 ARIMA模型預(yù)測(cè)獲取ARIMA模型預(yù)測(cè)誤差和ARIMA預(yù)測(cè)結(jié)果;
[0036]所述BP神經(jīng)網(wǎng)絡(luò)模型模塊,用于建立BP神經(jīng)網(wǎng)絡(luò)模型;并將AR頂A模型預(yù)測(cè)誤差輸 入到BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果;
[0037] 所述預(yù)測(cè)結(jié)果模塊,用于將ARMA預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè) 結(jié)果。
[0038] 進(jìn)一步,所述ARB1A模型模塊通過以下步驟建立:
[0039] 通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)p;
[0040] 通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d;
[0041] 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q;
[0042] 所述差分次數(shù)d通過以下步驟來獲取:
[0043]使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序 列圖;
[0044] 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖;
[0045] 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次 數(shù)即為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d;
[0046] 所述自回歸系數(shù)p通過以下步驟來獲?。?br>[0047] 使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù) 序列的自相關(guān)圖;
[0048] 根據(jù)自相關(guān)圖在p階后不再超出置信邊界,確定自回歸系數(shù)p;
[0049] 所述移動(dòng)平均系數(shù)q通過以下步驟來獲?。?br>[0050] 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù) 據(jù)序列的偏自相關(guān)圖;
[0051] 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。
[0052] 進(jìn)一步,所述ARIMA模型預(yù)測(cè)誤差通過以下步驟來獲取:
[0053] 根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有 線性規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q);
[0054] 使用ARB!A(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列;
[0055] 使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到ARIMA(p,d,q)的預(yù)測(cè)誤 差序列。
[0056]由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點(diǎn):
[0057]本發(fā)明提供的一種基于BP神經(jīng)網(wǎng)絡(luò)和ARMA組合模型的藥品銷量預(yù)測(cè)方法;解決 了基于傳統(tǒng)研究方法或人工神經(jīng)網(wǎng)絡(luò)的單項(xiàng)預(yù)測(cè)方法預(yù)測(cè)精度低的問題。本方法是先用 AR頂A模型預(yù)測(cè)某類藥品的歷史年銷售量,是其線性規(guī)律信息包含在了 ARIMA模型的預(yù)測(cè)誤 差中,然后用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)AR頂A模型的誤差,使其非線性規(guī)律包含在BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè) 結(jié)果中。最后用AR頂A的預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)相加得到組合預(yù)測(cè)模型的預(yù)測(cè)值;本 方法能夠較大程度地克服時(shí)間序列法在預(yù)測(cè)藥品銷量時(shí)的缺陷,顯著提高藥品銷量預(yù)測(cè)精 度;能夠較好的預(yù)測(cè)藥品銷量,可以作為未來藥品銷量預(yù)測(cè)方法;能夠通過Eviews軟件簡(jiǎn)單 實(shí)現(xiàn)其預(yù)測(cè)藥品銷量過程,實(shí)用性強(qiáng),便于推廣應(yīng)用。
[0058]本發(fā)明的其他優(yōu)點(diǎn)、目標(biāo)和特征在某種程度上將在隨后的說明書中進(jìn)行闡述,并 且在某種程度上,基于對(duì)下文的考察研究對(duì)本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可 以從本發(fā)明的實(shí)踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點(diǎn)可以通過下面的說明書來實(shí)現(xiàn)和 獲得。
【附圖說明】
[0059]本發(fā)明的【附圖說明】如下。
[0060] 圖1為AR頂A-ANN混合模型原理圖。
[0061] 圖2為藥品銷量預(yù)測(cè)的具體實(shí)現(xiàn)過程。
[0062]圖3為1980-1984年鏈霉素的銷售量曲線圖(單位:萬支)。
[0063]圖4為一次差分曲線圖。
[0064]圖5為一次差分后銷售數(shù)據(jù)序列的1-20階的自回歸圖。
【具體實(shí)施方式】
[0065]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
[0066] 實(shí)施例1
[0067] 如圖所示,本實(shí)施例提供的一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,包括以下 步驟:
[0068] 建立AR頂A模型;
[0069] 獲取藥品銷量歷史數(shù)據(jù)序列并輸入到ARIMA模型預(yù)測(cè)獲取ARIMA模型預(yù)測(cè)誤差和 ARIMA預(yù)測(cè)結(jié)果;
[0070] 建立BP神經(jīng)網(wǎng)絡(luò)模型;
[0071]將ARMA模型預(yù)測(cè)誤差輸入到BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié) 果;
[0072] 將ARB1A預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè)結(jié)果。
[0073] 所述ARB1A模型通過以下步驟建立:
[0074]通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)p;
[0075]通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d;
[0076] 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q。
[0077] 所述差分次數(shù)d通過以下步驟來獲?。?br>[0078]使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序 列圖;
[0079] 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖;
[0080] 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次 數(shù)即為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d。
[0081 ]所述自回歸系數(shù)p通過以下步驟來獲?。?br>[0082] 使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù) 序列的自相關(guān)圖;
[0083] 根據(jù)自相關(guān)圖在p階后不再超出置信邊界,確定自回歸系數(shù)p。
[0084] 所述移動(dòng)平均系數(shù)q通過以下步驟來獲?。?br>[0085] 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù) 據(jù)序列的偏自相關(guān)圖;
[0086] 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。
[0087] 所述ARIMA模型預(yù)測(cè)誤差通過以下步驟來獲取:
[0088] 根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有 線性規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q);
[0089] 使用ARB!A(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列;
[0090]使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到ARIMA(p,d,q)的預(yù)測(cè)誤 差序列。
[0091] 所述BP神經(jīng)網(wǎng)絡(luò)模型采用三層BP神經(jīng)網(wǎng)絡(luò)模型。
[0092] 本實(shí)施例提供的acf自相關(guān)函數(shù)為R語(yǔ)言中計(jì)算差分函數(shù)diff,用于計(jì)算向量或者 數(shù)組(按列)的有限差分;
[0093]本實(shí)施例提供的藥品銷量歷史數(shù)據(jù)具體處理過程如下:
[0094] source〈-c(110.672,113.685,128.301,85.935,117.725,131.058,126.537, 106.203,
[0095] 143.946,133.739,115.436,97.001,111.753,112.773,86.139,76.955,98.684, 103.113,110.837,70.918)
[0096] sale<-ts (source frequency = 4, start = c( 1980,1))
[0097] 使用ts函數(shù)生產(chǎn)實(shí)驗(yàn)數(shù)據(jù)的時(shí)間序列,從1980年第一季度開始,每年4個(gè)季度
[0098] salediff l〈_diff (sale,differences = l)
[0099] plot.ts(salediff1)
[0100] salediff2〈_diff (sale,differences = 2)
[0101] plot·ts(salediff2)
[0102] salediff3〈_diff (sale,differences = 3)
[0103] plot·ts(salediff3)
[0104] 使用diff函數(shù)分別對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行1,2,3次差分,并畫出差分后時(shí)間序列曲 線圖,選擇較為平穩(wěn)的差分次數(shù)
[0105] acf (salediff 1, lag. max = 20)
[0106] pacf (salediff 1, lag.max = 20)
[0107] 通過acf函數(shù),pacf函數(shù)分別求得差分后自相關(guān)圖以及偏自相關(guān)圖,確定合適的滯 后次數(shù),從而確定自相關(guān)系數(shù)和偏自相關(guān)系數(shù)
[0108] salearima<-arima( sale, order = c(0,1,1))
[0109] salearimaforecast<-forecast. Arima(salearima,h = 4, level = c(95.5))
[0110] 求得ar ima模型的各個(gè)參數(shù)后,通過ar ima函數(shù)建立ar ima模型,然后通過 forecast .Arima函數(shù)進(jìn)行預(yù)測(cè),求得Arima模型的預(yù)測(cè)結(jié)果
[0111] net〈_newff(n.neurons = c(4,8,2,l),1 earning .rate.global = le_2, momentum.global = 0·5,error.criterium=〃LMS〃,Stao = ΝΑ,hidden. layer = 〃tansig〃, output · layer = ''pure 1 in〃,met hod = 〃ADAPTgdwm〃)
[0112] result<-train(net ,datal [,1:4] ,datal[,5],error. criterium=//LMS//,report = TRUE,sh ow.step = 100,n.shows = 5)
[0113] y<-sim(result$net,datal[5:8,])
[0114] 通過newff函數(shù)建立三層BP神經(jīng)網(wǎng)絡(luò)模型,然后通過train函數(shù)使用數(shù)據(jù)對(duì)建立的 模型進(jìn)行訓(xùn)練,最后通過sim函數(shù)求得BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果。
[0115] 本實(shí)施例還提供了一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng),包括藥品銷量歷史 數(shù)據(jù)序列采集模塊、ARIMA模型模塊、BP神經(jīng)網(wǎng)絡(luò)模型模塊、預(yù)測(cè)結(jié)果模塊;
[0116] 所述藥品銷量歷史數(shù)據(jù)序列采集模塊,用于獲取藥品銷量歷史數(shù)據(jù)序列;
[0117] 所述ARIMA模型模塊,用于建立ARIMA模型;并將藥品銷量歷史數(shù)據(jù)序列輸入到 ARIMA模型預(yù)測(cè)獲取ARIMA模型預(yù)測(cè)誤差和ARIMA預(yù)測(cè)結(jié)果;
[0118] 所述BP神經(jīng)網(wǎng)絡(luò)模型模塊,用于建立BP神經(jīng)網(wǎng)絡(luò)模型;并將AR頂A模型預(yù)測(cè)誤差輸 入到BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果;
[0119] 所述預(yù)測(cè)結(jié)果模塊,用于將ARMA預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè) 結(jié)果。
[0120] 所述ARB1A模型模塊通過以下步驟建立:
[0121] 通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)p;
[0122] 通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d;
[0123] 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q;
[0124] 所述差分次數(shù)d通過以下步驟來獲?。?br>[0125] 使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序 列圖;
[0126] 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖;
[0127] 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次 數(shù)即為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d;
[0128] 所述自回歸系數(shù)p通過以下步驟來獲?。?br>[0129] 使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù) 序列的自相關(guān)圖;
[0130] 根據(jù)自相關(guān)圖在p階后不再超出置信邊界,確定自回歸系數(shù)p;
[0131] 所述移動(dòng)平均系數(shù)q通過以下步驟來獲?。?br>[0132] 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù) 據(jù)序列的偏自相關(guān)圖;
[0133] 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。
[0134] 所述ARB1A模型預(yù)測(cè)誤差通過以下步驟來獲?。?br>[0135] 根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有 線性規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q);
[0136] 使用ARB!A(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列;
[0137] 使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到ARIMA(p,d,q)的預(yù)測(cè)誤 差序列。
[0138] 實(shí)施例2
[0139] 本實(shí)施例提供的一種基于BP神經(jīng)網(wǎng)絡(luò)和ARMA組合模型的藥品銷量預(yù)測(cè)方法。該 方法針對(duì)僅用基于傳統(tǒng)研究方法或人工神經(jīng)網(wǎng)絡(luò)的單項(xiàng)預(yù)測(cè)方法預(yù)測(cè)精度低的問題。如圖 1所示,本實(shí)施例實(shí)現(xiàn)上述預(yù)測(cè)過程可以使用R語(yǔ)言簡(jiǎn)單的實(shí)現(xiàn)。
[0140]實(shí)現(xiàn)本發(fā)明項(xiàng)目的技術(shù)方案使:首先,用R語(yǔ)言包中diff差分函數(shù)平穩(wěn)原藥品銷量 序列,確定差分次數(shù)d,然后使用R語(yǔ)言包中的acf自相關(guān)函數(shù)來確定原藥品銷量序列的自回 歸系數(shù)P,最后使用R語(yǔ)言包中的P a c f偏自相關(guān)函數(shù)來確定原藥品銷量序列的移動(dòng)平均項(xiàng) 數(shù)。從而確定原藥品銷量時(shí)間序列線性規(guī)律部分的六1?0^(?,(1^)模型。然后針對(duì)41?頂六(?, d,q)預(yù)測(cè)模型的預(yù)測(cè)部分使用BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè),本發(fā)明使用了三層BP神經(jīng)網(wǎng)絡(luò)模 型,即只含有一個(gè)隱藏層的BP神經(jīng)網(wǎng)絡(luò)模型。最后將六1?0^(?,(1,(1)模型的預(yù)測(cè)結(jié)果和三層 BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果進(jìn)行相加,即得原藥品銷量的最后預(yù)測(cè)結(jié)果。所述方法的具體 實(shí)施步驟如下:
[0141]確定原藥品銷售數(shù)據(jù)序列p_data的差分次數(shù)d。
[0142] ①首先使用R語(yǔ)言包中提供diff差分函數(shù)對(duì)原藥品銷售數(shù)據(jù)序列p_data進(jìn)行一次 差分,畫出差分后的時(shí)間序列圖d_l。
[0143] ②同理可以對(duì)原藥品銷售數(shù)據(jù)序列進(jìn)行二次差分,三次差分,并作出差分后的曲 線圖。
[0144] ③基本進(jìn)行3次差分后,原來不平穩(wěn)的時(shí)間序列就會(huì)變得相對(duì)平穩(wěn)了,比較進(jìn)行多 次差分后的曲線圖,選擇一個(gè)比較平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次數(shù)即為原藥 品銷售序列P_data的差分次數(shù)d。
[0145] 確定原藥品銷售數(shù)據(jù)序列的自回歸系數(shù)p。
[0146] ①使用R語(yǔ)言包提供的acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù)lag為20,畫出經(jīng)過上面d 次差分后的藥品銷售數(shù)據(jù)序列的1-20階自相關(guān)圖acf_p。
[0147] ②觀察求得的自相關(guān)圖階后不再超出置信邊界,從而確定自相關(guān)系數(shù)p。
[0148] 確定原藥品銷售數(shù)據(jù)序列的移動(dòng)平均系數(shù)q。
[0149] ①使用R語(yǔ)言包提供的pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù)lag為20,畫出經(jīng)過上 面d次差分后的藥品銷售數(shù)據(jù)序列的1-10階偏自相關(guān)圖pacf_p。
[0150] ②觀察求得的偏自相關(guān)圖階后不再超出置信邊界,從而確定移動(dòng)平均 系數(shù)q。
[0151]使用ARIMA(p,d,q)預(yù)測(cè)原藥品銷售數(shù)據(jù)序列p_data,并求得ARIMA(p,d,q)的預(yù)測(cè) 誤差值序列w_data。
[0152] ①根據(jù)上面步驟確定的差分次數(shù)d,自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q,確定原藥品銷 售數(shù)據(jù)序列具有線性規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q)。
[0153] ②使用求得的ARIMA(p,d,q)模型預(yù)測(cè)原藥品銷售數(shù)據(jù)序列?_(1&丨&,求得預(yù)測(cè)值序 列f_data。
[0154]③使用原藥品銷售數(shù)據(jù)序列p_data減去求得的預(yù)測(cè)值序得到ARIMA(p, d, q)的預(yù)測(cè)誤差序
[0155] 使用三層BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)上一步得到的ARIMA(p,d,q)預(yù)測(cè)誤差值序列界_ data,得到BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)值序列bp_data。
[0156] ①根據(jù)求得的預(yù)測(cè)誤差序列,確定三層BP神經(jīng)網(wǎng)絡(luò)模型的η個(gè)輸入項(xiàng),其中確定方 法為預(yù)測(cè)誤差序列的每5項(xiàng)作為三層ΒΡ神經(jīng)網(wǎng)絡(luò)模型的一個(gè)網(wǎng)絡(luò)輸入項(xiàng)。
[0157] ②使用萊溫博格-馬克沃特(L-M算法)的5-8-1網(wǎng)絡(luò)結(jié)構(gòu)的ΒΡ神經(jīng)網(wǎng)絡(luò)算法進(jìn)行預(yù) 測(cè)。
[0158] 將上面步驟得到的f_data和bp_data相加,得到原藥品銷售數(shù)據(jù)序列p_data的預(yù) 測(cè)值 pf_data。
[0159] 實(shí)施例3
[0160]本實(shí)施樣例采用了我國(guó)黑龍江省1980-1985年每季度的鏈霉素銷售量,其中使用 1980-1984年每季度的鏈霉素銷量作為訓(xùn)練數(shù)據(jù),1985年每季度的鏈霉素銷量作為測(cè)試數(shù) 據(jù)。
[0161] 樣本數(shù)據(jù)如表1所示,表1.樣本數(shù)據(jù)(單位:萬支)
[0162]
[0163] ^具體預(yù)測(cè)步驟如下:
[0164] 確定AR頂A(p,d,q)模型的參數(shù)p,d,q,并使用求得的AR頂A模型預(yù)測(cè)1985年每季度 的鏈霉素銷量。
[0165] ①使用R語(yǔ)言載入1980-1984年每季度的鏈霉素銷售量,并畫出時(shí)間-銷量曲線圖 3。然后對(duì)其進(jìn)行一次差分,并畫出一次差分后的圖4,此時(shí)發(fā)現(xiàn)一次差分后銷量曲線變得比 較平穩(wěn)了,因此可以確定差分次數(shù)d為1。因此求出一次差分后的銷售數(shù)據(jù)序列salediff 1。
[0166] ②對(duì)一次差分后的銷售數(shù)據(jù)序列salediff!進(jìn)行自回歸分析,使用R語(yǔ)言提供的 acf自回歸函數(shù)3〇汽8316乜€0,138.11^1 = 20)求得〇-20階的自回歸圖5。從圖5中可以看出0 階后的所有值都沒有超出置信邊界,所以可以確定自回歸系數(shù)P為0。
[0167] ③對(duì)一次差分后的銷售數(shù)據(jù)序列salediff!進(jìn)行偏自回歸分析,使用R語(yǔ)言提供的 口&〇付扁自相關(guān)函數(shù)口3〇;^8316(11€;^,138.1]^1 = 20)求得1-10階的偏自相關(guān)圖。然后得到1階 后的所有值都沒有超出置信邊界,所以可以確定偏自回歸系數(shù)q為1。
[0168] ④根據(jù)上面求得的p,d,q值可以建立ARMA(0,1,1)預(yù)測(cè)模型,然后使用ARMA(p, d,q)預(yù)測(cè)模型預(yù)測(cè)銷售數(shù)據(jù)source,具體可在R語(yǔ)言中實(shí)現(xiàn)。
[0169] 最后說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較 佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技 術(shù)方案進(jìn)行修改或者等同替換,而不脫離本技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本發(fā)明 的權(quán)利要求范圍當(dāng)中。
【主權(quán)項(xiàng)】
1. 一種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:包括以下步驟: 建立ARIMA模型; 獲取藥品銷量歷史數(shù)據(jù)序列并輸入到ARMA模型預(yù)測(cè)獲取AR頂A模型預(yù)測(cè)誤差和AR頂A 預(yù)測(cè)結(jié)果; 建立BP神經(jīng)網(wǎng)絡(luò)模型; 將ARIMA模型預(yù)測(cè)誤差輸入到BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果; 將ARIMA預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè)結(jié)果。2. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述ARIMA 模型通過以下步驟建立: 通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)p; 通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d; 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q。3. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述差分次 數(shù)d通過以下步驟來獲?。?使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序列 圖; 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖; 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次數(shù)即 為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d。4. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述自回歸 系數(shù)P通過以下步驟來獲?。?使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù)序列 的自相關(guān)圖; 根據(jù)自相關(guān)圖在P階后不再超出置信邊界,確定自回歸系數(shù)P。5. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述移動(dòng)平 均系數(shù)q通過以下步驟來獲取: 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù)序 列的偏自相關(guān)圖; 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。6. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述ARIMA 模型預(yù)測(cè)誤差通過以下步驟來獲?。?根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有線性 規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q); 使用ARIMA(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列; 使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到41?頂4(?,(1,(1)的預(yù)測(cè)誤差序 列。7. 如權(quán)利要求1所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)方法,其特征在于:所述BP神經(jīng) 網(wǎng)絡(luò)模型采用三層BP神經(jīng)網(wǎng)絡(luò)模型。8. -種基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng),其特征在于:包括藥品銷量歷史數(shù)據(jù)序 列采集模塊、ARIMA模型模塊、BP神經(jīng)網(wǎng)絡(luò)模型模塊、預(yù)測(cè)結(jié)果模塊; 所述藥品銷量歷史數(shù)據(jù)序列采集模塊,用于獲取藥品銷量歷史數(shù)據(jù)序列; 所述ARMA模型模塊,用于建立ARMA模型;并將藥品銷量歷史數(shù)據(jù)序列輸入到AR頂A模 型預(yù)測(cè)獲取ARIMA模型預(yù)測(cè)誤差和ARIMA預(yù)測(cè)結(jié)果; 所述BP神經(jīng)網(wǎng)絡(luò)模型模塊,用于建立BP神經(jīng)網(wǎng)絡(luò)模型;并將ARMA模型預(yù)測(cè)誤差輸入到 BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測(cè)獲取BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果; 所述預(yù)測(cè)結(jié)果模塊,用于將ARIMA預(yù)測(cè)結(jié)果與BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果疊加得到預(yù)測(cè)結(jié)果。9. 如權(quán)利要求8所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng),其特征在于:所述ARIMA 模型模塊通過以下步驟建立: 通過acf自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的自回歸系數(shù)p; 通過diff差分函數(shù)平穩(wěn)藥品銷量歷史數(shù)據(jù)序列確定差分次數(shù)d; 通過pacf偏自相關(guān)函數(shù)來確定藥品銷量歷史數(shù)據(jù)序列的移動(dòng)平均項(xiàng)數(shù)q; 所述差分次數(shù)d通過以下步驟來獲取: 使用diff差分函數(shù)對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行一次差分,獲取差分后的時(shí)間序列 圖; 對(duì)藥品銷量歷史數(shù)據(jù)序列進(jìn)行二次差分和三次差分,并獲取差分后的曲線圖; 比較進(jìn)行多次差分后的曲線圖,選擇平穩(wěn)的差分后的時(shí)間序列圖,對(duì)應(yīng)的差分次數(shù)即 為藥品銷量歷史數(shù)據(jù)序列的差分次數(shù)d; 所述自回歸系數(shù)P通過以下步驟來獲取: 使用acf自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù)序列 的自相關(guān)圖; 根據(jù)自相關(guān)圖在P階后不再超出置信邊界,確定自回歸系數(shù)P; 所述移動(dòng)平均系數(shù)q通過以下步驟來獲?。? 使用pacf偏自相關(guān)函數(shù),并設(shè)置滯后階數(shù),畫出經(jīng)過d次差分后的藥品銷量歷史數(shù)據(jù)序 列的偏自相關(guān)圖; 根據(jù)偏自相關(guān)圖在q階后不再超出置信邊界,確定移動(dòng)平均系數(shù)q。10. 如權(quán)利要求8所述的基于混合模型的醫(yī)藥銷量的預(yù)測(cè)系統(tǒng),其特征在于:所述ARIMA 模型預(yù)測(cè)誤差通過以下步驟來獲?。?根據(jù)差分次數(shù)d、自回歸項(xiàng)數(shù)p和移動(dòng)平均項(xiàng)數(shù)q確定藥品銷量歷史數(shù)據(jù)序列具有線性 規(guī)律部分的預(yù)測(cè)模型ARIMA(p,d,q); 使用ARIMA(p,d,q)模型預(yù)測(cè)藥品銷量歷史數(shù)據(jù)序列,求得預(yù)測(cè)值序列; 使用藥品銷量歷史數(shù)據(jù)序列減去求得的預(yù)測(cè)值序列,得到41?頂4(?,(1,(1)的預(yù)測(cè)誤差序 列。
【文檔編號(hào)】G06N3/02GK105976199SQ201610264506
【公開日】2016年9月28日
【申請(qǐng)日】2016年4月26日
【發(fā)明人】李季, 申永飛
【申請(qǐng)人】重慶大學(xué)