• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VBA編程的全子集模型篩選算法

      2023-07-11 11:11:40彭維湘
      統(tǒng)計與決策 2023年11期
      關(guān)鍵詞:因變量子集回歸系數(shù)

      彭維湘

      (廣州工商學院 會計學院,廣州 510507)

      0 引言

      建立多元回歸模型時,若無既有理論模型,且相關(guān)影響因素較多,就需要對自變量進行篩選。

      由于自變量之間、自變量與因變量之間的關(guān)系錯綜復雜,主觀上難以準確判斷哪些自變量更適合于模型,只能用統(tǒng)計方法或基于統(tǒng)計方法進行篩選。目前比較常用的模型篩選方法有:向前逐步回歸、向后逐步回歸、全子集回歸。前兩種方法計算快捷,比較常用;全子集篩選法計算量大,應用比較少。

      從實際應用效果來看,在自變量較多的情況下,向前逐步回歸的估計效果最差,向后逐步回歸的效果好一些,但這些篩選方法得到的都是局部最優(yōu)模型。而基于全子集回歸的篩選方法是對全部子集模型進行估計和比較,不僅可以根據(jù)事先定義找出最優(yōu)模型,還可以搜索到具有特殊意義的模型。

      本文基于VBA for EXCEL編程技術(shù),探討如何通過全子集篩選法實現(xiàn)對回歸模型的構(gòu)建、估計、優(yōu)化、應用。

      1 全子集篩選原理

      1.1 全子集模型

      設(shè)多元回歸模型有k個自變量x1,x2,…,xk,因變量為y,設(shè)置線性回歸模型如下:

      則含1 個自變量的子集為:{x1},{x2},…,{xk},共有k個子集。

      含2個自變量的子集為:{x1,x2},{x1,x3},…,{xk-1,xk},共有k(k-1)/2 個子集。

      含3個自變量的子集為:{x1,x2,x3},{x1,x2,x4},…,{xk-2,xk-1,xk},共有k(k-1)(k-2)/6 個子集。

      …………

      含k個自變量的子集只有一個:{x1,x2,…,xk}。

      由k個自變量生成的全部子集模型個數(shù)是:k++…+。全子集篩選就是對所有子集模型進行估計、檢驗和篩選。

      1.2 統(tǒng)計顯著性模型

      若模型中全部自變量的回歸系數(shù)都通過了t 檢驗,則該模型就是統(tǒng)計顯著性模型,即每個自變量t統(tǒng)計量的絕對值都要大于t統(tǒng)計量的臨界值。如果任何一個自變量的t統(tǒng)計量不顯著(常數(shù)項一般不進行t檢驗),那么該模型就要被舍棄。

      用t1,t2,…,tk表示k個自變量的t 統(tǒng)計量,若最小的t統(tǒng)計量大于一定顯著性水平下的臨界值,該模型就是統(tǒng)計顯著性模型,即min(|t1|,|t2|,…,|tk|)>t1-a/2(n-k-1),其中,n是樣本容量。

      在全部子集模型中,t 統(tǒng)計量顯著的模型很多,但不同模型的回歸效果不同,所以t統(tǒng)計量只能篩選出統(tǒng)計顯著性模型,不能判斷模型優(yōu)劣。

      1.3 最優(yōu)顯著性模型

      判定回歸模型最優(yōu)的標準是什么?向前逐步回歸、向后逐步回歸側(cè)重于回歸系數(shù)的t檢驗,對模型優(yōu)劣的判別標準定義不夠明確。而全子集回歸必須進行嚴格定義,否則無法進行篩選。

      常用判別模型優(yōu)劣的統(tǒng)計量有:R2、S、AIC、BIC,其中,R2越大或S、AIC、BIC 越小,模型就越好。特別是S,能直接反映因變量估計值與實際值之間誤差的大小,S越小模型越優(yōu),是比較好的判斷標準;AIC和BIC包含了自由度因素,更多側(cè)重于避免出現(xiàn)維度災害(自變量過多)和模型復雜度太高的問題。這些統(tǒng)計量的計算公式分別是:

      通過大量計算可以發(fā)現(xiàn),R2、S兩個標準的判斷差別不大,AIC、BIC 兩個標準的差異也不大,但AIC、BIC 與R2、S相互間的判別結(jié)果差異較大。本文用S作為判斷標準,借助AIC進行輔助判斷。篩選原理是:從只有1個自變量的子集開始,對每個子集模型進行t檢驗,保留t統(tǒng)計量顯著的模型,然后比較不同子集模型的S,S最小的模型即為最優(yōu)顯著性模型。

      2 全子集模型篩選算法

      2.1 一般全子集模型篩選法

      一般全子集模型篩選法:在將所有子集模型全部估計、判斷、比較完之后,找出全部顯著性子集模型中S最小的那個子集模型。從包含1 個自變量的子集模型開始計算,直到計算完包含全部自變量的子集模型。理論上要進行k++…+1 次計算,但自變量很多的時候,可以提前終止計算。提前終止方法有三種:

      方法1:人為規(guī)定模型中的自變量個數(shù)不超過某個值,達到則終止。篩選出來的雖然不是最優(yōu)模型,但也能達到很好的擬合效果。

      方法2:k個自變量形成的全部子集包括含1,…,k個自變量的子集,在自變量個數(shù)為m的子集模型中,只要至少存在一個統(tǒng)計顯著性模型,就必然存在一個回歸誤差S(m)最小的模型。一般情況下,隨著m增大,S(m)先由大變小,超過某個值后又開始變大。在S(m)由大變小然后又開始變大時停止計算,取S(m)最小的那個模型為最優(yōu)模型,不計算其他子集模型。由于擔心S(m)出現(xiàn)波浪形或純遞減變化,因此本文沒有采用這種方法。

      方法3:從只含1個自變量的子集模型開始篩選,當自變量個數(shù)超過某個值時,會出現(xiàn)所有子集模型都不能通過t 檢驗的情況,此時不再對更多自變量的子集模型進行篩選。本文采用的是方法3。詳見圖1。

      圖1 一般全子集模型篩選流程圖

      2.2 多步全子集模型篩選法

      進行全子集模型篩選時,在自變量個數(shù)不多的情況下,計算量不大。例如,當自變量個數(shù)為15 時,理論上要進行32767次回歸和比較,實際上當子集模型中的自變量超過一定個數(shù)后,會因為無顯著性模型而中止計算,計算次數(shù)通常不會達到最大值。但是,如果備選的自變量個數(shù)太多,則進行全子集模型篩選的計算量非常大,甚至大到無法計算。例如,30 個自變量的全子集個數(shù)是1073741823個。因此,本文設(shè)計了一種多步篩選法。

      根據(jù)組合原理,從全部自變量(k個)中取1個、2個或取k個、k-1個自變量進行組合生成的子集模型個數(shù)最少,取k/2(或(k±1)/2)個自變量進行組合生成的子集模型個數(shù)最多。多步篩選法的原理是:不對全部子集模型進行計算和比較,只對包含1、2、k、k-1個自變量的子集模型進行顯著性篩選,然后找出最優(yōu)模型。分三步計算:

      第一步:向前選擇顯著變量。

      (1)篩選出含1個和2個自變量的初始最優(yōu)模型,計算次數(shù)為+。篩選出的最優(yōu)模型可能只有1 個自變量,也可能有2 個自變量。一般地,在自變量個數(shù)較多的情況下,初始篩選出來的2個自變量模型比1個自變量模型更優(yōu),計算時會自動識別,為簡化敘述,后面假設(shè)第一次篩選的最優(yōu)模型有2個自變量。

      (2)從全部自變量中剔除這2 個自變量,再從不包含這2個自變量的其他自變量中取2個自變量進行組合,共有個子集;把每個子集中的2個自變量與已經(jīng)篩選出來的2個自變量合并,共有4個自變量;然后對4個自變量的3個和4個自變量子集模型進行篩選??偣驳挠嬎愦螖?shù)是。

      (3)假設(shè)已經(jīng)篩選出m個自變量,重復前面的步驟:從k-m個自變量中取2 個自變量進行組合,形成個子集,每個子集的2個自變量與前面已經(jīng)篩選出來的m個自變量合并,再在m+1、m+2 個自變量的子集中篩選最優(yōu)模型,總共的計算次數(shù)是。如果篩選結(jié)果沒有增加自變量,則停止計算;否則,按此方法繼續(xù)篩選。

      (4)經(jīng)過多輪篩選后,假設(shè)篩選出了p個自變量,為了防止還有重要自變量被遺漏,再從被篩選掉的k-p個自變量中選擇2 個自變量,形成個子集,并與原先篩選得到的p個自變量合并,得到p+2 個自變量,然后對自變量為p和p+1 個的子集進行篩選,總共的計算次數(shù)是,這次篩選可能會讓新加入的2 個自變量替換原來p個變量中的1 個或2 個,得到S 更小的模型,篩選結(jié)果會得到進一步優(yōu)化。

      這種篩選自變量的方法看起來與向前回歸方法類似,但原理完全不同:它的每一步計算都是已經(jīng)篩選出來的自變量與未被篩選的自變量重新進行組合,形成新的子集模型并進行計算比較,如果發(fā)現(xiàn)更優(yōu)的模型,則繼續(xù)尋找,否則就終止。

      計算中發(fā)現(xiàn):有時候2個以上具有特殊關(guān)系的自變量一起進入模型可以使模型擬合效果更優(yōu),但計算量會大大增加。本文討論的算法一般是每一輪篩選只添加2個或3個自變量(每一輪添加k個自變量進行篩選就是一般全子集模型篩選)。

      第二步:向后刪除不顯著變量。

      先用全部自變量回歸,刪除t統(tǒng)計量不顯著且t統(tǒng)計量絕對值最小的自變量;再用剩余的自變量回歸,用同樣的方法刪除不顯著的自變量,直到模型中所有自變量的t統(tǒng)計量都顯著。這種方法就是向后回歸法,那些具有特殊關(guān)系的自變量會被一起保留下來。

      第三步:合并顯著變量并進行子集篩選。

      把第一步和第二步篩選出來的顯著變量合并在一起,假設(shè)第一步篩選出p1個自變量,第二步篩選出p2個自變量,合并在一起,刪除相同的自變量后,自變量的個數(shù)是p3(p1+p2-重復個數(shù))。

      第三步:合并顯著變量并進行子集篩選

      把第一步和第二步篩選出來的顯著變量合并在一起,假設(shè)第一步篩選出p1個自變量,第二步篩選出p2個自變量,合并在一起并刪除重復的自變量后,自變量的個數(shù)是p3(p1+p2-重復個數(shù)),然后篩選p0,…,p3個自變量的子集,其中,p0=max(p1-2,p2-2,1)。p1-2,p2-2 的目的是看在增加了其他自變量后,自變量個數(shù)少于p1(或p2)是否存在更優(yōu)模型。在多次試算中,p0=max(p1-2,p2-2,1)與p0=max(p1,p2,1)的計算結(jié)果無差別,前者計算量大些,但p0=max(p1-2,p2-2,1)可能會有更優(yōu)(S 更小)的模型,所以VBA 計算程序中使用的是p0=max(p1-2,p2-2,1)。

      例如:有30 個自變量,第一步篩選出來13 個,第二步篩選出來15 個,其中10 個相同,合并后的自變量個數(shù)是18個,則包含15、16、17、18個自變量的全部子集模型中至少有一個t統(tǒng)計量顯著且S最小的模型。

      多步篩選法的流程圖如圖2所示。

      圖2 多步全子集模型篩選流程圖

      2.3 VBA算法設(shè)計

      (1)操作界面

      圖3所示的窗體是一個操作界面,通過窗體設(shè)置相關(guān)功能和進行操作。

      圖3 全子集篩選方法操作界面

      (2)參數(shù)設(shè)置

      ①數(shù)據(jù)表選擇:將一個模型的數(shù)據(jù)存放在一個工作表中,不同模型的數(shù)據(jù)存放在不同工作表中,可以選擇不同的工作表進行分析。

      ②數(shù)據(jù)類型包含時間序列數(shù)據(jù)和橫截面數(shù)據(jù),時間序列類型又分為年度、季度等。

      ③回歸系數(shù)約束分為:回歸系數(shù)無約束、全部回歸系數(shù)大于0約束、全部回歸系數(shù)小于0約束。

      ④回歸估計方法分為:一般全子集模型篩選法、多步全子集模型篩選法、普通最小二乘法三種。

      ⑤模型形式分為:線性模型、對數(shù)模型、指數(shù)模型、倒數(shù)模型等十多種模型。

      ⑥顯著性水平:1%~10%,也可以輸入其他值,用于計算t統(tǒng)計量的臨界值。

      ⑦滯后期:時間序列模型設(shè)置滯后期后可以派生出因變量和自變量的滯后變量。

      ⑧樣本數(shù)據(jù)選擇:可以設(shè)置樣本數(shù)據(jù)起始點,截取中間一部分數(shù)據(jù)進行分析。

      (3)VBA關(guān)鍵算法

      ①生成自變量子集函數(shù):VBA 自定義函數(shù),生成自變量子集的VBA 算法程序,輸入自變量后生成自變量的全部子集。

      ②回歸估計和檢驗:基于EXCEL中的LINEST函數(shù)計算回歸系數(shù)、t統(tǒng)計量、R2、S、RSS、AIC、BIC統(tǒng)計量,并對回歸系數(shù)進行t檢驗。

      ③模型篩選函數(shù):VBA自定義函數(shù),輸入全部變量,輸出最優(yōu)模型,并保存全部統(tǒng)計顯著性模型。

      ④預測和誤差分析:篩選出最優(yōu)模型后,在數(shù)據(jù)表最后一列插入以EXCEL 公式形式計算的回歸值、誤差值及其他重要統(tǒng)計信息,可以選擇1~10個模型進行聯(lián)合預測。

      ⑤過程保存:將所有t 檢驗顯著的模型用文本文件的形式保存起來,可以對全部顯著性子集模型進行統(tǒng)計分析,比較不同模型篩選方法的差異。

      3 模型設(shè)置的幾個問題

      3.1 計量模型選擇

      選擇線性回歸模型的情況比較多,有時為了達到更好的擬合效果或?qū)崿F(xiàn)特定的分析目的,需要選擇其他形式的計量模型。本文研究的算法提供了多個可供選擇的典型模型,包括:線性模型、雙對數(shù)模型、自變量對數(shù)模型、因變量對數(shù)模型、雙倒數(shù)模型、自變量倒數(shù)模型、因變量倒數(shù)模型、雙指數(shù)模型、自變量指數(shù)模型、因變量指數(shù)模型、雙差分模型、自變量差分模型、因變量差分模型、雙速度模型、自變量速度模型、因變量速度模型等,以供在不同目的、不同情形下使用。

      3.2 虛擬變量設(shè)置

      回歸模型引入虛擬變量,可以用加法原則(將虛擬變量視為普通變量加入模型)、乘法原則(將虛擬變量與所有普通變量相乘后加入模型)或混合原則(虛擬變量既作為普通變量加入模型,又與其他普通變量相乘后加入模型),構(gòu)造新的回歸模型。

      加法原則影響模型截距,乘法原則影響斜率。進行模型篩選就是假設(shè)事先不能判定屬于哪種情況,所以要用混合原則。一元回歸模型加入一個虛擬變量時會變成三元回歸模型。

      如果時間序列模型中既有虛擬變量又有滯后變量,那么乘法原則只對當期自變量起作用,不影響自變量的滯后變量。例如:yt=a0+b1xt+b2xt-1+ut,采用混合原則引入虛擬變量D后變成yt=a0+a1D+b1xt+b2xt-1+b3xtD+ut。

      3.3 滯后變量引入

      時間序列模型中引入滯后變量主要是為了反映客觀現(xiàn)象的滯后影響,加入滯后變量后可以改變模型形式和提高擬合效果。

      以季度時間序列模型為例,設(shè)一個滯后變量(滯后期為4)派生出來的滯后變量模型有:

      滯后變量模型一:

      滯后變量模型二:

      滯后變量模型三:

      滯后變量模型四:

      滯后變量模型三和模型四包含因變量的滯后變量,有自回歸性質(zhì),但若因變量的變化趨勢發(fā)生改變,則會增加預測誤差;滯后變量模型一和模型三派生出的自變量很多,計算量很大,但模擬效果最好;用滯后若干期均值做滯后變量,派生出的自變量最少,計算量最小,在模型中可以反映時間序列的趨勢性、季節(jié)波動性(滯后3 期平均就是為了保留時間序列的季節(jié)波動性),還可以在一定程度上減弱自變量異常值對后期預測結(jié)果的影響。

      3.4 回歸系數(shù)約束

      在回歸系數(shù)無約束條件下,全部子集模型中,S 最小的就是最優(yōu)模型。如果要約束自變量的回歸系數(shù)全部大于0(或全部小于0,或其他約束),就只能在約束條件下選擇S 最小的模型。除了可以通過變換模型的數(shù)學形式達到設(shè)定目的外,用全子集模型搜索不失為最有效的方法。但約束模型系數(shù)后,擬合效果會降低。

      3.5 關(guān)鍵自變量選擇

      有些自變量理論上是模型不可缺少的,為了保證它不被篩選掉,可以將它排斥在被篩選的子集之外(不放在任何一個子集中),然后再篩選最優(yōu)模型。

      根據(jù)本文設(shè)計的算法,只有當期自變量可以設(shè)置為關(guān)鍵自變量,滯后變量不能設(shè)置為關(guān)鍵自變量。關(guān)鍵自變量不能選擇太多,一到兩個即可,如果選擇太多,關(guān)鍵變量之間、關(guān)鍵自變量與其他自變量之間存在的多重共線性問題會導致一些重要自變量不能被選入模型,從而降低模型的擬合效果。

      4 結(jié)論

      綜合前文分析,本文得出如下結(jié)論:

      (1)評價模型好壞的標準不是唯一的,從某種意義上講,根本不存在理論上的最優(yōu)模型,所以想找到一個最優(yōu)模型是不可能的,即使用全子集篩選法找到了S最小的模型,其預測結(jié)果也未必是最好的。

      (2)以S 最小為標準篩選模型只是方法之一,這個規(guī)則清晰且易于實現(xiàn),是一個非常好的規(guī)則,但不能認為它是最好的規(guī)則,不同方法篩選出來的模型都有價值且不具有可比性。

      (3)對于帶滯后變量的模型,如果S相差不大,滯后變量和回歸系數(shù)看似差異很大,但不同滯后期對因變量的影響平均之后的作用方向、影響程度差別其實并不大,不同模型之間沒有本質(zhì)上的區(qū)別。

      (4)全子集篩選法可以篩選出很多有價值的模型,用于研究一些重要統(tǒng)計量的統(tǒng)計規(guī)律。例如,用多個優(yōu)選出來的模型進行聯(lián)合預測、邊際效應分析、彈性系數(shù)分析等,可避免某個模型的偶然性。

      (5)VBA 編程不僅用戶界面友好,而且前期的資料準備和后期的計算分析、結(jié)果整理,以及與WORD、PPT、統(tǒng)計分析軟件進行數(shù)據(jù)交換都極其方便。

      猜你喜歡
      因變量子集回歸系數(shù)
      由一道有關(guān)集合的子集個數(shù)題引發(fā)的思考
      調(diào)整有限因變量混合模型在藥物經(jīng)濟學健康效用量表映射中的運用
      中國藥房(2022年7期)2022-04-14 00:34:30
      拓撲空間中緊致子集的性質(zhì)研究
      關(guān)于奇數(shù)階二元子集的分離序列
      適應性回歸分析(Ⅳ)
      ——與非適應性回歸分析的比較
      多元線性回歸的估值漂移及其判定方法
      電導法協(xié)同Logistic方程進行6種蘋果砧木抗寒性的比較
      偏最小二乘回歸方法
      文理導航(2017年20期)2017-07-10 23:21:03
      多元線性模型中回歸系數(shù)矩陣的可估函數(shù)和協(xié)方差陣的同時Bayes估計及優(yōu)良性
      每一次愛情都只是愛情的子集
      都市麗人(2015年4期)2015-03-20 13:33:22
      江安县| 枞阳县| 永济市| 门源| 蒙阴县| 隆林| 吉水县| 梁河县| 新河县| 淄博市| 惠水县| 高邮市| 清丰县| 延安市| 丰宁| 东丽区| 临江市| 新化县| 年辖:市辖区| 双江| 襄垣县| 应用必备| 浑源县| 东光县| 翼城县| 隆化县| 图木舒克市| 治多县| 米林县| 梓潼县| 上蔡县| 桓台县| 新平| 赫章县| 福鼎市| 浦东新区| 翁牛特旗| 红桥区| 上杭县| 阿坝县| 达拉特旗|