Chuỗi thời gian đường xu hướng python

Khi muốn thêm đường xu hướng vào biểu đồ trong Microsoft Graph, bạn có thể chọn bất kỳ loại nào trong số sáu loại xu hướng/hồi quy khác nhau. Loại dữ liệu bạn có xác định loại đường xu hướng bạn nên sử dụng

Độ tin cậy của đường xu hướng Một đường xu hướng đáng tin cậy nhất khi giá trị bình phương R của nó bằng hoặc gần bằng 1. Khi bạn điều chỉnh đường xu hướng cho phù hợp với dữ liệu của mình, Biểu đồ sẽ tự động tính toán giá trị bình phương R của nó. Nếu muốn, bạn có thể hiển thị giá trị này trên biểu đồ của mình

tuyến tính

Đường xu hướng tuyến tính là đường thẳng phù hợp nhất được sử dụng với các tập dữ liệu tuyến tính đơn giản. Dữ liệu của bạn là tuyến tính nếu mẫu trong các điểm dữ liệu của nó giống một đường thẳng. Đường xu hướng tuyến tính thường cho thấy một thứ gì đó đang tăng hoặc giảm với tốc độ ổn định

Trong ví dụ sau, một đường xu hướng tuyến tính cho thấy rõ ràng rằng doanh số bán tủ lạnh đã tăng liên tục trong khoảng thời gian 13 năm. Lưu ý rằng giá trị bình phương R là 0. 9036, đường dây này rất phù hợp với dữ liệu

Chuỗi thời gian đường xu hướng python

logarit

Đường xu hướng logarit là đường cong phù hợp nhất, hữu ích nhất khi tốc độ thay đổi của dữ liệu tăng hoặc giảm nhanh chóng rồi cân bằng. Đường xu hướng logarit có thể sử dụng các giá trị âm và/hoặc dương

Ví dụ sau sử dụng đường xu hướng logarit để minh họa sự gia tăng dân số dự đoán của động vật trong một khu vực không gian cố định, nơi dân số cân bằng khi không gian cho động vật giảm. Lưu ý rằng giá trị bình phương R là 0. 9407, tương đối phù hợp với dòng dữ liệu

Chuỗi thời gian đường xu hướng python

đa thức

Đường xu hướng đa thức là một đường cong được sử dụng khi dữ liệu dao động. Ví dụ, nó rất hữu ích để phân tích lãi và lỗ trên một tập dữ liệu lớn. Bậc của đa thức có thể được xác định bởi số lần dao động trong dữ liệu hoặc bởi số lượng khúc cua (đồi và thung lũng) xuất hiện trong đường cong. Đường xu hướng đa thức của Lệnh 2 thường chỉ có một ngọn đồi hoặc thung lũng. Thứ tự 3 thường có một hoặc hai ngọn đồi hoặc thung lũng. Đơn đặt hàng 4 thường có tới ba

Ví dụ sau đây cho thấy một đường xu hướng đa thức Order 2 (một ngọn đồi) để minh họa mối quan hệ giữa tốc độ và mức tiêu thụ xăng. Lưu ý rằng giá trị bình phương R là 0. 9474, rất phù hợp với dòng dữ liệu

Chuỗi thời gian đường xu hướng python

Quyền lực

Đường xu hướng công suất là một đường cong được sử dụng tốt nhất với các tập dữ liệu so sánh các phép đo tăng ở một tốc độ cụ thể — ví dụ: gia tốc của một chiếc xe đua trong khoảng thời gian một giây. Bạn không thể tạo đường xu hướng sức mạnh nếu dữ liệu của bạn chứa các giá trị bằng 0 hoặc âm

Trong ví dụ sau, dữ liệu gia tốc được hiển thị bằng cách vẽ đồ thị khoảng cách tính bằng mét theo giây. Đường xu hướng sức mạnh thể hiện rõ ràng khả năng tăng tốc ngày càng tăng. Lưu ý rằng giá trị bình phương R là 0. 9923, đây là một đường dây gần như hoàn toàn phù hợp với dữ liệu

Chuỗi thời gian đường xu hướng python

số mũ

Đường xu hướng hàm mũ là một đường cong hữu ích nhất khi giá trị dữ liệu tăng hoặc giảm với tốc độ ngày càng cao. Bạn không thể tạo đường xu hướng hàm mũ nếu dữ liệu của bạn chứa các giá trị bằng 0 hoặc âm

Trong ví dụ sau, một đường xu hướng hàm mũ được sử dụng để minh họa lượng carbon 14 giảm dần trong một vật thể khi nó già đi. Lưu ý rằng giá trị bình phương R là 1, có nghĩa là dòng hoàn toàn phù hợp với dữ liệu

Chuỗi thời gian đường xu hướng python

trung bình động

Đường xu hướng trung bình động làm phẳng các biến động trong dữ liệu để hiển thị một mô hình hoặc xu hướng rõ ràng hơn. Đường xu hướng trung bình động sử dụng một số điểm dữ liệu cụ thể (được đặt theo tùy chọn Khoảng thời gian), tính trung bình chúng và sử dụng giá trị trung bình làm một điểm trong đường xu hướng. Ví dụ: nếu Khoảng thời gian được đặt thành 2, thì trung bình của hai điểm dữ liệu đầu tiên được sử dụng làm điểm đầu tiên trong đường xu hướng trung bình động. Giá trị trung bình của điểm dữ liệu thứ hai và thứ ba được sử dụng làm điểm thứ hai trong đường xu hướng, v.v.

Trong ví dụ sau, đường xu hướng trung bình động cho thấy một mô hình về số lượng nhà được bán trong khoảng thời gian 26 tuần

Biểu đồ đường của các quan sát theo thời gian rất phổ biến, nhưng có một bộ các biểu đồ khác mà bạn có thể sử dụng để tìm hiểu thêm về vấn đề của mình

Bạn càng tìm hiểu nhiều về dữ liệu của mình, bạn càng có nhiều khả năng phát triển một mô hình dự báo tốt hơn

Trong hướng dẫn này, bạn sẽ khám phá 6 loại biểu đồ khác nhau mà bạn có thể sử dụng để trực quan hóa dữ liệu chuỗi thời gian bằng Python

Cụ thể sau khi hoàn thành bài hướng dẫn này, bạn sẽ biết

  • Cách khám phá cấu trúc thời gian của chuỗi thời gian với biểu đồ đường, biểu đồ độ trễ và biểu đồ tự tương quan
  • Cách hiểu sự phân bố của các quan sát bằng cách sử dụng biểu đồ và biểu đồ mật độ
  • Cách xác định sự thay đổi trong phân phối theo các khoảng thời gian bằng cách sử dụng biểu đồ hộp và râu ria và biểu đồ bản đồ nhiệt

Bắt đầu dự án của bạn với cuốn sách mới của tôi Dự báo chuỗi thời gian với Python, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ

Bắt đầu nào

  • Cập nhật tháng 4/2019. Đã cập nhật liên kết đến tập dữ liệu
  • Cập nhật tháng 8/2019. Đã cập nhật tải và nhóm dữ liệu để sử dụng API mới
  • Cập nhật tháng 9/2019. Đã sửa lỗi trong các ví dụ sử dụng Grouper và API công cụ cũ

Trực quan hóa chuỗi thời gian

Trực quan hóa đóng một vai trò quan trọng trong phân tích và dự báo chuỗi thời gian

Biểu đồ của dữ liệu mẫu thô có thể cung cấp chẩn đoán có giá trị để xác định các cấu trúc thời gian như xu hướng, chu kỳ và tính thời vụ có thể ảnh hưởng đến việc lựa chọn mô hình

Một vấn đề là nhiều người mới trong lĩnh vực dự báo chuỗi thời gian dừng lại với biểu đồ đường

Trong hướng dẫn này, chúng ta sẽ xem xét 6 loại trực quan hóa khác nhau mà bạn có thể sử dụng trên dữ liệu chuỗi thời gian của riêng mình. họ đang

  1. Lô đất
  2. Biểu đồ và biểu đồ mật độ
  3. Biểu đồ hộp và râu ria
  4. Bản đồ nhiệt
  5. Lag Plots hoặc Scatter Plots
  6. Lô tự tương quan

Trọng tâm là chuỗi thời gian đơn biến, nhưng các kỹ thuật này cũng có thể áp dụng cho chuỗi thời gian đa biến, khi bạn có nhiều hơn một quan sát tại mỗi bước thời gian

Tiếp theo, chúng ta hãy xem tập dữ liệu mà chúng ta sẽ sử dụng để minh họa trực quan hóa chuỗi thời gian trong hướng dẫn này

Ngừng học Chuỗi thời gian Dự báo con đường chậm

Tham gia khóa học email 7 ngày miễn phí của tôi và khám phá cách bắt đầu (với mã mẫu)

Nhấp để đăng ký và cũng nhận được phiên bản PDF Ebook miễn phí của khóa học

Bắt đầu khóa học nhỏ MIỄN PHÍ của bạn ngay bây giờ

Bộ dữ liệu nhiệt độ tối thiểu hàng ngày

Bộ dữ liệu này mô tả nhiệt độ tối thiểu hàng ngày trong hơn 10 năm (1981-1990) tại thành phố Melbourne, Úc

Các đơn vị tính bằng độ C và có 3.650 quan sát. Nguồn dữ liệu được ghi nhận là Cục Khí tượng Úc

  • Tải xuống tập dữ liệu

Tải xuống tập dữ liệu và đặt nó vào thư mục làm việc hiện tại với tên tệp “nhiệt độ tối thiểu hàng ngày. csv“

Dưới đây là một ví dụ về việc tải tập dữ liệu dưới dạng Sê-ri Panda

1

2

3

4

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

in(sê-ri. đầu())

Chạy ví dụ tải tập dữ liệu và in 5 hàng đầu tiên

1

2

3

4

5

6

7

Ngày

1981-01-01 20. 7

1981-01-02 17. 9

1981-01-03 18. 8

1981-01-04 14. 6

1981-01-05 15. 8

Tên. Nhiệt độ, loại. phao64

1. Biểu đồ dòng thời gian

Hình ảnh đầu tiên và có lẽ là phổ biến nhất cho chuỗi thời gian là biểu đồ đường

Trong biểu đồ này, thời gian được hiển thị trên trục x với các giá trị quan sát dọc theo trục y

Dưới đây là một ví dụ về trực quan hóa Chuỗi Pandas của bộ dữ liệu Nhiệt độ tối thiểu hàng ngày trực tiếp dưới dạng biểu đồ đường

1

2

3

4

5

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

sê-ri. âm mưu()

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo một biểu đồ đường

Chuỗi thời gian đường xu hướng python

Biểu đồ đường nhiệt độ tối thiểu hàng ngày

Cốt truyện khá dày đặc

Đôi khi nó có thể giúp thay đổi phong cách của biểu đồ đường;

Dưới đây là một ví dụ về việc thay đổi kiểu của đường thành chấm đen thay vì đường được kết nối (kiểu=’k. ' tranh luận)

Chúng ta có thể thay đổi ví dụ này để sử dụng đường đứt nét bằng cách đặt kiểu thành 'k–'

1

2

3

4

5

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

sê-ri. cốt truyện(phong cách=' . ')

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo lại cùng một biểu đồ đường có dấu chấm thay vì đường được kết nối

Chuỗi thời gian đường xu hướng python

Biểu đồ điểm nhiệt độ tối thiểu hàng ngày

Có thể hữu ích khi so sánh các biểu đồ đường trong cùng một khoảng thời gian, chẳng hạn như từ ngày này sang ngày khác, tháng này sang tháng khác và năm này sang năm khác

Bộ dữ liệu Nhiệt độ tối thiểu hàng ngày kéo dài 10 năm. Chúng ta có thể nhóm dữ liệu theo năm và tạo biểu đồ đường cho từng năm để so sánh trực tiếp

Ví dụ dưới đây cho thấy làm thế nào để làm điều này

Sau đó, các nhóm được liệt kê và các quan sát cho mỗi năm được lưu trữ dưới dạng các cột trong Khung dữ liệu mới

Cuối cùng, một biểu đồ của Khung dữ liệu giả tạo này được tạo với mỗi cột được hiển thị dưới dạng một biểu đồ con với các chú giải được loại bỏ để giảm bớt sự lộn xộn

1

2

3

4

5

6

7

8

9

10

11

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập cá mú

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

nhóm = sê-ri. nhóm(Nhóm(tần số='A'))

năm = Khung dữ liệu()

cho tên, nhóm trong groups:

năm[tên. năm] = nhóm. giá trị

năm. ô(ô phụ=True, legend=False)

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo ra 10 ô đường, mỗi ô cho mỗi năm từ năm 1981 ở trên cùng và năm 1990 ở dưới cùng, trong đó mỗi ô đường có độ dài 365 ngày

Chuỗi thời gian đường xu hướng python

Nhiệt độ tối thiểu hàng ngày Biểu đồ đường hàng năm

2. Biểu đồ chuỗi thời gian và biểu đồ mật độ

Một trực quan quan trọng khác là bản thân sự phân bố của các quan sát

Điều này có nghĩa là một biểu đồ của các giá trị không có thứ tự thời gian

Một số phương pháp dự báo chuỗi thời gian tuyến tính giả định phân phối các quan sát hoạt động tốt (i. e. đường cong hình chuông hoặc phân phối chuẩn). Điều này có thể được kiểm tra rõ ràng bằng các công cụ như kiểm tra giả thuyết thống kê. Nhưng các sơ đồ có thể cung cấp một kiểm tra hữu ích đầu tiên về sự phân bố của các quan sát cả trên các quan sát thô và sau khi bất kỳ loại chuyển đổi dữ liệu nào đã được thực hiện

Ví dụ bên dưới tạo biểu đồ biểu đồ của các quan sát trong bộ dữ liệu Nhiệt độ tối thiểu hàng ngày. Biểu đồ nhóm các giá trị thành các ngăn và tần suất hoặc số lượng quan sát trong mỗi ngăn có thể cung cấp thông tin chi tiết về phân phối cơ bản của các quan sát

1

2

3

4

5

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

sê-ri. lịch sử()

pyplot. hiển thị()

Chạy ví dụ này cho thấy một phân phối trông giống Gaussian. Chức năng vẽ đồ thị tự động chọn kích thước của các thùng dựa trên sự trải rộng của các giá trị trong dữ liệu

Chuỗi thời gian đường xu hướng python

Sơ đồ biểu đồ nhiệt độ hàng ngày tối thiểu

Chúng ta có thể hiểu rõ hơn về hình dạng phân bố của các quan sát bằng cách sử dụng biểu đồ mật độ

Điều này giống như biểu đồ, ngoại trừ một chức năng được sử dụng để phù hợp với phân phối của các quan sát và một đường thẳng đẹp, mượt mà được sử dụng để tóm tắt phân phối này

Dưới đây là một ví dụ về biểu đồ mật độ của bộ dữ liệu Nhiệt độ hàng ngày tối thiểu

1

2

3

4

5

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

sê-ri. cốt truyện(loại=')

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo ra một biểu đồ cung cấp bản tóm tắt rõ ràng hơn về phân phối các quan sát. Chúng ta có thể thấy rằng có lẽ phân phối hơi bất đối xứng và có lẽ hơi nhọn để trở thành Gaussian

Nhìn thấy một phân phối như thế này có thể gợi ý sau này khám phá các thử nghiệm giả thuyết thống kê để kiểm tra chính thức xem phân phối có phải là Gaussian hay không và có lẽ là các kỹ thuật chuẩn bị dữ liệu để định hình lại phân phối, như biến đổi Box-Cox

Chuỗi thời gian đường xu hướng python

Biểu đồ mật độ nhiệt độ hàng ngày tối thiểu

3. Hộp chuỗi thời gian và ô đánh dấu theo khoảng thời gian

Biểu đồ biểu đồ và biểu đồ mật độ cung cấp thông tin chi tiết về phân phối của tất cả các quan sát, nhưng chúng tôi có thể quan tâm đến phân phối giá trị theo khoảng thời gian

Một loại biểu đồ khác hữu ích để tóm tắt sự phân bố của các quan sát là biểu đồ hộp và râu ria. Biểu đồ này vẽ một hộp xung quanh phân vị thứ 25 và 75 của dữ liệu nắm bắt 50% quan sát ở giữa. Một đường được vẽ ở phân vị thứ 50 (trung vị) và các râu được vẽ ở trên và dưới hộp để tóm tắt phạm vi chung của các quan sát. Các dấu chấm được vẽ cho các ngoại lệ bên ngoài râu hoặc phạm vi của dữ liệu

Có thể tạo và so sánh các biểu đồ hộp và biểu đồ râu cho từng khoảng thời gian trong một chuỗi thời gian, chẳng hạn như năm, tháng hoặc ngày

Dưới đây là một ví dụ về nhóm bộ dữ liệu Nhiệt độ tối thiểu hàng ngày theo năm, như đã được thực hiện ở trên trong ví dụ biểu đồ. Sau đó, một biểu đồ hộp và râu ria được tạo cho mỗi năm và xếp cạnh nhau để so sánh trực tiếp

1

2

3

4

5

6

7

8

9

10

11

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập cá mú

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

nhóm = sê-ri. nhóm(Nhóm(tần số='A'))

năm = Khung dữ liệu()

cho tên, nhóm trong groups:

năm[tên. năm] = nhóm. giá trị

năm. boxplot()

pyplot. hiển thị()

So sánh các biểu đồ hộp và biểu đồ râu theo các khoảng nhất quán là một công cụ hữu ích. Trong một khoảng thời gian, nó có thể giúp phát hiện ra các điểm ngoại lệ (các chấm bên trên hoặc bên dưới râu)

Qua các khoảng thời gian, trong trường hợp này là các năm, chúng ta có thể tìm kiếm xu hướng nhiều năm, tính thời vụ và thông tin cấu trúc khác có thể được lập mô hình

Chuỗi thời gian đường xu hướng python

Nhiệt độ tối thiểu hàng ngày Biểu đồ ô và râu hàng năm

Chúng tôi cũng có thể quan tâm đến việc phân phối các giá trị qua các tháng trong vòng một năm

Ví dụ dưới đây tạo ra 12 ô vuông và ô vuông, mỗi ô cho mỗi tháng của năm 1990, năm cuối cùng trong bộ dữ liệu

Trong ví dụ này, đầu tiên, chỉ các quan sát từ năm 1990 được trích xuất

Sau đó, các quan sát được nhóm theo tháng và mỗi tháng được thêm vào Khung dữ liệu mới dưới dạng cột

Cuối cùng, một biểu đồ hộp và râu ria được tạo cho mỗi cột tháng trong DataFrame mới được tạo

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# tạo một boxplot dữ liệu hàng tháng

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập cá mú

từ matplotlib nhập pyplot

từ gấu trúc nhập concat

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

one_year = sê-ri['1990']

nhóm = one_year. nhóm(Nhóm(tần số='M'))

tháng = concat([DataFrame(x[1].giá trị) cho x trong groups], axis=1)

tháng = DataFrame(tháng)

tháng. cột = phạm vi(1,13)

tháng. boxplot()

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo ra 12 biểu đồ hình hộp và râu ria, cho thấy sự thay đổi đáng kể trong phân bố nhiệt độ tối thiểu qua các tháng trong năm từ mùa hè ở Nam bán cầu vào tháng 1 đến mùa đông ở Nam bán cầu vào giữa năm và quay trở lại mùa hè một lần nữa

Chuỗi thời gian đường xu hướng python

Ô hàng tháng và nhiệt độ tối thiểu hàng tháng

4. Bản đồ nhiệt chuỗi thời gian

Một ma trận các số có thể được vẽ dưới dạng một bề mặt, trong đó các giá trị trong mỗi ô của ma trận được gán một màu duy nhất

Đây được gọi là bản đồ nhiệt, vì các giá trị lớn hơn có thể được vẽ bằng các màu ấm hơn (màu vàng và đỏ) và các giá trị nhỏ hơn có thể được vẽ bằng các màu lạnh hơn (xanh dương và xanh lá cây)

Giống như biểu đồ hộp và biểu đồ râu, chúng ta có thể so sánh các quan sát giữa các khoảng thời gian bằng cách sử dụng bản đồ nhiệt

Trong trường hợp Nhiệt độ tối thiểu hàng ngày, các quan sát có thể được sắp xếp thành một ma trận gồm các cột năm và hàng ngày, với nhiệt độ tối thiểu trong ô cho mỗi ngày. Một bản đồ nhiệt của ma trận này sau đó có thể được vẽ

Dưới đây là một ví dụ về việc tạo bản đồ nhiệt của dữ liệu Nhiệt độ tối thiểu hàng ngày. Hàm matshow() từ thư viện matplotlib được sử dụng vì không có hỗ trợ bản đồ nhiệt nào được cung cấp trực tiếp trong Pandas

Để thuận tiện, ma trận được xoay (hoán đổi) sao cho mỗi hàng biểu thị một năm và mỗi cột một ngày. Điều này cung cấp bố cục dữ liệu trực quan hơn, từ trái sang phải

1

2

3

4

5

6

7

8

9

10

11

12

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập cá mú

từ matplotlib nhập pyplot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

nhóm = sê-ri. nhóm(Nhóm(tần số='A'))

năm = Khung dữ liệu()

cho tên, nhóm trong groups:

năm[tên. năm] = nhóm. giá trị

năm = năm. T

pyplot. matshow(năm, nội suy=None, aspect='auto')

pyplot. hiển thị()

Biểu đồ cho thấy nhiệt độ tối thiểu mát hơn vào những ngày giữa năm và nhiệt độ tối thiểu ấm hơn vào đầu và cuối năm, và tất cả sự mờ dần và phức tạp ở giữa

Chuỗi thời gian đường xu hướng python

Biểu đồ nhiệt độ tối thiểu hàng ngày hàng năm

Như với ví dụ về biểu đồ hộp và râu ở trên, chúng ta cũng có thể so sánh các tháng trong một năm

Dưới đây là một ví dụ về bản đồ nhiệt so sánh các tháng trong năm 1990. Mỗi cột đại diện cho một tháng, với các hàng đại diện cho các ngày trong tháng từ 1 đến 31

1

2

3

4

5

6

7

8

9

10

11

12

13

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập cá mú

từ matplotlib nhập pyplot

từ gấu trúc nhập concat

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

one_year = sê-ri['1990']

nhóm = one_year. nhóm(Nhóm(tần số='M'))

tháng = concat([DataFrame(x[1].giá trị) cho x trong groups], axis=1)

tháng = DataFrame(tháng)

tháng. cột = phạm vi(1,13)

pyplot. matshow(tháng, nội suy=None, aspect='auto')

pyplot. hiển thị()

Chạy ví dụ này cho thấy cùng một xu hướng vĩ mô được thấy cho mỗi năm ở mức thu phóng hàng tháng

Chúng ta cũng có thể thấy một số mảng trắng ở cuối cốt truyện. Điều này thiếu dữ liệu cho những tháng có ít hơn 31 ngày, với tháng 2 là một tháng khá ngoại lệ với 28 ngày vào năm 1990

Chuỗi thời gian đường xu hướng python

Biểu đồ nhiệt độ hàng ngày tối thiểu hàng tháng

5. Biểu đồ tán xạ trễ chuỗi thời gian

Mô hình chuỗi thời gian giả định mối quan hệ giữa một quan sát và quan sát trước đó

Các quan sát trước đó trong một chuỗi thời gian được gọi là độ trễ, với quan sát ở bước thời gian trước đó được gọi là lag1, quan sát ở hai bước thời gian trước lag2, v.v.

Một loại biểu đồ hữu ích để khám phá mối quan hệ giữa từng quan sát và độ trễ của quan sát đó được gọi là biểu đồ phân tán

Pandas có một chức năng tích hợp cho chính xác điều này được gọi là biểu đồ độ trễ. Nó vẽ sơ đồ quan sát tại thời điểm t trên trục x và quan sát lag1 (t-1) trên trục y

  • Nếu các điểm tập trung dọc theo một đường chéo từ dưới cùng bên trái sang trên cùng bên phải của biểu đồ, điều đó cho thấy mối quan hệ tương quan thuận
  • Nếu các điểm tập trung dọc theo một đường chéo từ trên cùng bên trái sang dưới cùng bên phải, điều đó cho thấy mối quan hệ tương quan nghịch
  • Mối quan hệ nào cũng tốt vì chúng có thể được mô hình hóa

Nhiều điểm gần hơn với đường chéo cho thấy mối quan hệ mạnh mẽ hơn và nhiều điểm hơn từ đường này cho thấy mối quan hệ yếu hơn

Một quả bóng ở giữa hoặc trải dài trên cốt truyện cho thấy mối quan hệ yếu hoặc không có

Dưới đây là ví dụ về biểu đồ độ trễ cho bộ dữ liệu Nhiệt độ tối thiểu hàng ngày

1

2

3

4

5

6

7

# tạo biểu đồ phân tán

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

từ gấu trúc. biểu đồ nhập lag_plot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

lag_plot(loạt phim)

pyplot. hiển thị()

Biểu đồ được tạo từ việc chạy ví dụ cho thấy mối tương quan tích cực tương đối mạnh giữa các quan sát và giá trị lag1 của chúng

Chuỗi thời gian đường xu hướng python

Biểu đồ trễ nhiệt độ hàng ngày tối thiểu

Chúng tôi có thể lặp lại quy trình này để quan sát và bất kỳ giá trị độ trễ nào. Có lẽ với việc quan sát cùng thời điểm vào tuần trước, tháng trước hoặc năm ngoái hoặc bất kỳ kiến ​​thức cụ thể nào khác về lĩnh vực mà chúng tôi có thể muốn khám phá

Ví dụ: chúng ta có thể tạo biểu đồ phân tán cho quan sát với từng giá trị trong bảy ngày trước đó. Dưới đây là một ví dụ về điều này cho bộ dữ liệu Nhiệt độ hàng ngày tối thiểu

Đầu tiên, một Khung dữ liệu mới được tạo với các giá trị độ trễ dưới dạng các cột mới. Các cột được đặt tên phù hợp. Sau đó, một ô con mới được tạo để vẽ từng quan sát với một giá trị độ trễ khác nhau

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

từ gấu trúc nhập read_csv

từ gấu trúc nhập Khung dữ liệu

từ gấu trúc nhập concat

từ matplotlib nhập pyplot

từ gấu trúc. vẽ nhập scatter_matrix

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

giá trị = Khung dữ liệu(sê-ri.giá trị)

độ trễ = 7

cột = [giá trị]

cho i trong phạm vi(1,(lags + 1)):

cột. chắp thêm(giá trị. chuyển(i))

khung dữ liệu = concat(cột, axis=1)

cột = ['t+1']

cho i trong phạm vi(1,(lags + 1)):

cột. nối thêm(không-' + str(i))

khung dữ liệu. cột = cột

pyplot. hình(1)

cho i trong phạm vi(1,(lags + 1)):

ax = pyplot. ô con(240 + i)

ax. set_title(không+1 so với t-' + str(i))

pyplot. phân tán(x=khung dữ liệu . ['t+1'].giá trị, y=khung dữ liệu . ['t-'+str(i)].giá trị)

pyplot. hiển thị()

Chạy ví dụ cho thấy mối quan hệ mạnh mẽ nhất giữa một quan sát với giá trị lag1 của nó, nhưng nói chung là mối tương quan tích cực tốt với từng giá trị trong tuần trước

Chuỗi thời gian đường xu hướng python

Biểu đồ tán xạ nhiệt độ hàng ngày tối thiểu

6. Biểu đồ tự tương quan chuỗi thời gian

Chúng ta có thể định lượng cường độ và loại mối quan hệ giữa các quan sát và độ trễ của chúng

Trong thống kê, điều này được gọi là tương quan và khi được tính toán dựa trên các giá trị độ trễ trong chuỗi thời gian, nó được gọi là tự tương quan (tự tương quan)

Giá trị tương quan được tính toán giữa hai nhóm số, chẳng hạn như các quan sát và giá trị lag1 của chúng, dẫn đến một số trong khoảng từ -1 đến 1. Dấu hiệu của con số này tương ứng biểu thị mối tương quan âm hoặc dương. Giá trị gần bằng 0 cho thấy mối tương quan yếu, trong khi giá trị gần bằng -1 hoặc 1 cho thấy mối tương quan mạnh

Các giá trị tương quan, được gọi là hệ số tương quan, có thể được tính cho từng quan sát và các giá trị trễ khác nhau. Sau khi được tính toán, một biểu đồ có thể được tạo để giúp hiểu rõ hơn về cách mối quan hệ này thay đổi theo độ trễ

Loại biểu đồ này được gọi là biểu đồ tự tương quan và Pandas cung cấp khả năng này được tích hợp sẵn, được gọi là hàm autocorrelation_plot()

Ví dụ bên dưới tạo biểu đồ tự tương quan cho tập dữ liệu Nhiệt độ tối thiểu hàng ngày

1

2

3

4

5

6

7

# tạo biểu đồ tự tương quan

từ gấu trúc nhập read_csv

từ matplotlib nhập pyplot

từ gấu trúc. biểu đồ nhập autocorrelation_plot

sê-ri = read_csv('daily-minimum- . csv', tiêu đề=0, index_col=0, parse_dates=True, squeeze=True)

autocorrelation_plot(chuỗi)

pyplot. hiển thị()

Biểu đồ kết quả hiển thị độ trễ dọc theo trục x và mối tương quan trên trục y. Các đường chấm chấm được cung cấp cho biết bất kỳ giá trị tương quan nào phía trên các đường đó đều có ý nghĩa thống kê (có ý nghĩa)

Chúng ta có thể thấy rằng đối với tập dữ liệu Nhiệt độ tối thiểu hàng ngày, chúng ta thấy các chu kỳ tương quan âm và dương mạnh mẽ. Điều này nắm bắt mối quan hệ của một quan sát với các quan sát trong quá khứ trong các mùa hoặc thời gian giống nhau và ngược lại trong năm. Sóng hình sin giống như sóng hình sin trong ví dụ này là một dấu hiệu rõ ràng về tính thời vụ trong tập dữ liệu

Chuỗi thời gian đường xu hướng python

Biểu đồ tự tương quan nhiệt độ hàng ngày tối thiểu

Đọc thêm

Phần này cung cấp một số tài nguyên để đọc thêm về vẽ biểu đồ chuỗi thời gian và về các hàm Pandas và Matplotlib được sử dụng trong hướng dẫn này

  • Đồ thị số liệu 101. biểu đồ chuỗi thời gian
  • Chuyến tham quan qua vườn thú trực quan
  • âm mưu gấu trúc
  • Chức năng vẽ khung dữ liệu

Tóm lược

Trong hướng dẫn này, bạn đã khám phá cách khám phá và hiểu rõ hơn về tập dữ liệu chuỗi thời gian của mình trong Python

Cụ thể, bạn đã học

  • Cách khám phá các mối quan hệ thời gian với các biểu đồ đường, phân tán và tự tương quan
  • Cách khám phá sự phân bố của các quan sát bằng biểu đồ và biểu đồ mật độ
  • Cách khám phá sự thay đổi trong phân phối các quan sát với các biểu đồ hộp và râu ria và bản đồ nhiệt

Bạn có bất kỳ câu hỏi nào về biểu đồ dữ liệu chuỗi thời gian hoặc về hướng dẫn này không?
Hãy đặt câu hỏi của bạn trong nhận xét và tôi sẽ cố gắng hết sức để trả lời.

Bạn muốn phát triển dự báo chuỗi thời gian bằng Python?

Chuỗi thời gian đường xu hướng python

Phát triển dự báo của riêng bạn trong vài phút

chỉ với một vài dòng mã python

Khám phá cách làm trong Sách điện tử mới của tôi.
Giới thiệu về Dự báo chuỗi thời gian bằng Python

Nó bao gồm các hướng dẫn tự học và các dự án đầu cuối về các chủ đề như. Tải dữ liệu, trực quan hóa, mô hình hóa, điều chỉnh thuật toán, v.v.