第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Python 中的 statsmodels 減少動(dòng)態(tài)因子模型估計(jì)的時(shí)間

使用 Python 中的 statsmodels 減少動(dòng)態(tài)因子模型估計(jì)的時(shí)間

滄海一幻覺(jué) 2023-02-07 15:57:54
我試圖按照示例 https://www.statsmodels.org/dev/examples/notebooks/generated/statespace_dfm_coincident.html在 Python 中使用 statsmodels 估計(jì)動(dòng)態(tài)因子模型 但是我沒(méi)有使用示例數(shù)據(jù)集,而是使用了自己的數(shù)據(jù)集 282變量,有 124 個(gè)觀察值(不同國(guó)家的月通貨膨脹率)。然而,在運(yùn)行代碼超過(guò)六個(gè)小時(shí)后,我沒(méi)有得到任何結(jié)果。嘗試使用不同數(shù)量的變量和不同的求解器,我得到了這些時(shí)間估計(jì):Number of variables Initial params in seconds   Model estimate in secondsPowell solver:     10                  57,3                        4,9    20                  167,6                       19,9    40                  1498,8                      137,8BFGS    10                  9,1                         6,3    20                  89,2                        18,5    40                  597,5                       138,2根據(jù)這些計(jì)算,時(shí)間正在增長(zhǎng) n^2*log(n),這意味著要使用 Powell 求解器計(jì)算所有 280 個(gè)變量的模型,我將需要大約 30 個(gè)小時(shí),這太長(zhǎng)了。BFGS 更快,但是對(duì)于 20 和 40 個(gè)變量,我發(fā)現(xiàn)似然優(yōu)化無(wú)法收斂。我在我的筆記本電腦(WIN10、32gb、i7-4700MQ、2.40GHz)上運(yùn)行它,它看起來(lái)并沒(méi)有用完所有資源,只使用了大約 10gb 的內(nèi)存和大約 25-50% 的 CPU。所以問(wèn)題是如何使 DFM 模型的估計(jì)更快并收斂?如果我在云上運(yùn)行此代碼(比如 Amazone 或 Google,具有 32-64 個(gè) CPU),多線程是否有助于提高速度,或者統(tǒng)計(jì)模型的并行性幾乎沒(méi)有改進(jìn)?切換到 Matlab 或其他軟件進(jìn)行此類計(jì)算是否有意義?scipy.optimize(如 krylov、broyden2 或 anderson)中有一些大型問(wèn)題的求解器,但我不確定它們是否可以與 statsmodels.LikelihoodModel.fit 一起使用。我將非常感謝任何關(guān)于如何加快估算速度的想法!我運(yùn)行的代碼: import statsmodels.api as sm    import time    # Create the model    mod = sm.tsa.DynamicFactor(data_cpi, k_factors=3, factor_order=1, error_order=1)    tic = time.perf_counter()    initial_res = mod.fit(method='powell', disp=True)    toc = time.perf_counter()    print(f"Initial params in {toc - tic:0.4f} seconds")    res = mod.fit(initial_res.params, disp=True)    tic = time.perf_counter()    print(f"Model estimate in {tic - toc:0.4f} seconds")    print(res.summary(separate_params=False)) 
查看完整描述

1 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果不需要參數(shù)的標(biāo)準(zhǔn)誤差,減少擬合時(shí)間的一種方法是傳遞cov_type='none'fit方法。但它仍然會(huì)很慢。當(dāng)使用像 BFGS 這樣的擬牛頓方法,甚至像 Powell 這樣的無(wú)導(dǎo)數(shù)方法時(shí),對(duì)具有大量變量的動(dòng)態(tài)因子模型的參數(shù)進(jìn)行數(shù)值優(yōu)化將非常緩慢。

大型動(dòng)態(tài)因素模型通常通過(guò)使用 EM 算法優(yōu)化參數(shù)來(lái)實(shí)現(xiàn)。Statsmodels 在 v0.11 中沒(méi)有該選項(xiàng),但它很可能會(huì)在 v0.12 版本中用于動(dòng)態(tài)因子模型。


查看完整回答
反對(duì) 回復(fù) 2023-02-07
  • 1 回答
  • 0 關(guān)注
  • 263 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)