[数据挖掘] 42 时间序列预测1 趋势模型 基于回归的预测 美国铁路(美铁)客运公司数据

 [数据挖掘] 42 时间序列预测1 趋势模型 基于回归的预测 美国铁路(美铁)客运公司数据_哔哩哔哩_bilibili

import math
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt  # pylab 子模块则是在 pyplot 的基础上增加了一些额外的功能,例如自动导入了 NumPy 和 Matplotlib,使得用户可以更方便地进行数值计算和绘图操作
import statsmodels.formula.api as smf  # statsmodels用于进行统计分析和建模。它提供了广泛的统计模型和方法,包括时间序列分析
from statsmodels.tsa import tsatools, stattools  # 子模块tsa,用于时间序列分析。该模块提供了多种时间序列模型和工具
from statsmodels.graphics import tsaplots
from statsmodels.tsa.arima.model import ARIMA
from dmba import regressionSummary

import matplotlib
matplotlib.use('TkAgg')  # 指定后端
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #苹果显示中文 mac中文

filepath = "/Users/zitongqiu/Documents/data mining/data/Amtrak.csv"
df = pd.read_csv(filepath)

df['Date'] = pd.to_datetime(df.Month, format='%d/%m/%Y')
ridership_ts = pd.Series(df.Ridership.values, index=df.Date, name='Ridership')

# .inferred_freq是pandas中DatetimeIndex对象的一个属性,用于自动推断时间序列的频率,它可以根据时间序列的索引推断时间序列的频率.
ridership_ts.index = pd.DatetimeIndex(ridership_ts.index, freq=ridership_ts.index.inferred_freq)
# print(ridership_ts.index) # dtype='datetime64[ns]', name='Date', length=159, freq='MS')


ax = ridership_ts.plot(color='mediumvioletred', figsize=(12, 8))  # ax是一个Axes对象,用于控制和设置图形的各个方面
ax.set_title("1991-01至2004-03美铁月客流量时序图")
ax.set_xlabel('Time')
ax.set_ylabel('Ridership (in 000s/千人)')
ax.set_ylim(1300, 2300)
plt.show()

ridership_ts_3yrs = ridership_ts['1997':'1999']
df = tsatools.add_trend(ridership_ts, trend='ctt')  # 使用tsatools.add_trend函数添加趋势线,趋势为ctt,线性项和二次项
ridership_lm = smf.ols(formula='Ridership~trend+trend_squared',
                       data=df).fit()  # smf.ols函数对df中的数据进行了线性回归分析
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值