一元线性回归分析实例:时间序列分段

以沪深300指数基金净值为例
基金净值数据格式:date,jz,ljjz
2019-01-02,1.0194,1.0194
2019-01-03,1.0177,1.0177
linear_mod_2.py

# coding=utf-8
import os, sys
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegression# python一元线性回归分析实例:指数基金净值
if len(sys.argv) ==2:fcode = sys.argv[1]
else:print('usage: python linear_mod_2.py fcode ')sys.exit(1)if len(fcode) !=6:print(' fcode is char(6)')sys.exit(2)file1 = "./" +fcode +'.csv'
if not os.path.exists(file1):print(file1 +' is not exists.')sys.exit(3)# 用pandas读取csv
df = pd.read_csv(file1)
df = df[ df['date'] > '2019-01-01']
df.index = pd.to_datetime(df.date)
y = df['jz'].values # 基金净值
x = np.arange(0,len(y),1)# 构造X列表和Y列表,reshape(-1,1)改变数组形状,为只有一个属性
x = x.reshape(-1,1)
y = y.reshape(-1,1)# 时间序列分段1
df1 = df[ df['date'] < '2019-04-20']
y1 = df1['jz'].values # 基金净值
x1 = np.arange(0,len(y1),1)
x1 = x1.reshape(-1,1)
y1 = y1.reshape(-1,1)
begin = len(y1)
# 时间序列分段2
dates = pd.date_range('2019-04-20','2019-06-09')
df2 = df[ df.index.isin(dates.values)]
y2 = df2['jz'].values # 基金净值
x2 = np.arange(begin, begin+len(y2),1)
x2 = x2.reshape(-1,1)
y2 = y2.reshape(-1,1)
begin = begin+len(y2)
# 时间序列分段3
dates = pd.date_range('2019-06-10','2020-01-24')
df3 = df[ df.index.isin(dates.values)]
y3 = df3['jz'].values # 基金净值
x3 = np.arange(begin, begin+len(y3),1)
x3 = x3.reshape(-1,1)
y3 = y3.reshape(-1,1)
begin = begin+len(y3)
# 时间序列分段4
dates = pd.date_range('2020-02-03','2020-03-05')
df4 = df[ df.index.isin(dates.values)]
y4 = df4['jz'].values # 基金净值
x4 = np.arange(begin, begin+len(y4),1)
x4 = x4.reshape(-1,1)
y4 = y4.reshape(-1,1)
begin = begin+len(y4)
# 时间序列分段5
dates = pd.date_range('2020-03-06','2020-03-20')
df5 = df[ df.index.isin(dates.values)]
y5 = df5['jz'].values # 基金净值
x5 = np.arange(begin, begin+len(y5),1)
x5 = x5.reshape(-1,1)
y5 = y5.reshape(-1,1)
begin = begin+len(y5)
# 时间序列分段6
dates = pd.date_range('2020-03-21','2020-07-11')
df6 = df[ df.index.isin(dates.values)]
y6 = df6['jz'].values # 基金净值
x6 = np.arange(begin, begin+len(y6),1)
x6 = x6.reshape(-1,1)
y6 = y6.reshape(-1,1)
begin = begin+len(y6)
# 时间序列分段7
df7 = df[ df['date'] > '2020-07-11']
y7 = df7['jz'].values # 基金净值
x7 = np.arange(begin, begin+len(y7),1)
x7 = x7.reshape(-1,1)
y7 = y7.reshape(-1,1)
begin = begin+len(y7)# 构造回归对象
model = LinearRegression()
model.fit(x1, y1)
Y1 = model.predict(x1) # 获取预测值
model.fit(x2, y2)
Y2 = model.predict(x2)
model.fit(x3, y3)
Y3 = model.predict(x3)
model.fit(x4, y4)
Y4 = model.predict(x4)
model.fit(x5, y5)
Y5 = model.predict(x5)
model.fit(x6, y6)
Y6 = model.predict(x6)
model.fit(x7, y7)
Y7 = model.predict(x7)# 构造返回字典
predictions = {}
predictions['intercept'] = model.intercept_  # 截距值
predictions['coefficient'] = model.coef_   # 回归系数(斜率值)
#predictions['predict_value'] = Y7
print(predictions)# 绘图
fig, ax = plt.subplots(figsize=(10,6))
# 绘出已知数据散点图
#plt.scatter(x, y, color ='blue')
# 绘曲线图
ax.plot(x, y, '-', label='jz')  # 基金净值
# 绘出预测直线
ax.plot(x1, Y1, 'r--.', label='fit1')
ax.plot(x2, Y2, 'g--.', label='fit2')
ax.plot(x3, Y3, 'r--.', label='fit3')
ax.plot(x4, Y4, 'r--.', label='fit4')
ax.plot(x5, Y5, 'g--.', label='fit5')
ax.plot(x6, Y6, 'r--.', label='fit6')
ax.plot(x7, Y7, 'y--.', label='fit7')
ax.legend(loc='upper left')
plt.title('predict fund net value: ' +fcode)
plt.xlabel('x')
plt.ylabel('jz')
plt.grid()
plt.show()

以沪深300指数基金净值为例

运行 python linear_mod_2.py 660008

python tushare 读取股票数据并存盘

以股票 000063 中兴通讯为例
运行 python stock1.py 000063

将 'jz' 全替换为 'close' 就可以为股票收盘价 做一元线性回归分析

运行 python  linear_mod_2.py 000063

python:一元线性回归分析实例:时间序列分段相关推荐

  1. [Python] 一元线性回归分析实例

    本文通过一个简单的例子:预测房价,来探讨怎么用python做一元线性回归分析. 1. 预测房价 房价是一个很火的话题,现在我们拿到一组数据,是房子的大小(平方英尺)和房价(美元)之间的对应关系,如下( ...

  2. python:一元线性回归分析实例: 基金净值

    一元线性回归分析实例: 以沪深300指数基金净值为例 基金净值数据格式: date,jz,ljjz 2019-01-02,1.0194,1.0194 2019-01-03,1.0177,1.0177 ...

  3. python对于一元线性回归模型_Python一元线性回归分析实例:价格与需求的相关性...

    来自烟水暖的学习笔记 回归分析(Regression analysis) 回归分析(Regression analysis),是研究因变量与自变量之间相关性的一种数学方法,并将相关性量化,即得到回归方 ...

  4. excel多元线性拟合_Python一元线性回归分析实例:价格与需求的相关性

    来自烟水暖的学习笔记 回归分析(Regression analysis) 回归分析(Regression analysis),是研究因变量与自变量之间相关性的一种数学方法,并将相关性量化,即得到回归方 ...

  5. 基于Python的地理数据分析之一元线性回归分析-数学原理02.md

    行成于思毁于随,业精于勤荒于嬉. 文章目录 前言 1. 声明 2. 版本  2.1 山东青岛,Version 1 3. 关键词 一.最小二乘法 1. 什么是最小二乘法   1.1 公式表达 2. 最小 ...

  6. 在python中使用最小二乘法画出拟合曲线_基于jupyter notebook的python编程-----运用最小二乘法,导入文件数据模拟一元线性回归分析...

    基于jupyter notebook的python编程-----运用最小二乘法,导入文件数据模拟一元线性回归分析 用最小二乘法模拟一元线性回去曲线的目录 一.运行jupyter notebook,搭建 ...

  7. python实现一元线性回归分析的全部过程

    目标:写清楚一元线性回归分析的全部过程. 一元线性回归分析步骤: 确定变量variable:independent variable and dependent variable 画散点图scatte ...

  8. python对于一元线性回归模型_利用Python进行一元线性回归分析

    信管专业小白一枚,通过知乎来记录自己的学习旅程! 这段时间帮学长做了个东东,大体意思是通过09-13年的数值,估算出14年的数值来. 起初用Excel做成.后来想试试用Python做一下估算,也就趁机 ...

  9. python:statsmodels 一元线性回归分析

    pip install statsmodels-0.12.0-cp37-none-win_amd64.whl --upgrade 一元线性回归分析: 线性回归也被称为最小二乘法回归(Linear Re ...

最新文章

  1. 新浪微博IPO,曹国伟策略之功
  2. IntelliJ IDEA导入多个eclipse项目到同一个workspace下
  3. Actor-ES框架:Ray--事件(Event)编写说明
  4. 安装ipython失败 in error catcher_疯狂的Python:零基础小白入门帖子详情 - 网易云课堂...
  5. 朝花夕拾——finally/final/finalize拨云雾见青天
  6. python set() 和 dict()
  7. SATA SAS SSD 硬盘介绍和评测
  8. 【每日算法Day 91】求解数组中出现次数超过1/3的那个数
  9. linux 查看系统位数命令,怎么用命令行查看Linux系统位数
  10. wordpress and theme
  11. 凤凰刷机找不到手机设备的解决方法
  12. 二级域名使用https证书注意事项
  13. jeecgboot示例程序
  14. NO.3 创建一个图片,并在图片上画线插入文字等
  15. Grammar API
  16. 团队管理那点破事!OKR绩效、核心人才、面试、技术分享、研发流程....
  17. Android在线购物商城 app端+后台
  18. 用Visio绘制switch-case流程图
  19. JAVA项目工作经验总结
  20. Vue3中Vuex的使用

热门文章

  1. java个人小管家代码_java毕业设计_springboot框架的家庭小管家系统
  2. 联想x250为什么这么贵_探讨联想 ThinkPad X250 的四大特性
  3. 解决pip时错误:PermissionError: [Errno 13] Permission denied
  4. 防止被诈,从我做起,龙南分局反电诈宣传防范
  5. oracle面试题汇总
  6. calabi yau manifold
  7. linux 宽带监控
  8. 计算机会计报表管理,会计电算化知识之报表管理模块的应用
  9. 笔记本红外连接多普达515,通过gprs上网的简单设置
  10. Artificial General Intelligence: Concept, State of the Art, and Future Prospects