關聯規則(初識)

關聯規則python

  • 關聯規則分析是數據挖掘中最活躍的方法之一,目的是在一個數據集中找出各項之間的關聯關係,而這種關係並無在數據中直接表示出來
  • 算法名稱
    算法描述
    Apriori 關聯規則最經常使用也是經典的挖掘頻繁項集的算法,其核心思想是經過鏈接產生候選項及其支持度而後經過剪枝生成頻繁項集
    FP-Tree 針對Apriori算法固有的屢次掃描事物數據集的缺陷,提出的不產生候選項頻繁項集的方法.Apriori和FP-Tree都是尋找頻繁項集的算法
    Eclat算法 Eclat算法是一種深度優先級算法,採用垂直數據表示形式,在概念格理論的基礎上利用基於前綴的等價關係將搜索空間劃分爲較小的子空間
    灰色關聯法

    分析和肯定各因素之間的影響程度或是若干個子因素(子序列)對主因素(母序列)的貢獻度而進行的一種分析方法.算法

  • Apriori算法
    • Apriori算法是最經典的挖掘頻繁項集的算法,第一次實現了在大數據集上可行的關聯規則提取,其核心思想是經過鏈接產生候選項與其支持度,而後經過剪枝生成頻繁項集
    • 關聯規則和頻繁項集
      • 關聯規則的通常形式
        • 項集A, B同時發生的機率稱爲關聯規則的支持度(也稱相對支持度)
          • support(A==>B) = P(A υ B)
        • 項集A發生,則項集B發生的機率爲關聯規則的置信度
          • Confidence(A==>B) = P(A υ B)
      • 最小支持度和最小置信度
        • 最小支持度是用戶或專家定義的衡量支持度的一個閾值,表示項目集在統計意義上的最低重要性最小置信度是用戶或專家定義的衡量置信度的一個閾值,表示關聯規則的最低可靠性.同時知足最小支持度閾值和最小置信度閾值的規則稱做強規則
      • 項集
        • 項集是項的集合.包含K個項集稱爲k項集,如集合(牛奶, 麥片, 糖 B )是一個3項集.項集的出現頻率是全部包含項集的事務計數,走稱作絕對支持度或支持度計數.若是項集I的相對支持度知足預約義的最小支持度閾值,則I是頻繁項集.頻繁項集K項集一般記做K.
      • 支持度計數
        • 項集A的支持度是事務數據集中包含項集A的事務的個數,簡稱爲項集的頻率或計數
        • 已知項集的支持度計數,則規則A ==> B的支持度和置信度很容易從全部的事務計數,項集A和項集A U B的支持度計數推出
          • Support(A ==> B) = A,B同時發生的事務的個數 / 全部事務個數 = Support_count(A Ω B) / Total_count(A)
          • Confidence( A == > B) = P( A | B) = Support_count(A Ω B) / Support_count(A)
        • 也就是說,一旦獲得全部事務個數,A,B和AΩB的支持度計數,就能夠導出對應的關聯規則A == > B和B == > A,並能夠檢查該規則是不是強規則
      • # -*- coding:utf-8 -*-
        
        import sys
        
        reload(sys)
        sys.setdefaultencoding("utf-8")
        
        """
        使用Apriori算法挖掘菜品訂單關聯規則
        """
        from __future__ import print_function
        from apriori import find_common_type
        import pandas as pd
        
        data = pd.read_csv("sales.csv", header=None, sep=",")
        
        print(u'\n轉換原始數據至0-1矩陣...')
        ct = lambda x: pd.Series(1, index=x[pd.notnull(x)])  # 轉換矩陣0-1矩陣的過分函數
        b = map(ct, data.as_matrix())  # 用map方式執行
        data = pd.DataFrame(list(b)).fillna(0)  # 實現矩陣轉換,空值用0填充
        print(u'\轉換完畢.')
        del b
        
        support = 0.2 # 最小支持度
        confidence = 0.5 # 最小置信度
        ms = '--' # 鏈接符,默認'--',用來區分不一樣元素, 如 A--B. 須要保證原始表格中不含有該字符
        find_common_type(data, support, confidence, ms).to_csv("sales_1.csv")

         

      • 其中,e–a表示e能發生可以推出a發生,置信度爲100%,支持度爲30%; b - c - a表示b,c能同時可以推出a發生,置信度爲60%,支持度爲30%,搜索出來的關聯規則不必定具備實際意義,須要根據問題背景篩選出適當的有意義的規則,並賦予合理的解釋
      • Apriori算法使用候選產生頻繁項集
        • Apriori算法的主要思想是找出在於事務數據集中最大的頻繁項集,在利用獲得的最大的頻繁項集與預先設定的最小置信度閾值生成強關聯規則
        • Apriori的性質, 頻繁項集的全部非空子集也必須是頻繁項集.根據該性質可疑得出,向不是頻繁項集I的項集中添加事務A,新的項集I U A必定也不是頻繁項集
        • Apriori算法實現的兩個過程以下:
          • 找出全部的頻繁項集(支持度必須大於等於給定的最小支持度閾值),在這個過程當中,鏈接步和剪枝步相互融合,最終獲得最大頻繁項集Lk.
            • 連接步:
              • 連接步的目的是找到K項集,對於給定的最小支持度閾值,分別對I項集選集C1,剔除小於該與閾值的項集獲得1項頻繁集L1;下一步有L1自身連接產生2項候選集C2,保留C2中知足約束條件的項集獲得2想頻繁項集,記爲L2,再下一步由L2項候選集C2,保留C2中知足約束條件的2項頻繁集,極爲L2;再下一步由L2與L3連接產生3項候選集C3,保留C2中知足約束條件的項集獲得3項頻繁集,極爲L3,...這樣循環下去,獲得最大的頻繁項集 Lk
            • 剪枝步:
              • 枝步緊接着鏈接步,再產生選項Ck的過程當中起到減少搜索空間的目的因爲Ck是Lk-1與L1鏈接產生的,根據Apriori的性質頻繁項集,因此不知足該性質的項集不會存在Ck中,該過程就是剪枝
  • 時序模式
    • 經常使用按時間順序排列的一組隨機變量X1,X2,X3...,Xt來表示一個隨機事件的時間序列,簡記爲{Xt};用x1,x2,x3,...,xn或{Xt,t=1,2,3...,n}表示該隨機序列的n個有序觀察值,稱之爲序列長度爲n的觀察序列.
    • 時間序列算法(經常使用的模型)
    • 模型名稱
      描述
      ARCH模型 ARCH模型能準確地模擬時間序列變量的波動性的變化,適用與序列具備異方差性而且異方差函數短時間自相關
      ARIMA模型 許多非平穩序列差分後會顯示出平穩序列的性質,稱這個非平穩序列爲差分平穩序列,對於差分平穩序列可使用ARIMA模型進行擬合
      ARMA模型 xt = Φ0 + Φ1xt-1 + Φ2xt-2 + ...+ Φpxt-p + εt - θ1εt-1 - θ2εt-2 - ... - θqεt-q 隨機變量Xt的取值xt不只與前p期的序列值有關,還 與前前q期的然東值有關
      AR模型 xt = Φ0 + Φ1xi-1 + Φ2xi-2 + ... + Φpxt-p + εt 之前p期的序列值xt-1,xt-2, ..., +xt-p爲自變量,隨機變量xt的取值,xt爲因變量創建線性迴歸模型
      GARCH模型及其衍生模型 GARCH模型稱爲廣義ARCH模型,是ARCH模型的拓展.相比與ARCH模型,GARCH模型機器衍生模型更能反映實際序列中的長期記憶性,信息的非對稱性等.
      MA模型 xt = µ+εt - θ1εt-1 - θ2εt-2-...-θpxt-q 隨機變量Xt的取值xt與之前各期的序列值無關,創建xt與前q期的素雞擾動εt-1,εt-2,...,εt-q的線性迴歸模型
      平滑法 平滑法經常使用於趨勢分析和預測,利用修均技術,削弱短時間隨機波動對序列的影響,使序列平滑化數據所用平滑技術的不一樣,可具體分爲移動平均法和指數平滑發
      組合模型 時間序列的變化主要受到長期趨勢(T),季節變更(S).週期變更(C)和不規則變更(ε)這4個因素的影響根據序列的特色,可疑構建加法模型和乘法模型 加法模型: xt = Tt + St + Ct + εt 乘法模型: xt = Tt * St * Ct * εt
      趨勢擬合法 趨勢擬合法把時間做爲自變量,相應的序列觀察值做爲因變量,創建迴歸模型,根據序列的特徵,可具體分爲線性擬合和曲線擬合
    • 時間序列的預處理
      • 拿到一個觀察值序列後,首先要對它的純隨機性和平穩性進行檢驗,這兩個重要的處理稱爲序列的預處理,根據檢驗結果能夠將序列分爲不一樣的類型,對於不一樣的類型,對於不一樣類型的序列會纔去不一樣的分析方法
      • 對於純隨機序列,又稱爲白噪聲序列,序列的各項之間沒有任何相關關係,序列在金鑫徹底無序的隨機波動,能夠終止對該序列的分析,白噪聲序列是沒有信息可提取的平穩序列
      • 對於平穩非白噪聲序列,它的均值和方差是常數,現已有一套很是成熟的平穩序列的建模方法.一般是創建一個線性模型來擬合該序列的發展,藉此提取該序列的有用信息.ARMA模型是最經常使用的平穩序列擬合模型
      • 對於非平穩序列,因爲它的均值和方差不穩定,處理方法通常是將其轉變爲平穩序列,這樣就能夠應用有關平穩時間序列的分析方法,如創建ARMA模型來進行相關的研究.若是一個時間序列經差分運算後具備平穩性,則該序列爲差分平穩序列,可使用ARMA模型進行分析
    • 平穩性檢驗
      • 平穩時間序列的定義:對於隨機變量X,能夠計算其均值(數學指望), μ, 方差σ2;對於兩個隨機變量X和Y,能夠計算X,Y的協方差cov(X,Y) = E[(X-μy)(Y-μy)]和相關係數ρ(X,Y) = cov(X,Y) / σxσy,他們度量了兩個不一樣事件之間的相互影響, 對於時間序列{Xt, t€T},任意時刻的序列值Xt都是一個隨機變量,每個隨機變量都會有有均值和方差,記Xt的均值爲μt,方差爲σt;任取t,s€T, 定義序列(Xt)的自協方差函數γ(t,s) = E[(Xt-μt)(Xs-μs)]和自相關係數ρ(t,s) = cov(Xt, Xs) / σtσs(特別的,γ(t,s)γ(0) = 1,ρ0 = 1),之因此稱它們爲自協方差和相關係數,是由於他們衡量的是同一個事件在兩個不一樣時期(時刻t/s)之間的相關程度,形象地講就是度量本身過去的行爲對本身如今的影響
        • 若是時間序列{Xt, t€T}在某一常數附近波動且波動範圍有限,即有常數均值和常數方差,而且延遲k期的序列變量的自協方差和相關係數,是由於他們衡量的是同一個事件在兩個不一樣時期(時刻t和s)之間的相關程度,形象地講就是度量本身過去的行爲對本身如今的影響.
        • 若是時間序列{Xt,t€T},在某一種常數附近波動且波動範圍有限,即有常數均值和常數方差,而且延遲k期的序列變量的自協方差和自相關係數是相等的或者說延遲k期的序列變量之間的影響程度是同樣的,則稱{Xt,t€T}爲平穩序列
    • 平穩性的檢驗.
      • 對序列的平穩性的檢驗有兩種檢驗方法,一種是根據時序圖和自相關圖的特徵作出判斷的圖檢驗,該方法操做簡單,應用普遍,缺點是帶有主觀性;另外一種是構造檢驗統計量進行檢驗的方法,目前經常使用方法是單位根檢驗
      • 時序圖檢驗.根據平穩時間序列的均值和方差都爲常數的性質,平穩序列的時序圖顯示該序列值始終在一個常數附近隨機波動,並且波動的範圍有界;若是有明顯的趨勢性或者週期性,那它一般不是平穩序列
      • 自相關係數.平穩序列具備短時間相關性,這個性質代表對平穩序列而言一般只有近期的序列值對現時值的影響比較明顯,間隔越遠的過去值對現時值的影響越小,隨延遲期數K的增長,平穩序列的自相關係數ρk(延遲k期)會比較快的衰減趨勢趨於零,並在零附近隨機波動,而非平穩序列的自相關係數衰減速度比較慢,這就是利用自相關圖進行平穩性檢驗的標準
      • 單位根檢驗,單位根檢驗是指檢驗序列中是否存在單位根,若是存在單位根就是非平穩序列了
    • 純隨機性檢驗
      • 若是一個序列時純隨機序列,那麼它的序列值之間應該沒有任何關係,即知足γ(k)=0,k≠0,這是一種理論上纔會出現的理想狀態,實際上純隨機序列的樣本自相關係數不會絕對爲零,可是很接近零,並在零附近隨機波動.
      • 純隨機性檢驗也稱白噪聲檢驗,通常是構造檢驗統計量來檢驗序列的純隨機性,經常使用的檢驗統計量有Q統計量,LB統計量,由樣本個延遲期數的自相關係數能夠計算獲得檢驗統計量,讓你後,計算出對應的p值,若是p值顯著大於水平α,則表示該序列不能拒絕純隨機的原假設,能夠中止對給序列的分析.
    • 平穩時間序列分析
      • ARMA模型的全稱時自迴歸移動平均模型,它是目前最經常使用的擬合平穩序列的模型.它有可分爲AR模型,MA模型和ARMA模型三大類.均可以看做多元線性迴歸模型.
      • AR模型:
        • 具備以下結構模型稱爲ρ階自迴歸模型,簡記AR(ρ).
          • xt = Φ0 + Φ1xt-1 + Φ2xt-2 + ... + Φpxt-p + εt
        • 即在t時刻的隨機變量Xt的取值時前p期xt-1,xt-2, .., xt-p的多元線性迴歸,認爲xt主要時受過去ρ期的序列值的影響,偏差項是當期的隨機干擾εt,爲零均值白噪聲序列
        • 統計量
          性質
          統計量
          性質
          均值 常數均值 自相關係數(ACF) 拖尾
          方差 常數方差 偏自相關係數(PACF) ρ階截尾
      • 均值
        • 對知足平穩性條件的AR(ρ)m模型的方程,兩邊取指望,得:
          • E(xt) = E(Φ0 + Φ1xt-1 + Φ2xt-2 + ... + Φpxt-p + εt)
        • 已知E(xt) = μ, E(εt) = 0, 因此μ = Φ0 + Φ1xt-1 + Φ2xt-2 + ... + Φρμ,
        • 推出: μ = Φ0 / 1 - Φ1 - Φ2 - ... - Φp
      • 方差:
        • 平穩AR(ρ)模型的方差有界,等於常數.
      • 自相關係數(ACF)
        • 平穩AR(ρ)模型的自相關係數pk = p(t,t-k) = cov(Xt,Xt-k) / σtσt-k呈指數的速度衰減,始終有非零取值,不會在k大於某個常數以後就恆等於零,這個性質就是平穩AR(ρ)模型自相關係數ρk具備拖尾性.
      • 偏自相關係數(PACF)
        • 對於一個平穩AR(ρ)模型,求出延遲k期自相關係數ρk時,實際上獲得的並非Xt與Xt-k之間單純的相關關係,由於Xt同時還會受到中間k-1個隨機變量Xt-1,Xt-2,...Xt-k的影響,因此自相關係數Pk裏實際上摻雜了其餘變量對Xt與Xt-k的相關影響,爲了單純地測試度Xt-k對Xt的影響,引進偏自相關係數的概念.
        • 能夠證實平穩AR(ρ)模型的偏自相關係數具備ρ階截尾性.這個性質連同前面的自相關係數的拖尾性AR(ρ)模型重要的識別依據
    • MA模型
      • 具備以下結構的模型稱爲q階自迴歸模型,簡記MA(q)
        • xt = μ + εt - θ1ε1-1 - θ2εt-2 - ... - θqεt-q
      • 即在t時刻的隨機變量Xt的取值xt時前q期的隨機擾動εt-1, εt-2, .. , εt-q的多元線性函數,偏差項時當期的隨機干擾εt,爲零均值白噪聲序列,μ是序列{Xt}的均值,認爲xt主要是受獲取q期的偏差項的影響.
      • 統計量
        性質
        統計量
        性質
        均值 常數均值 自相關係數 q階截尾
        方差 常數方差 偏自相關係數 拖尾
      • ARMA模型
        • 具備以下結構的模型稱爲自迴歸移動平均模型,簡記ARMA(p,q)
          • xt = Φ0 + Φ1xt-1 + ...+ Φpxt-p + εt - Φ0 - Φ1xt-1 - ...- Φpxt-p
        • 即在t時刻的隨機變量Xt的取值Xt是前p期xt-1,xt-2, ... ,xt-p和前q期εt-1, εt-2, ..., εt-q的多元線性函數,偏差項是當期的隨機干擾εt,爲零均值白噪聲序列,認爲xt主要是受過p期的序列值和過去q期的偏差項的共同影響.
        • 特別的,當q = 0 時,是AR(p)模型;當p = 0 時,是MA(q)模型
        • 平穩ARMA模型(p,q)的性質以下:
        • 統計量
          性質
          統計量
          性質
          方差 常數方差 偏自相關係數(PACF) 拖尾
          均值 常數均值 自相關係數(ACF) 拖尾
      • 平穩時間序列建模
        • 某個時間序列精工預處理,被斷定爲平穩非白噪聲序列,就能夠利用ARMA模型進行建模.計算出平穩非白噪聲序列{Xt}的自相關係數和偏自相關係數,再由AP(p)模型,MA(q)模型和ARMA(p,q)模型的自相關彷佛和偏自相關係數的性質,選擇合適的模型.平穩時間序列建模步驟以下:
          • 計算非平穩白噪聲序列的自相關係數(ACF)和偏自相關係數(PACF).
          • ARMA模型識別,也稱爲模型定階,由AR(P)階模型,MA(q)和ARMA(p,q)的自相關係數和偏自相關係數的性質.選擇合適的模型,識別的原則表以下:
          • 模型
            自相關係數(ACF)
            偏自相關係數(PACF)
            AR(p) 拖尾 p階截尾
            ARMA(p,q) p階拖尾 q階拖尾
            MA(q) q階截尾 拖尾
          • 估計模型中未知參數的值進行參數進行檢驗.
          • 模型檢驗
          • 模型優化
          • 模型應用:進行短時間預測.
      • 非平穩時間序列分析
        • 前面介紹了對平穩時間序列進行分析的方法.實際上,在天然界中絕大部分序列都是非平穩的.於是對非平穩序列的分析更廣泛,更重要,創造出來的分析方法也更多.
        • 對於非平穩時間序列的分析方法能夠分爲肯定性因素分解的時序分析和隨機時序分析兩大類
        • 肯定性因素分解的方法把全部序列的變化夠歸結爲4個因素(長期趨勢,季節變更,循環變更和隨機波動)的綜合影響,其中長期趨勢和季節變更的規律性信息一般比較容易提取,而由隨機因素致使的波動則很是難肯定和分析,對隨機信息浪費嚴重,會致使模型擬合精度不夠理想.
        • 隨機時序分析的發展就是爲了彌補肯定性因素分解方法的不足,根據時間序列的不一樣特色,隨機時序分析能夠創建的模型有ARIMA模型,殘差自迴歸模型,季節模型,異方差模型等.
        • 差分運算
          • 相距一期的兩個序列值之間的剪髮運算稱爲1階差分運算
        • k步差分
          • 相距k期的兩個序列值之間的減法運算稱爲k步差分運算
        • ARIMA模型
          • 差分運算具備強大的肯定性信息提取能力,許多非平穩序列差分後會顯示出平穩序列的性質,這時稱這個非平穩序列爲差分平穩序列.對差分平穩序列可使用ARMA模型進行擬合.ARIMA模型的實質就是差分運算與ARMA模型的結合,掌握了ARMA模型的建模方法和步驟後,對序列創建ARIMA模型是比較簡單的.
          • 差分序列平穩時間序列建模步驟以下圖:
    • # -*- coding:utf-8 -*-
      
      import sys
      
      reload(sys)
      sys.setdefaultencoding("utf-8")
      
      """
      arima時序模型
      """
      columns = []
      import pandas as pd
      forecastnum = 5
      data = pd.read_csv("sales.csv",header=None,sep=",",
                         names=columns)
      
      # 時序圖
      import matplotlib.pyplot as plt
      plt.rcParams['font.sans-serif'] = ['Simhei']  # 用來正常顯示中文標籤
      plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號
      data.plot()
      plt.show()
      
      # 自相關圖
      from statsmodels.graphics.tsaplots import plot_acf
      plot_acf(data).show()
      
      # 平穩性檢測
      from statsmodels.tsa.stattools import adfuller as ADF
      print(u'原始序列的ADF檢驗結果爲:', ADF(data[u'銷量']))
      # 返回值一次爲adf,pvalue,usedlag,nobs,critical,values, icbest, regresults, resstore
      
      # 差分後的結果
      D_data = data.diff().dropna()  # 去掉空值
      D_data.columns = [u'銷量差分']
      D_data.plot()  # 時序圖
      plt.show()
      plot_acf(D_data).show()  # 自相關
      from statsmodels.graphics.tsaplots import plot_pacf
      plot_pacf(D_data).show()  # 偏自相關圖
      print(u'差分序列的ADF檢驗結果爲:', ADF(D_data[u'銷量差分']))  # 平穩性檢測
      
      # 白噪聲檢測
      from statsmodels.stats.diagnostic import acorr_ljungbox
      print(u'差分序列的白噪聲檢驗結果爲:', acorr_ljungbox(D_data, lags=1))  # 返回統計量和p值
      
      from statsmodels.tsa.arima_model import ARIMA
      
      # 定階
      pamx = int(len(D_data) / 10)  # 通常階數不超過length / 10
      qmax = int(len(D_data) / 10)  # 通常階數不超過length / 10
      bic_matrix = []  # bic矩陣
      for p in range(pamx + 1):
          tmp = []
          for q in range(qmax + 1):
              try:  # 存在部分報錯,因此用try來跳過報錯
       tmp.append(ARIMA(data, (p,1,q)).fit().bic)
              except:
                  tmp.append(None)
          bic_matrix.append(tmp)
      bic_matrix = pd.DataFrame(bic_matrix)  # 從中能夠找到最小值
      
      p,q = bic_matrix.stack().idxmin()  # 先用stack展平,而後用idxmin找出最小值的位置
      print(u'BIC最小值的p值和q值爲: %s,%s' % (p,q))
      model = ARIMA(data, (p,1,q)).fit()  # 創建ARIMA(0,1,1)模型並訓練
      model.summary2()  # 給出一份模型報告
      model.forecast(5)  # 做爲5天的預期,返回預測結果,標準偏差,置信區間

       

    • python主要時序模式算法
      • Python實現時序模式的主要庫是StatsModels(固然,若是pandas能作的,就能夠利用Pandas先作),算法主要是ARIMA模型,在使用該模型進行建模的時候,須要進行一系列判別操做,主要包含平穩性檢驗,白噪聲檢驗,是否差分,AIC和BIC指標值,模型定階,最後再作預測.
      • 函數名
        函數功能
        所屬工具箱
        acf() 計算機相關函數 statsmodels.tsa.stattools
        acorr_ljungbox() Ljung-Box檢驗,檢驗是否爲白噪聲 statsmodels.stats.diagnostic
        adfuller() 對觀測值序列進行單位根檢驗 statsmodels.tsa.stattools
        aic/bic/hqic 計算ARIMA模型的AIC/BIC/HQIC指標值 ARIMA模型對象自帶的變量
        ARIMA() 建立一個ARIMA時序模型 ststamodels.tsa.arima_model
        duff() 對觀測值序列進行差分計算 Pandas對象自帶的方法
        forecast() 應用構建的時序模型進行預測 ARIMA模型對象自帶的變量
        pacf() 計算偏相關係數 statsmodels.tsa.stattools
        plot_acf() 畫自相關係數圖 statsmodels.graphics.tsaplots
        plot_pacf() 畫偏相關係數圖 statsmodels.graphics.tsaplots
        summary()或summary2 給出一份ARIMA模型的報告 ARIMA模型對象自帶的方法
      • acf()

        • 功能:計算自相關係數
        • 使用格式:
          • autocorr = acf(data,unbiased=False, nlags=40, qstat=False, fft=False, alpha=None)
          • 輸入參數data爲觀測值序列(即爲時間序列,能夠是DataFrame或Series),返回參數autocorr爲觀測值序列子相關函數.其他爲可選參數,如qstat=True時同時返回Q統計量和對應p值.
      • plot_acf()
        • 功能:畫自相關係數圖
        • 使用格式:
          • p = plot_acf(data)
          • 返回一個Matplotlib對象,能夠用.show()方法顯示圖像
      • acf() / plot_acf()
        • 功能:計算偏自相關係數/畫偏相關係數圖
        • 使用格式:
          • 使用跟acf() / plot_acf()相似,
      • adfuller()
        • 功能:對觀測值序列進行差分計算
        • 使用格式:
          • D.diff() D爲Pandas的DataFrame或Series
      • arima
        • 功能:設置時序模式的建模參數,建立ARIMA模型
        • 使用格式:
          • arima = ARIMA(data, (p,1,q)).fit()
          • data參數爲輸入的時間序列,p,q爲對應的階,d爲差分次數
      • summary() / summary2()
        • 功能:生成已有模型的報告
        • 使用格式:
          • arima.summaty() / summary2()
          • 其中,arima爲已經建好的ARIMA模型,返回一份格式化的模型報告,包含模型的係數,標準差,p值,AIC和BIC等詳細指標
      • aic/bic/hqic
        • 功能: 計算ARIMA模型的AIC,BIC,HQIC
        • 使用格式:
          • arima.aic/arima.bic/arima.hqic
        • 其中,arima爲已經創建好的ARIMA模型,返回值是Model時序模型獲得的AIC,BIC和HQIC指標值
      • forecast()
        • 功能:用獲得的時序模型進行預測
        • 使用格式:
          • a,b,c = arima.forecast(num)
          • 輸入參數num爲要預測的天數,arima爲已經創建好的ARIMA模型,a爲返回的預測值,b爲預測的偏差,c爲預測置信區間
      • acroo_ljungbox()
        • 功能:檢測是否爲白噪聲序列
        • 使用格式:
          • acroo_ljungbox(data, lags=1)
          • 輸入參數爲時間序列數據,lags爲滯後數,返回統計量和p值
相關文章
相關標籤/搜索