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
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
đ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
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
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
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
- Lô đất
- Biểu đồ và biểu đồ mật độ
- Biểu đồ hộp và râu ria
- Bản đồ nhiệt
- Lag Plots hoặc Scatter Plots
- 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
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
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
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
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
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
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'