Chuỗi thời gian thay đổi phần trăm python

Tất cả các Chức năng này sẽ được thử nghiệm trên một trường hợp sử dụng, giúp bạn phân tích tốt hơn và hiểu rõ hơn

Ảnh của Isaac Smith trên Bapt

Dữ liệu chuỗi thời gian là gì?

Những loại dữ liệu này là dữ liệu được sắp xếp tuần tự theo thời gian và những quan sát này thường được thu thập theo định kỳ, điều này có thể là

  • Mỗi giây/phút/giờ
  • Hằng ngày
  • hàng tháng
  • Hàng quý / Hàng năm

Một số ví dụ thực tế là

  • Dữ liệu bán hàng hàng tháng
  • Giá thị trường chứng khoán
  • Dữ liệu thời tiết hàng giờ/Tốc độ gió
  • Cảm biến IoT [Internet vạn vật] trong các ngành công nghiệp và thiết bị thông minh
  • Dự báo năng lượng
Thuộc tính của dữ liệu chuỗi thời gian
  • Xu hướng cho thấy xu hướng chung của dữ liệu tăng hoặc giảm trong một khoảng thời gian dài. Nói chung, một xu hướng là một xu hướng trung bình, chung, dài hạn, trơn tru
  • tính thời vụ. đề cập đến biến động định kỳ. Ví dụ: mức tiêu thụ điện cao vào ban ngày và thấp vào ban đêm, tương tự như vậy, doanh số bán hàng trực tuyến tăng lên trong dịp Giáng sinh trước khi giảm trở lại
  • Tính dừng là một đặc điểm chính của chuỗi thời gian. Một chuỗi thời gian được gọi là dừng nếu các thuộc tính thống kê của nó không thay đổi theo thời gian. Nói cách khác, nó có giá trị trung bình và phương sai không đổi, và hiệp phương sai không phụ thuộc vào thời gian. tôi. e. Giá cổ phiếu không phải là một chuỗi cố định, vì chúng ta có thể thấy xu hướng tăng hoặc giảm và độ biến động của nó có thể tăng theo thời gian [có nghĩa là phương sai đang thay đổi]

Lý tưởng nhất là chúng ta muốn có một chuỗi thời gian cố định để lập mô hình. Trong các tình huống trong thế giới thực, không phải tất cả chúng đều đứng yên, nhưng chúng ta có thể thực hiện các phép biến đổi khác nhau để khiến chúng đứng yên

Trường hợp sử dụng

Tôi sẽ sử dụng bản ghi Khí hậu hàng ngày của Delhi trong khoảng thời gian từ 2013 đến 2017. Bộ dữ liệu có 4 tính năng nhưng đối với hướng dẫn này, tôi sẽ chỉ sử dụng cụ thể Cột Độ ẩm

lập chỉ mục

dfVisualization với Thanh trượt

Hình ảnh của tác giả

Như chúng ta có thể thấy dữ liệu từ biểu đồ phía trên, dữ liệu có vẻ ổn định và có một số cách để kiểm tra xem. hãy nhìn vào chúng

Các phương pháp kiểm tra tính dừng

Kiểm định ADF là kiểm định được sử dụng phổ biến nhất về tính dừng của chuỗi, trong đó giả thuyết không là chuỗi thời gian có nghiệm đơn vị và không dừng. Vì vậy, nếu giá trị p trong xét nghiệm ADH nhỏ hơn mức ý nghĩa [0. 05] chúng tôi bác bỏ giả thuyết vô hiệu

  • giả thuyết không. Chuỗi có căn đơn vị [giá trị của a = 1]
  • giả thuyết thay thế. Sê-ri không có gốc đơn vị

Kiểm định KPSS[[Kwiatkowski-Phillips-Schmidt-Shin] là một kiểm định khác để kiểm tra tính dừng của một chuỗi thời gian

Tuy nhiên, giả thuyết không và giả thuyết thay thế đối với thử nghiệm KPSS trái ngược với giả thuyết của thử nghiệm ADF, điều này thường tạo ra sự nhầm lẫn. [Bạn có thể thấy trong mã bên dưới các điều kiện ngược lại]

  • giả thuyết không. Quy trình văn phòng phẩm xu hướng
  • giả thuyết thay thế. Sê-ri có gốc đơn vị [sê-ri không đứng yên]

Tốt hơn hết là áp dụng cả hai phép thử để chúng ta chắc chắn rằng chuỗi này thực sự dừng

tự tương quan

Tự tương quan rất quan trọng vì nó có thể giúp chúng tôi khám phá các mẫu trong chuỗi thời gian của mình, chọn thành công thuật toán lập mô hình tốt nhất, đánh giá chính xác hiệu quả của mô hình của chúng tôi. Cụ thể, biểu đồ tự tương quan và tự tương quan một phần được sử dụng nhiều để tóm tắt độ mạnh và mối quan hệ trong các quan sát theo chuỗi thời gian với các quan sát ở các bước thời gian trước đó

Khi có một mô hình theo mùa mạnh mẽ, chúng ta có thể thấy trong biểu đồ ACF thường được xác định các đợt tăng đột biến lặp lại ở bội số của cửa sổ theo mùa. Ví dụ: trong hầu hết “chuỗi thời gian bán hàng hàng tháng”, bạn sẽ có thể thấy mức tăng đột biến vào khoảng ngày 12, 24, 36. dòng giải thích sự gia tăng doanh số bán hàng với sự ra đời của ngày lễ Giáng sinh

phân hủy

Bất kỳ chuỗi thời gian nào cũng có thể được chia thành các thành phần sau

  • Cấp cơ sở
  • Xu hướng
  • tính thời vụ
  • Lỗi

Tuy nhiên, không bắt buộc series mọi thời đại phải có xu hướng và/hoặc tính thời vụ. Một chuỗi thời gian có thể không có xu hướng riêng biệt nhưng có tính thời vụ. Điều ngược lại cũng có thể đúng. [1]

Tùy thuộc vào bản chất của xu hướng và tính thời vụ, một chuỗi thời gian có thể được mô hình hóa dưới dạng cộng hoặc nhân, trong đó, mỗi quan sát trong chuỗi có thể được biểu thị dưới dạng tổng hoặc tích của các thành phần

Trích xuất các thành phần

# Actual Values = Addition of [Seasonality + Trend + Residual]

Bảng thành phầnResampling

df. chức năng resample[] cho phép chúng tôi lấy mẫu lại chuỗi thời gian của mình theo tần số mong muốn. Một số bí danh chuỗi được cung cấp để sử dụng các tần số chuỗi thời gian phổ biến, chúng được gọi là bí danh bù. Chúng ta hãy xem một vài lần lấy mẫu lại bằng cách sử dụng các bí danh bù này

- df. khác biệt [ ]

Tính toán sự khác biệt alegbric giữa một phần tử Dataframe với một phần tử khác, mặc định là một nghĩa là nó "khác" phần tử với phần tử ưu tiên. Đây là một ví dụ với cột độ ẩm của chúng tôi

Như được hiển thị ở trên df[. 5]. diff[2] lấy sự khác biệt giữa phần tử thứ nhất và thứ ba của cột, do đó, phần tử thứ hai và thứ tư, v.v.

- df. pct_change[ ]

Tính Tỷ lệ phần trăm thay đổi giữa phần tử hiện tại và phần tử trước đó

Tính phần trăm thay đổi từ hàng ngay trước đó theo mặc định. Điều này hữu ích trong việc so sánh tỷ lệ phần trăm thay đổi trong chuỗi thời gian của các yếu tố

- df. theo nhóm[ ]

Bây giờ, hãy thử tính giá trị trung bình của tất cả các tháng, năm và ngày trong tuần. Chúng tôi sẽ áp dụng pct_change để xem mô hình đã thay đổi như thế nào so với trước đó

Độ ẩm có nghĩa là trong tất cả các tháng, năm và ngày trong tuần

Ghi chú. có sự bất thường về độ ẩm trung bình năm 2017 [“năm”]. Dữ liệu năm 2017 chỉ có một bản ghi. do đó sự bất thường này

fig, [ax1, ax2,ax3] = plt.subplots[3,figsize=[30,30]]ax1.plot[week_mean_df.Percentage_increase,marker='o', linestyle='--', linewidth=5,markersize=30, color='g']
ax1.set_title['Weekly Pct_change'];
ax2.plot[month_mean_df.Percentage_increase,marker='o', linestyle='--', linewidth=5,markersize=30, color='r']
ax2.set_title['Monthly Pct_change '];
ax3.plot[year_mean_df.Percentage_increase,marker='o', linestyle='--', linewidth=5,markersize=30, color='b']
ax3.set_title['Yearly Pct_change'];

Độ ẩm Phần trăm tăng theo [Tất cả các tháng, năm và các ngày trong tuần]- df. sự thay đổi[]

Hàm shift dịch chuyển dữ liệu trước hoặc sau khoảng thời gian đã chỉ định

Dịch chuyển chỉ mục theo số khoảng thời gian mong muốn với tần số thời gian tùy chọn. Nếu không được chỉ định theo mặc định, nó sẽ dịch chuyển dữ liệu theo một ngày như hình trên

chẳng hạn, nếu chúng tôi muốn chuyển dữ liệu sau 365 ngày, chúng tôi có thể thực hiện

df[:5]shift[365]
-df. lăn[]

Cung cấp tính toán cửa sổ cuốn hoặc tôi. e Tính toán trung bình động

Trung bình động đang thực hiện trung bình toán học của cửa sổ cuộn có chiều rộng xác định. Bạn nên chọn chiều rộng cửa sổ một cách khôn ngoan, kích thước cửa sổ lớn sẽ làm mịn chuỗi quá mức. Kích thước cửa sổ lớn hơn hoặc bằng thời lượng theo mùa sẽ vô hiệu hóa hiệu ứng theo mùa một cách hiệu quả

Trong hình bên dưới, bạn có thể thấy rõ rằng cửa sổ nhỏ hơn năm có thể là ngưỡng khi chúng tôi tăng kích thước cửa sổ lớn hơn, chuỗi được làm mịn quá mức

Khi chọn cửa sổ, bạn có tùy chọn để kiểm tra và chọn một loại Cửa sổ khác, Dưới đây là một ví dụ với một vài loại

-df. ừm[ ]

Điều này cung cấp các hàm có trọng số theo cấp số nhân [EW], cân nhắc nhiều hơn các giá trị hiện tại hơn là các giá trị lịch sử

So sánh Cửa cuốn với EWMKết luận

Trong bài đăng này, tôi đã cố gắng giải thích hầu hết các chức năng kiểm tra thống kê và gấu trúc hữu ích để phân tích chuỗi thời gian. Nếu bạn có thể chạy tất cả mã ở trên, thì bạn nên có một số kiến ​​thức về cách thực hiện phân tích trường hợp sử dụng chuỗi thời gian. Sẽ mất nhiều thời gian thực hành để sử dụng thành thạo tất cả các chức năng này. Nếu bạn đã biết những chức năng này, tôi rất vui vì đã làm mới bộ nhớ và kỹ năng của bạn

Cảm ơn bạn đã truy cập đến đây, nếu bạn muốn tìm hiểu thêm về lập mô hình, phân tích và nhiều hơn nữa về chuỗi thời gian, tôi khuyên bạn nên sử dụng kênh Youtube. Danh sách phát kỹ thuật AI [của Srivatsan Srinivasan] trên Time Series, phần sau rất phong phú với nhiều thông tin chất lượng, hãy xem thử. ]

Đọc thêm

Giảm kích thước để trực quan hóa dữ liệu. PCA so với TSNE so với UMAP so với LDA

Trực quan hóa tập dữ liệu chiều cao bằng cách sử dụng. PCA, TSNE, LDA và UMAP

hướng tới khoa học dữ liệu. com

kiểm tra thống kê. Hiểu Cách chọn bài kiểm tra tốt nhất cho dữ liệu của bạn

Bài đăng này hướng đến các nhà khoa học dữ liệu đầy tham vọng và những người học và thực hành máy học [ML]

hướng tới khoa học dữ liệu. com

Vòng đời khoa học dữ liệu

Phân tích từng bước. Từ hiểu biết kinh doanh đến giám sát mô hình

hướng tới khoa học dữ liệu. com

“TF-IDF” của Sklearn khác với “TF-IDF” tiêu chuẩn như thế nào?

Hãy cùng xem sự khác biệt và phân tích từng bước phương pháp được thực hiện để tính toán TF-IDF của Sklearn

hướng tới khoa học dữ liệu. com

Người giới thiệu

[1] Học máy+. 2020. Phân tích chuỗi thời gian trong Python — Hướng dẫn toàn diện có ví dụ — ML+. [trực tuyến] Có sẵn tại. https. //www. máy học cộng. com/time-series/time-series-analysis-python/

pct_change[] hoạt động như thế nào?

Phương thức pct_change[] trả về DataFrame có phần trăm chênh lệch giữa các giá trị cho mỗi hàng và theo mặc định là hàng trước đó . Hàng nào để so sánh có thể được chỉ định với tham số thời gian.

Làm thế nào để tính phần trăm thay đổi trong gấu trúc?

Cách tính phần trăm thay đổi trong gấu trúc .
chỉ số 1. [14 – 6] / 6 = 1. 333333
chỉ số 2. [12 – 14] / 14 = -. 142857
chỉ số 3. [18 – 12] / 12 = 0. 5
chỉ số 4. [19 – 18] / 18 =. 055556

Làm cách nào bạn có thể tính phần trăm thay đổi giữa 2 giá trị trong một chuỗi?

Tỷ lệ phần trăm thay đổi. Tăng và Giảm .
Đầu tiên. tìm ra sự khác biệt [tăng] giữa hai số bạn đang so sánh
Tăng = Số Mới - Số Gốc
sau đó. chia số tăng cho số ban đầu và nhân câu trả lời với 100
% tăng = Tăng ÷ Số gốc × 100

Làm cách nào để tính phần trăm thay đổi so với giá trị ban đầu bằng gấu trúc?

Đầu tiên hãy chia khung dữ liệu của bạn rồi sử dụng pct_change[] để tính phần trăm thay đổi cho mỗi ngày . Nếu tôi làm df. groupby['bảo mật']['giá']. pct_change[], điều đó sẽ mang lại cho tôi phần trăm thay đổi so với những ngày trước.

Chủ Đề