Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian


Để vẽ một mảng chuỗi thời gian, với các khoảng tin cậy được hiển thị trong Python, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô con.
  • Nhận mảng chuỗi thời gian.
  • Khởi tạo một biến, n_steps, để có được độ lệch trung bình và độ lệch chuẩn.n_steps, to get the mean and standard deviation.
  • Nhận các dòng dưới và trên cho các khoảng tin cậy.
  • Vẽ dòng trung bình bằng phương thức cốt truyện ().plot() method.
  • Sử dụng phương thức fill_between () để có được khoảng tin cậy.fill_between() method to get the confidence interval.
  • Để hiển thị hình, sử dụng phương thức show ().show() method.

Thí dụ

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

time_series_array = np.sin(np.linspace
                           (-np.pi, np.pi, 400)) + np.random.rand((400))
n_steps = 15

time_series_df = pd.DataFrame(time_series_array)

line = time_series_df.rolling(n_steps).mean()

line_deviation = 2 * time_series_df.rolling(n_steps).std()

under_line = (line - line_deviation)[0]

over_line = (line + line_deviation)[0]

plt.plot(line, linewidth=2)

plt.fill_between(line_deviation.index, under_line,
                  over_line, color='red', alpha=.3)

plt.show()

Đầu ra

Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian

Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian

Cập nhật ngày 17 tháng 6 năm 2021 12:00:25

  • Câu hỏi và câu trả lời liên quan
  • Biểu đồ chuỗi thời gian chú thích trong matplotlib
  • Làm thế nào để vẽ một chuỗi thời gian trong Python?
  • Python - Tạo cốt truyện chuỗi thời gian bằng cách sử dụng cốt truyện dòng với Seaborn
  • Biểu đồ 95% Khoảng tin cậy lỗi Python Pandas DataFrames trong matplotlib
  • Python - Tạo sơ đồ chuỗi thời gian với nhiều cột bằng cách sử dụng biểu đồ dòng
  • Vẽ các khung dữ liệu chuỗi thời gian vào một lô bằng cách sử dụng gấu trúc (matplotlib)
  • Làm thế nào tôi có thể vẽ hai chuỗi thời gian cách nhau khác nhau trên cùng một âm mưu trong Python matplotlib?
  • Làm thế nào để vẽ dữ liệu chuỗi thời gian với các nhãn trong r?
  • Làm thế nào để vẽ hai chuỗi thời gian gấu trúc trên cùng một cốt truyện với các huyền thoại và trục y thứ cấp trong matplotlib?
  • Làm thế nào để tạo một biểu đồ chuỗi thời gian trong r mà không có vectơ thời gian?
  • Cách vẽ các múi giờ trong bản đồ trong matplotlib
  • Làm thế nào để một cốt truyện cốt truyện trong matplotlib python?
  • Làm thế nào để cứu một âm mưu ở Seaborn với Python (matplotlib)?
  • Làm thế nào để vẽ một mảng trong python bằng matplotlib?
  • Làm thế nào để vẽ các sự kiện đúng hạn bằng matplotlib?

Tôi không đủ điều kiện để trả lời câu hỏi 1, tuy nhiên câu trả lời cho câu hỏi này vì vậy câu hỏi tạo ra kết quả khác nhau từ mã của bạn.

Đối với câu hỏi 2, bạn có thể sử dụng matplotlib fill_between để lấp đầy diện tích giữa hai đường cong (trên và dưới của ví dụ của bạn).

import numpy as np
import matplotlib.pyplot as plt
import scipy.stats

# https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data
def mean_confidence_interval(data, confidence=0.95):
    a = 1.0 * np.array(data)
    n = len(a)
    m, se = np.mean(a), scipy.stats.sem(a)
    h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
    return m, m-h, m+h

mean, lower, upper = [],[],[]
ci = 0.8
for i in range (20):
    a = np.random.rand(100) # this is the output
    m, ml, mu = mean_confidence_interval(a, ci)
    mean.append(m)
    lower.append(ml)
    upper.append(mu)

plt.figure()
plt.plot(mean,'-b', label='mean')
plt.plot(upper,'-r', label='upper')
plt.plot(lower,'-g', label='lower')
# fill the area with black color, opacity 0.15
plt.fill_between(list(range(len(mean))), upper, lower, color="k", alpha=0.15)

plt.xlabel("Value")
plt.ylabel("Loss")
plt.legend()

Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian

$ \ beingroup $

Tôi có chuỗi thời gian sau của một số lượng y (chấm xanh) và một hàm được trang bị trên các điểm dữ liệu đó (dòng màu đỏ):

Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian

Phân phối số lượng y có thể được nhìn thấy trong biểu đồ thứ hai:

Hướng dẫn time series confidence interval python - trăn khoảng thời gian tin cậy chuỗi thời gian

Tôi đang cố gắng tính toán khoảng tin cậy cho hàm được trang bị. Tôi nghĩ rằng tôi có thể sử dụng bootstrap cho điều đó nhưng do sự phụ thuộc thời gian, tôi nghĩ rằng tôi không thỏa mãn điều kiện IID (độc lập và phân phối giống hệt nhau). Sau đó, tôi chỉ có thể sử dụng Block-Bootstrap bắt đầu từ phạm vi ~ 1700s hoặc có cách nào khác để có được khoảng tin cậy không?

Cảm ơn vì bất kì sự giúp đỡ!

  • Python
  • confidence-interval
  • Bootstrap

Hỏi ngày 5 tháng 8 lúc 9:20Aug 5 at 9:20

$ \ endgroup $

2

  • $ \ belingroup $ Có một mô hình đằng sau dòng này? Làm thế nào bạn phù hợp với dòng này? $ \ Endgroup $ Is there a model behind this line? How did you fit this line? $\endgroup$

    Ngày 5 tháng 8 lúc 9:22

  • $ \ belingroup $ Tôi sử dụng kết hợp mô hình hàm mũ của LMFIT lmfit.models.ExponentialModel() và mô hình tuyến tính lmfit.models.LinearModel(). Sau đó tôi sử dụng mod.fit(y, params, x=x) để phù hợp với dữ liệu của mình và vẽ nó sau đó bằng cách đánh giá mô hình của tôi với ________ 6. $ \ Endgroup $ I use a combination of lmfit's exponential model lmfit.models.ExponentialModel() and linear model lmfit.models.LinearModel(). I then use mod.fit(y, params, x=x) to fit my data and plot it afterwards by evaluating my model with mod.eval(x=y, ...). $\endgroup$

    Ngày 5 tháng 8 lúc 10:46

Làm thế nào để bạn vẽ một khoảng tin cậy trong chuỗi thời gian Python?

Matplotlib với python khởi tạo một biến, n_steps, để có được độ lệch trung bình và độ lệch chuẩn. Nhận các dòng dưới và trên cho các khoảng tin cậy. Vẽ dòng trung bình bằng phương thức cốt truyện (). Sử dụng phương thức fill_between () để có được khoảng tin cậy.Use fill_between() method to get the confidence interval.

Khoảng tin cậy trong chuỗi thời gian là gì?

Các khoảng thời gian dự đoán được sử dụng để cung cấp một phạm vi trong đó dự báo có khả năng là với một mức độ tin cậy cụ thể.Ví dụ: nếu bạn thực hiện 100 dự báo với độ tin cậy 95%, bạn sẽ có 95 trên 100 dự báo nằm trong khoảng thời gian dự đoán.used to provide a range where the forecast is likely to be with a specific degree of confidence. For example, if you made 100 forecasts with 95% confidence, you would have 95 out of 100 forecasts fall within the prediction interval.

Làm thế nào để bạn tính toán khoảng tin cậy 95 trong Python?

Tạo một mẫu mới dựa trên bộ dữ liệu của chúng tôi, với sự thay thế và với cùng một số điểm.Tính giá trị trung bình và lưu trữ nó trong một mảng hoặc danh sách.Lặp lại quá trình nhiều lần (ví dụ: 1000) trong danh sách các giá trị trung bình, tính toán phần trăm 2,5 và 97,5 phần trăm (nếu bạn muốn khoảng tin cậy 95%)

ARIMA tính toán khoảng tin cậy như thế nào?

Khoảng thời gian dự đoán đầu tiên rất dễ tính toán.Nếu ^là độ lệch chuẩn của phần dư, thì khoảng thời gian dự đoán 95% được đưa ra bởi ^yt + 1 | t ± 1,96 ^σ y ^t + 1 |T ± 1,96 ^.Kết quả này đúng với tất cả các mô hình ARIMA bất kể các tham số và đơn đặt hàng của chúng.^yT+1|T±1.96^σ y ^ T + 1 | T ± 1.96 σ ^ . This result is true for all ARIMA models regardless of their parameters and orders.