❶ 轉錄組時間序列數據處理
所謂時序分析 (time series analysis) 在 data science 中是非常重要的一個方向。對大多數商業行為而言如果能夠通過已有不同時間數據來進行預測就有可能大大提高自己的勝率。通常時間序列數據會包括趨勢部分和不規則部分, 我們需要做的就是剔除不規則部分然後找到趨勢所在,再進行預測。在預測過程中通常可以採用移動平均法、局部加權回歸法、指數平滑法和自回歸整合移動平均等方法。
生物學的時間相關數據本身預測屬性和商業數據相比要弱很多。一種是單一條件的純時間序列,主要看不同基因的表達模式,根據相似的表達譜將基因歸為多個類有助於找到功能相似的基因。另一種情況是含有對照和處理的時間序列,需要再考察不同條件的差異基因。
關於時間序列轉錄組數據分析的工具,近三年來有兩篇偏綜述和測評類的文章(一局判個人寫的)。
在這兩篇文章中還是提到了一些工具,但其中有一些用到matlab(這軟體貴啊),有一些年久失修或者不維護或者和最新R版本不兼容,桐含改篩篩撿撿能用的且文章里認為還不錯的也就剩下三四個。
來自於 DESeq 的方法,下文中提到的 ImpluseDE2 和 MaSigPro 都使用了這種模型。
來自於 maSigPro 方法,所謂多項式回歸區別常見的線性回歸,會把一次特徵轉換成高次特徵的線性組合多項式,比使用直線擬合更加准確。但是到底用幾次方需要具體分析,次數過高會出現過擬合。在能夠解釋自變數和因變數關系的前提下,次數應該是越低越好,這也算是奧卡姆剃刀原則吧。
所謂自回歸是統計上一種處理時間序列的方法,用 至 來預測本期 的表現並假設它們為線性關系。簡單說就是用自己來預測自己,因為是從回歸分析中線性回歸發展而來只是用x預測x,所以叫自回歸。
同樣是來自於 DESeq 的方法,下文中提到的 ImpluseDE2 和 MaSigPro 也都使用了這種方法。
似然比檢驗 (likelihood ratio test,LRT) 用於比較兩個模型的擬合優度進而確定哪個模型與樣本數據擬合的更好。其中一個是具有一定數量項的完整模型,另一個是刪掉完整模型中一部分項的簡化模型。LRT 檢驗中,自由度等於在簡化模型中減少的模型參數數目,LR近似符合卡方分布。一個相對復雜的模型與一個簡單模型比較,如果可以顯著地適合一個特定數據集,那麼這個復雜模型的附加參數就能夠用在以後的數據分析中。
為了測試多個時間點的任何差異,可以使用包含時間因子的設計和時間因子在簡化公式中被刪除的另一個設計。對於包括對照和實驗組的時間序列,可以使用包含條件因子,時間因子和兩者相互作用的公式。在這種情況下,使用具有不包含相互作用項的簡化模型的似然比檢驗將測試該條件是否在參考水平時間點(time 0)之後的任何時間點可以誘導基因表達的變化。
EBseq-HMM 採用的方法,來自於 BEseq。
這個軟體最早發表在2007年,相對老一些好在目前仍然在維護,其主要目的是給老岩時序數據進行基於 模糊聚類演算法 的聚類。我們常見的聚類演算法可以分為嚴格聚類(hard clustering)和模糊聚類(Fuzzy clustering )(也叫做寬松聚類 soft clustering)。嚴格聚類會將一個基因只聚到一類中,kmeans 就屬於嚴格聚類。而模糊聚類允許同一數據屬於多個不同的類,其聚類結果是一個數據對聚類中心的隸屬度,0到1之間。對於分類很開的數據使用嚴格聚類是沒問題的。但對於時序表達量數據來說,不同的類常常會有重疊,所以可以嘗試寬松聚類方法。演算法需要首先設定一些參數,若初始化參數不合適,可能影響聚類結果的正確性。
在使用 Mfuzz 時首先應該進行數據標准化處理 ,可以使用類似於 FPKM 或者 TPM 的表達結果也可以使用 DESeq2 矯正後的結果進行比較分析,另外不支持值為0的數據,所以需要加上 pseudocount 。除此之外,Mfuzz 接受的數據格式為 ExpressionSet,需要對矩陣進行轉換。
這個包只能進行聚類,是找不了有處理對照組的差異基因的。需要注意。
運行masigpro 主要有四步:
有兩點內容需要注意:對於無對照的單一時序數據處理方法;以及處理轉錄數據時的特殊參數。因為這個包不會對數據進行標准化,所以應該提前做好,使用 DESeq2 即可。
另外,在實際分析的時候可能會出現 glm.fit: algorithm did not converge 的警告。這是由於進行 logistic 回歸時,依照極大似然估計原則進行迭代求解回歸系數,glm 函數默認最大迭代次數是 25,當數據不太好時 25 次迭代可能還不收斂,一方面可以增大迭代次數。但當增大迭代次數仍然不收斂就需要對數據進行異常值檢驗等進一步處理。通常把一些表達量極低或者極高的基因刪除掉,這個問題就可以解決。
ImpulseDE2 是最近才出來的一個R包,在前面提到的綜述評測文章中認為這個包找時序數據中的差異基因效果最好,它可以用來解決兩類問題。
這個包中,有一個 plotHeatmap 函數,可以藉助 ComplexHeatmap 對數據整體進行熱圖的繪制同時提取不同類的基因,也可以使用 plotGenes 看某一個基因的表達情況。
在展示的熱圖中會出現四部分,包括 transient and transition trajectorie,其中每一種 tarjectorie 又包括 up 和 down 兩類。所謂的 transient 可以理解為時序數據在中間某一個時間點存在up 或者 down peak,即在某一個時間點存在表達的最大或者最小值;而所謂的 transient 可以理解為一個持續的變化,比如持續的升高或者持續的降低。
EBSeq-HMM 是基於 EBSeq 二次開發的工具,主要用於分析時序數據。在計算的時候首先基於負二項分布對參數進行估計,然後利用自回歸隱馬模型將基因的表達進行分類。比較神奇的是,最終給到的結果會標示為 Up-Up-Down-Down-Down 之類的若干 path,然後你可以選出你感興趣的 path 進行後續分析。
因為目前做的數據是沒有對照的單一時間序列數據,所以還不能體會哪一個找出的差異基因更准確些。但是如果只是想把所有的基因根據不同的時間點分為若干表達 pattern,似乎結合 Mfuzz 和 ImpulseDE2 就可以了。
當然,涉及到聚類,尤其是非監督聚類的時候通常主觀因素還是較強,如果能對關鍵基因或者數據有一個大致的估計預判操作起來會相對輕鬆些,如果沒有,可能就需要結合不同類的生物學意義等角度來找合適的聚類數目了。
http://a-little-book-of-r-for-time-series.readthedocs.io/en/latest/src/timeseries.html
http://a-little-book-of-r-for-biomedical-statistics.readthedocs.io/en/latest/
https://laranikalranalytics.blogspot.com/2018/07/time-series-analysis-with-documentation.html
https://www.displayr.com/smoothing-time-series-data/?utm_medium=Feed&utm_source=Syndication
https://www.analyticsvidhya.com/blog/2015/12/complete-tutorial-time-series-modeling/
❷ 什麼是時間序列數據
問題一:什麼是時間序列 時間序列分析是一種動態數據處理的統計方法。該方法基於隨機過程理論和數理統計學方法,研究隨機數據序列所遵從的統計規律,以用於解決實際問題。它包括一般統計分析(如自相關分析,譜分析等),統計模型的建立與推斷,以及關於時間序列的最優預測、控制與濾波等內容。經典的統計分析都假定數據序列具有獨立性,而時間序列分析則側重研究數據序列的互相依賴關系。後者實際上是對離散指標的隨機過程的統計分析,所以又可看作是隨機過程統計的一個組成部分。例如,記錄了某地區第一個月,第二個月,……,第N個月的降雨量,利用時間序列分析方法,可以對未來各月的雨量進行預報。
問題二:什麼樣的數據比較適合做時間序列模型分析 你可以到統計年鑒或者stats.gov(中華人民共和國國家統計局網站)里去查找你需要的數據。
氣象方面,金融方面,中國城市化水平等社會化相關問題,股票指數(也屬於金融領域了)。
時間序列模型預測城市時用水量
autooo/classid36-id9874
這方面圖書館有賣很多相關書籍。
問題三:時間序列數據與橫截面數據有什麼區別? 時間序列數據是同一對象跨時間的觀察值的向量 所以必須按照一定順序
(X1, X2, ..., Xt)
橫截面數據一般是同一時點對不同對象的觀察值的 *** 順序的改變應該不影響計量的結果
{X1, X2, ..., Xn}
問題四:時間旅碧序列分析適合大量的歷史數據嗎 時間序列是按時間順序的一組數字序列。時間序列分析就是利用這組數列,應用數理統計方法加以處理,以預測未來事物的發展。時間序列分析是定量預測方法之一,它的基本原理:一是承認事物發展的延續性。應用過去數據,就能推測事物的發展趨勢。二是考慮到事物發展的隨機性。任何事物發展都可能受偶然因素影響,為此要利用統計分析中加權平均法對歷史數據進行處理。該方法方法簡單易行,便於掌握,但准確性差,一般只適用於短期預測。
問題五:時間序列數據與橫截面數據有什麼區別? 時間序列數據和橫截面數據,對某個統計指數在不同時期進行觀測,將得到的數據按時間先後次序進行排列,這樣得到的統計數據稱為時間序列數據。每月的銷售額、每季度的進口額、每年末的存款余額等都是時間序列數據。與此不同,若某個指標在不同的個體上進行觀測,則得到該指標的一組橫截面數據。
問題六:大純什麼樣的數據適合做時間序列建模 你可以到統計年鑒或者stats.gov(中華人民共和國國家統計局網站)里去查找你需要的數據。
氣象方面,金融方面,中國城市化水平等社會化相關問題,股票指數(也屬於金融領域了)。
時間序列模型預測城市時用水量
autooo/classid36-id9874
這方面圖書館有賣很多相關書籍。
問題七:請看一下這些數據是時間序列數據還是面板數據? 20分 這要看你的數據是選取的是1998-2010年單一某地碳排放量(Y)和GDP(X)的數據,還是多個地方的數據了。前者是時間序列數據後者是面板數據(時間序列數據是指同一解釋變數在不同時點上同一地點的觀測值,簡單來講就是僅僅是某地的Y和X的數據;而面板數據指的是同一解釋變數在不同時點上多個地點的觀測值,比如Y和X選的是多個省的數據)。應該能看懂吧。
對於第二個問題:協整性檢驗和平穩性檢驗選取的變數是一樣的。
協整分析需要首先檢驗各個序列的平穩性,即進行單位根檢驗。對多變數來說一般可以用ADF檢驗和PP檢驗。
其次,再進行各個變數之間的協整檢驗。協整檢驗的方法有EG兩步法和JJ檢驗法。EG兩步法一般是針對兩個變數之間的協整關系進行檢驗,對於3個或以上的變數一般採用JJ檢驗法。
再次,利用向量誤差修正模型(VECM)建立各個變數之間的短期均拆仿舉衡關系,將長期均衡關系作為誤差糾正項納人方程中,以反應短期波動偏離長期均衡的程度。接著,可以利用Wald檢驗對誤差修正模型各方程系數的顯著性進行聯合檢驗,從而判別各變數因果關系的方向。
問題八:如何生成新時間序列數據 1、使用create命令,生成一個區間在2010-2015的工作文件,
2、在命令窗口中輸入:series [email protected](時間),生成一個以該時間為0基準的整數的時間序列。在案例中,輸入series [email protected](2010),按enter鍵生成後,點擊t,即可查看。
❸ 時間序列數據處理基礎
時間序列是指將某種現象某一個統計指標在不同時間上的各個數值,按時間先後順序排列而形成的序列。時間序列法是一種 定量預測 方法,亦稱簡單外延方法。在統計學中作為一種常用的預測手段被廣泛應用。 時間序列分析 在第二次世界大戰前應用於經濟預測。二次大戰中和戰後,在軍事科學、 空間科學 、氣象預報和工業自動化等部門的應用更加廣泛。 時間序列分析 (Time series analysis)是一種動態數據處理的 統計方法 。該方法基於隨機過程理論和數理統計學方法,研究隨機數據序列所遵從的 統計規律 ,以用於解決實際問題。- 360網路
隨著移動互聯和物聯網等的發展,現在很多領域也都會有時間序列數據需要進行處理,除了金融、農業、經濟學、生態學、物理學等,還有現在很多地方常見的數據形式,數據點是根據某種規律定期出現(比如每15秒,每5分鍾、每月出現一次)。
構成要素:長期趨勢,季節變動,循環變動,兄肢不規則變動
長期趨勢( T )現象在較長時期內受某種根本性因素作用而形成的總的變動趨勢,例如股票的價格有的會看幾年內的發展,需要考慮整體大的經濟環境,行業,已野弊經公司等的發展。
季節變動( S )現象在一年內隨著季節的變化而發生的有規律的周期性變動,比如股票會受短期的疫情,天氣,人員行業變動等等內外部因素影響,在某些時段出現波動。
循環變動( C )現象以若干年為周期所呈現出的波浪起伏形態的有規律的變動,比如羨脊世歲冷熱季節漲跌的變化,旅遊的熱季淡季等。
不規則變動(I )是一種無規律可循的變動,包括嚴格的隨機變動和不規則的突發性影響很大的變動兩種類型
根據不同使用場景,一般分為幾種
datetime.datetime(2020, 4, 28, 9, 45, 2, 474920)
看當前時間的各個值
2020 4 28 9 45 2
時間類型可以直接相減,得到間隔
結果是間隔類型
datetime.timedelta(days=218, seconds=53100)
218
同樣的,可以給 datetime 對象加上(或減去)一個或多個 timedelta,這樣會產生一個新對象:
datetime.datetime(2014, 6, 17, 0, 0)
datetime 模塊中的數據類型:
'2015-09-09 00-00-00'
'2015-09-09'
datetime.datetime(2015, 9, 9, 0, 0)
[datetime.datetime(2015, 7, 6, 0, 0), datetime.datetime(2015, 6, 2, 0, 0)]
datetime.strptime 是通過已知格式進行日期解析的最佳方式。但是每次都要編寫格式定義是很麻煩的事情,尤其是對於一些常見的日期格式。這種情況下,你可以用 deteutil 這個第三方包中的 parser.parse 方法:
datetime.datetime(2015, 8, 9, 0, 0)
dateutil 可以解析幾乎所有人類能夠理解的日期表示形式]: i ,不過可惜中文不行
datetime.datetime(1993, 1, 31, 22, 10)
國際通用的格式中,日通常出現在月的前面
傳入 dayfirst=True 即可解決這個問題
datetime.datetime(1993, 1, 31, 22, 10)
pandas 通常是用於處理成組日期的,不管這些日期是 DataFrame 的軸索引還是列。to_datetime 方法可以解析多種不同的日期表示形式。對標准日期格式(如 ISO8601)的解析非常快
它還可以處理缺失值(None、空字元串等)
NaT(Not a Time) 是 pandas 中的時間戳數據的 NA 值
datetime 格式定義:
有了時間數據對象基礎,一系列的時間和指標就可以組成時間序列,可以用series對象存儲處理,日期可以變成索引列
這些 datetime 對象實際是被放在一個 DatetimeIndex 中
現在 ts 就變成為一個 TimeSeries 了
不同索引的時間序列之間的算術運算會自動按日期對齊
只要需要,TimeStamp 可以隨時自動轉換為 datatime 對象。此外,它還可以存儲頻率信息(如果有的話),且知道如何執行時區轉換以及其他操作。
由於 TimeSeries 是 Series 的一個子類,所以在索引以及數據選取方面他們的行為是一樣的
由於大部分時間序列數據都是按照時間先後排序的
因此我們可以用不存在於時間序列中的時間戳進行切片
跟之前一樣,這里可以傳入字元串日期、datetime 或 Timestamp。此外還有一個等價的實例方法也可以截取兩個日期之間的 TimeSeries:
在某些應用場景中,可能會存在多個觀測數據落在同一個時間點上的情況
通過檢查索引的 is_unique 屬性,我們可以知道它是不是唯一的
對這個時間序列進行索引,要麼產生標量值,要麼產生切片
具體要看所選的時間點是否重復
假設我們想要對具體非唯一時間戳的數據進行聚合。一個辦法是使用 groupby,並傳入 level=0(索引的唯一一層):
❹ 數據分析之時間序列分析
顧名思義,時間序列就是按照時間順利排列的一組數據序列。時間序列分析就是發現這組數據的變動規律並用於預測的統計胡運簡技術。該技術有以下三個基本特點:
1.假設事物發展趨勢會延伸到未來;
2.預測所依據的數據具有不規則性;
3.不考慮事物發展之間的因果關系。
對時間序列進行分析的最終目的,是要通過分析序列進行合理預測,做到提前掌握其未來發展趨勢,以此為業務決策提供依據。
移動平均法和指數平滑法的局限
移動平均法是一種簡單平滑預測技術,它的基本思想是:根據時間序列資料逐項推移,依次計算包含一定項數的序時平均值,以反映長期趨勢。但這種方法不適合預測具有復雜趨勢的時間序列。指數平滑法是移動平均法的改進方法,通過對歷史數據的遠近不同賦予不同的權重進行預測。但在實際應用中,指數平滑法的預測值通常會滯後於實際值,尤其是所預測的時間序列存在長期趨勢時,這種滯後的情況更加明顯。
在實際進行時間序列預測時,遇到的數據會比較復雜,所以我們需要用到更專業的預測方法來對數據進行合理預測。通常情況下一個時間序列包含四種因素悄鍵,它們會通過不同的組合方式影響時間序列的發展變化。
時間序列四種因素有兩種組合方式。
1.四種因素相互獨立,即時間序列是由四種因素直接疊加而形成的,可用加法模型表示:
Y=T+S+C+I
2.四種因素相互影響,即時間序列是綜合四種因素而形成的,可用乘法模型表示:
Y=T×S×C×I,通常遇到的時間序列都是乘法模型。其中,原始時間序列值和長期趨勢可用絕對數表示,季節變動、循環變動和不規則變動則用相對數(通常是變動百分比)表示。
當我們需要對一個時間序列進行預測時,需要將上述四種因素從時間序列中分解出來。原因是:
1.把因素從時間序列中分解出來後,就能克服其他因素的影響,僅考量某一種因素對時間序列的影響;
2.分解這四種因素後,也可以分析他們之間的相互作用,以及它們對時間序列的綜合影響;
3.當去掉某些因素後,就可以更好地進行時間序列之間的比較,從而更加客觀地反映事物變化發展規律;
4.分解這些因素後的序列可以用於建立回歸模型,從而提高預測精度。
通常情況,我們會考慮進行季節因素的分解,也就是將季節變動因素從原時間序列中去除,並生成由剩餘的三種因素構成的序列來滿足後續分析需求。
如果時間序列圖的趨勢隨著時間的推移,序列的季節波動變得越來越大,則建議使用乘法模型;如果序列的季節波動能夠基本維持恆定,則建議使用加法模型。
時間序列的預測步驟主要分為四步:
(1)繪制時間序列圖觀察趨勢;
(2)分析序列平穩性並進行平穩化;
(3)時間序列建模分析;
(4)模型評估與預測;
平穩性是指時間序列的所有統計性質都不會隨著時間的推移而發生變化,對於一個平穩的時間序列來說,需要具有以下特徵:
(1)均數和方差不隨時間變化;
(2)自相關系數只與時間間隔有關,與所處的時間無關。
相關系數是用來量化變數之間的相關程度。自相關系數研究的是一個序列中不同時期的相關系數,也就是時間序列計算其當前期和不同滯後期的一系列相關系數。
目前主流的時間序列預測方法都是針對平穩的時間序列進行分析的,但是實際上,我們遇到的大多數時間序列都不平穩,所以在分析時,需要首先識別序列的平穩性,並且把不平穩的序列轉換為平穩序列。一個時間序列只有被平穩化處理過,才能被控制和預測。
將時間序列平穩化的方式有很多,基礎的方法是差分,因為這個方法有助於我們解讀時間序列模型。差分,就是指序列中前後相鄰的兩期數據之差。
ARIMA模型是時間序列分析中常用的一種模型,其全稱為求和自回歸移動平均模型。該模型形式為:ARIMA(p,d,q)(P,D,Q)。該模型有6個參數,前3個褲褲參數(p,d,q)針對季節性變化後的序列,後三個參數(P,D,Q)主要用來描述季節性變化,兩個序列是相乘的關系,因此,該模型也稱為復合季節模型。
其中:p,是指移除季節性變化後的序列所滯後的p期,取值通常為0或1,大於1的情況較少;d,是指移除季節性變化後的序列進行了d階差分,取值通常為0、1或2;q,是指移除季節性變化後的序列進行了q次移動平均,取值通常為0或1,很少會超過2。大寫的P,D,Q的含義相同,只是應用在包含季節性變化的序列上。本例中,該模型可解讀為,對移除季節因素的序列和包含季節因素的序列分別進行一階差分和一次移動平均,綜合兩個模型而構建出的時間序列模型。
模型擬合度主要通過R平方或平穩的R平方來評估模型擬合優度,以及在比較多個模型的情況下,通過比較統計量從而找到最優模型。本例中,由於原始序列具有季節變動因素,所以,平穩的R平方則更具參考意義。該值等於32.1%,所以,該時間序列模型的擬合效果一般。
模型統計提供了更多的統計量用以評估時間序列的數據擬合效果。本例中,雖然平穩的R平方值為32.1%,但是「楊-博克斯Q(18)」統計量的顯著性(P值)=0.706,大於0.05(此處的顯著性(P值)>0.05是期望得到的結果),則接受原假設,認為這個序列的殘差符合隨機序列分布,同時也沒有離群值的出現,這些也都反映出數據的擬合效果還是可以接受的。
❺ 時序資料庫是什麼,哪個好
時序資料庫全稱為時間序列資料庫。時間序列數據搏凳仿庫指主要用於處理帶時間標簽(按照時間的順序變化,即時間序列化)的數據,帶時間標簽的數據也稱為時間序列數據。
時間序列數據主要由電力行業、化工行業、氣象行業、地理信息等各類型實時監測、檢查與分析設備所採集、產生的數據。這些工業數據的典型特點是:產生頻率快、嚴重依賴於採集時間、測點多信息量大。
Transwarp TimeLyre 是星環科技研發的企業級分布式時序資料庫,可以支撐時序數據的各類業務場景, 支持高吞吐實時寫入、時序精確查詢、多維檢索等。 Timelyre 支持分布式水平擴展,同時具有極高的壓縮率可以支持海量時序數據的存儲,可以有效支撐物 聯網、能源製造、金融量化交粗型易領域基纖等多種時序數據業務場景。
❻ 時序資料庫是什麼解決什麼問題的主要應用那些行業
時序資料庫是一種按照時間存儲的資料庫。
解決是海量數據的高效插入查詢。
應用在互聯網的大規模數據統計分析上面,物聯網的信息收集方面。
時間點對於時序資料庫非常重要,而高吞吐量決定了它存在的價值。