您好,登錄后才能下訂單哦!
這篇文章主要講解了如何使用Python實現滾動回歸操作,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
滾動回歸
所謂滾動回歸,通常用在時間序列上。記當前時刻為 t,回歸時長為 s,則一直使用 當作自變量來預測 。使用滾動回歸的目的通常是為了避免未來函數對于回歸的影響。
具體來說,如果我們直接用所有數據來建立線性回歸模型,則回歸系數 ,是關于所有 x 與所有 y 的函數。然而,我們在 時是不知道未來的數據點的!如果使用全部數據進行回歸則相當于未卜先知,會造成嚴重的過擬合。
Python實現
之前 python 的 pandas 與 statsmodels 庫均支持滾動回歸,但是現在兩個都不支持。因此如果大家使用的是最新版的 pandas 與 statsmodels ,那么網上的那些做法均沒有用。
目前我找到的唯一可以實現滾動回歸的 python 庫是 pyfinance,代碼如下:
from pyfinance.ols import PandasRollingOLS results = PandasRollingOLS(x, y, window) # window 是滾動回歸的自變量個數 results.solution # 每一步估計的截距與斜率 results.beta # 每一步估計的斜率 results.alpha # 每一步估計的截距 results.predicted # 每一步估計的樣本內預測值
補充知識:python 實現字幕動態滾動和等待效果
晚上看了些python實現動態字幕效果的文章,總會提到print函數的flush=True參數,還有os.system('cls')清屏,總是迷糊,并不能實現滾動屏幕效果。經過多方思索和查找,總結如下。
1.windows平臺下pycharm工具,其實加不加 flush=True 效果都是一樣的,因為網上說,有些系統是把字符存放在緩存里不會實時顯示,總是再最后才一次性把所有的緩存信息顯示,這樣的延遲導致看不到動態效果。經過測試,windowns平臺的pycharm工具不存在此問題,加不加效果都一樣。
2.回車換行符的使用:
# 回車和換行的歷史: # 機械打字機有回車和換行兩個鍵作用分別是: # 換行 '\n' 就是把滾筒卷一格,不改變水平位置。 (即移到下一行,但不是行首,而是和上一行水平位置一樣) # 回車 '\r' 就是把水平位置復位,不卷動滾筒。 (即將光標移到行首,但是不會移到下一行,如果繼續輸入的話會覆蓋掉前面的內容) # Enter = 回車+換行(\r\n)
所以可以利用回車符,不斷清除前面的字符,然后循環顯示新的字符,來實現動態滾動效果。
2個實例如下:
實例1 動態廣告語
import time content = '鉆石永久遠,一顆永流傳!' while True: print('\r', content, end='', flush=True) #去掉flush參數效果也一樣 content = content[1:] + content[0] time.sleep(0.5)
實例2 等待效果
import time while True: print('鉆石永久遠,一顆永流傳', end=' ') for i in range(10): print('·', end='', flush=True) #去掉flush參數效果也一樣 time.sleep(0.3) print('\r',end='')
看完上述內容,是不是對如何使用Python實現滾動回歸操作有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。