当前位置:首页 >知识 >什么是误差图?今天带你了解可视化误差图,让数据一目了然 针对初级和中级用户

什么是误差图?今天带你了解可视化误差图,让数据一目了然 针对初级和中级用户

2024-06-28 10:31:17 [百科] 来源:避面尹邢网

什么是什误误差图?今天带你了解可视化误差图,让数据一目了然

作者:蜂鸟数据Trochil 大数据 这是差图差图Python数据可视化的系列短篇,针对初级和中级用户,今天据目将理论和示例代码相结合,可视使用matplotlib,化误 seaborn, plotly等工具创建不同主题的图表。

前言

这是让数Python数据可视化的系列短篇,针对初级和中级用户,什误将理论和示例代码相结合,差图差图使用matplotlib,今天据目 seaborn, plotly等工具创建不同主题的图表。

什么是误差图?今天带你了解可视化误差图,让数据一目了然 针对初级和中级用户

本文主题是可视如何在图表中显示误差。

什么是误差图?今天带你了解可视化误差图,让数据一目了然 针对初级和中级用户

  1. import os 
  2.  
  3. import warnings 
  4. import requests 
  5. import numpy as np 
  6. import pandas as pd 
  7. import matplotlib.pyplot as plt 
  8. from statsmodels.tsa.arima_model import ARIMA 
  9.  
  10. %matplotlib inline 
  11. plt.style.use("fivethirtyeight") 
  12.  
  13. warnings.filterwarnings("ignore") 

1. 显示测量误差

什么是误差图?今天带你了解可视化误差图,让数据一目了然 针对初级和中级用户

科学测量往往存在误差,化误准确的让数报告误差跟报告测量结果同样重要。

测量误差(也称为观察误差)是什误测量值和真实值之间的差异,包括随机误差(任何实验中都会自然发生的差图差图误差)和系统误差(由影响所有测量的错误校准的仪器引起)。

举一个例子,今天据目假设您正在测量100个学生的体重,有的学生穿较多的衣服,导致重500克,有的学生可能脱水导致轻200克,这些都是测量误差。事实上所有收集的样本都会存在误差,大多数情况下它们不可避免。所以在数据可视化中,有效显示这些错误可以传达更完整的信息。

在matplotlib中通过调用ax.errorbar()创建误差图(errorbar)。误差图由一个点和穿过这个点的线段组成,点对应测量结果,线段代表测量误差。

  1. # 设置随机数种子 
  2. np.random.seed(123) 
  3.  
  4. # 观测值的数量 
  5. n_observations = 30 
  6. x = np.arange(n_observations) 
  7.  
  8. # 虚拟测量值 
  9. y = np.sin(x) + np.random.randn(n_observations) 
  10.  
  11. # 测量误差,假设误差服从均匀分布 
  12. errors = np.random.randint(1, 3, n_observations) 
  13.  
  14. # 调用ax.errorbar接口,提供3个数组,x, y, yerr 
  15. # fmt控制点和线段的样式,跟ax.plot的fmt相同 
  16. # color: 控制点的颜色 
  17. # ecolor: 代表误差的线段的颜色 
  18. # elinewidth: 代表误差的线段的大小 
  19. fig, ax = plt.subplots(figsize=(10, 7)) 
  20. ax.errorbar(x, y, yerr=errors, fmt="o", color="black", 
  21.             ecolor="lightgray", elinewidth=3) 

2. 显示预测误差

在机器学习领域,回归模型和时间序列模型用于预测,模型会同时生成预测误差(所谓置信区间),在可视化预测结果时,通常要求显示预测值和预测区间,这可以通过ax.plot()和ax.fill_between()实现。

接下来使用一个真实的案例说明,先从蜂鸟数据获取黄金价格,然后用ARIMA(自回归整合移动平均)预测未来30天的价格,可视化预测结果。

  1. # 从蜂鸟数据下载黄金价格 
  2. params = {  
  3.     "symbol": "XAUUSD",  # 现货黄金ID 
  4.     "start_date": "2010-01-01", 
  5.     "end_date": "2020-08-05", 
  6.     "apikey": os.getenv("TROCHIL_API")  # 在蜂鸟数据官网注册获取API密钥 
  7. resp = requests.get("https://api.trochil.cn/v1/forex/history", params) 
  8. data = pd.DataFrame.from_records(resp.json()["data"]) 
  9. data["datetime"] = pd.to_datetime(data["datetime"]) 
  10. data.set_index("datetime", inplace=True) 
  11.  
  12. # 创建ARMIA模型,预测未来30天价格走势 
  13. model = ARIMA(data.close, order=(1, 1, 1)) 
  14. results = model.fit() 
  15. fc, errors, conf = results.forecast(steps=30, alpha=0.05) 
  16. fc_df = pd.DataFrame({  
  17.     "forecast": fc, 
  18.     "lower": conf[:, 0], 
  19.     "upper": conf[:, 1] 
  20. }, index=pd.date_range("2020-08-06", periods=30)) 
  21.  
  22. # 可视化预测结果,包括点预测值和预测区间 
  23. # 预测区间包括置信下限和上限,代表真实值可能落入的范围 
  24. # 调用ax.plot显示点预测值,ax.fill_between显示预测区间 
  25. data_since_2020 = data["2020":] 
  26. fig, ax = plt.subplots(figsize=(12, 7)) 
  27. data_since_2020.close.plot(ax=ax, label="Historical Prices") 
  28. ax.plot(fc_df.index, fc_df.forecast, label="Forecast Prices") 
  29. ax.fill_between(fc_df.index, fc_df.lower, fc_df.upper, color="gray", alpha=0.3, label="Forecast Interval") 
  30. ax.set_title("Plot Forecast Errors") 
  31. ax.legend(loc="upper left") 
  32. <matplotlib.legend.Legend at 0x7fbfa348d9a0> 

 

责任编辑:未丽燕 来源: 今日头条 误差科学测量可视化

(责任编辑:百科)

    推荐文章
    热点阅读