灰色預測模型 GM(1,1)- 級比檢測不通過 - 平移變換常數c的確定(內含代碼)

灰色預測模型 GM(1,1) - 級比檢測不通過 - 平移變換常數c的確定(內含代碼)

謝謝!

(哇-------沒注意就5600多訪問量了,激動!!!!我的初衷只是想把blog作爲我的學習筆記,回首往昔,也會發現值得讓我引以爲豪的事,風雲變幻,初心不改!我會加油的

灰色預測概述

相信當我們在做數學建模的時候,一定會遇到數據不符合模型規則的情況,這時我們可能會面臨兩個選擇
1.對數據進行修改,使其符合模型規則(大多數人的選擇)
2.選擇其他方法(慎用)

灰色預測的主要特點是模型使用的不是原始數據序列,而是生成的數據序列。其核心體系是灰色模型(Grey Model,簡稱GM),即對原始數據作累加生成(或其它方法生成)得到近似的指數規律再進行建模的方法。灰色預測模型對於不同問題採用不同模型,GM(1,1)模型主要解決生成序列是有指數變化規律,只能描述單調的變化過程。
優點是不需要很多的數據,一般只需要4個數據就夠,能解決歷史數據少、序列的完整性及可靠性低的問題;能利用微分方程來充分挖掘系統的本質,精度高;能將無規律的原始數據進行生成得到規律性較強的生成序列,運算簡便,易於檢驗,具有不考慮分佈規律,不考慮變化趨勢。缺點是隻適用於中短期的預測,只適合指數增長的預測。
灰色生成將原始數據列中的數據,按照某種要求作數據處理稱爲灰色生成。對原始數據的生成就是企圖從雜亂無章的現象中去發現內在規律。常用的生成方式有累加生成,累減生成,均值生成,級比生成等。
灰色預測詳細內容請轉至下行鏈接BLOG,這裏不做贅述
鏈接: link

級比分析

言歸正傳,我們此篇blog主要討論的是如何計算級比檢測不通過時,需要平移變換中的常數c,我也看了好多blog,並沒有人分享具體的方法,可能是大家在建模比賽時只是在論文中提及一下級比檢測,真正編程時便忽略了這個步驟,不過這勢必會對模型最終的預測值產生較大影響,最終對成績排名造成影響。
不才 也是根據我的c-py經驗編寫的matlab程序,用的是較爲傳統的編程思想,並沒有立足於matlab編譯程序,如有異議,請雅正。

級比分析何時使用

在這裏插入圖片描述
在這裏插入圖片描述

具體代碼

c的確定方法:(代碼)

if ( exp(-2 / (length_x0+1)) < min(Ratio) && max(Ratio) < exp(2 / (length_x0+1)) )
#%能夠進入if循環說明符合級比檢測,直接進行灰色預測就可。
else
    disp('數據不滿足檢驗,將對數據進行處理')
    while(1)
        x0 = x0 + 1;
        Ratio = zeros(1 , length_x0 - 1);
        for i = 1:length_x0 - 1
            Ratio(i) = x0(i) / x0(i+1);
        end
        if( exp(-2 / (length_x0+1)) < min(Ratio) && max(Ratio) < exp(2 / (length_x0+1)) )
            break;
        end
    end
    c = x0(1,1) - b;
    fprintf( '數據進行處理完成,c的值爲%d\n' , c ); 
    #c的值已經求出,下一步就是原始數組加上c再次進行if判斷即可進入if函數中進行灰色預測

……太簡單不要說我啊-啊哈哈……
快樂時光總是短暫的,那我們下次再見吧………………

人生風景在遊走 每當孤獨我回首
你的愛總在不遠地方等着我
歲月如流在穿梭 喜怒哀樂我深鎖
只因有你在天涯盡頭等着我 
人生風景在遊走 每當孤獨我回首
你的愛總在不遠地方等着我
歲月如流在穿梭 喜怒哀樂我深鎖
只因有你在天涯盡頭等着我
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章