Statistics:Python OLS简单一元线性回归之Scipy包(一)

Statistics

Python OLS简单一元线性回归之Scipy包(一)

写在前面 使用 python 做线性回归分析有好几种方式,常要的分别是 scipy 包,statsmodels 包,以及 sklearn 包。在这里会依次更新这几种方式的简单一元线性回归。并附上之间的区别与评价。

Excel数据结构
在这里插入图片描述
这里我们通过Excel中第四列和第五列的数据通过OLS计算顺丰CAPM的β系数。

代码

import scipy.stats as st
import pandas as pd
import matplotlib.pyplot as plt

datas = pd.read_excel('D:\\vscode\\第八章\\顺丰β系数.xlsx',sheet_name='Sheet1',header=2,index_col=0,usecols=4,skip_footer=5) 
datas.head()
datas=datas.dropna()
y = datas.iloc[:, 2] # 因变量为第 4 列数据(注意index_col=0的操作)
x = datas.iloc[:, 3] # 自变量为第 5 列数据

# 线性拟合,可以返回斜率,截距,r 值,p 值,标准误差
slope, intercept, r_value, p_value, std_err = st.linregress(x, y)

print(slope)# 输出斜率
print(intercept) # 输出截距
print(r_value**2) # 输出 r^2

效果图
在这里插入图片描述

评价
scipy 中scipy.stats linregress 函数的回归分析比较简单,目前只能做一元线性回归,也不能用来做预测。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 一元线性回归分析是一种最为简单和直接的统计方法,用于建立一个自变量与因变量之间的线性关系模型。在Python中,可以使用statsmodels和sklearn这两个常用的库来进行一元线性回归分析。 首先,我们需要导入相关库和数据集。在使用statsmodels进行回归分析时,可以使用pandas库来读取和处理数据,代码如下: ```python import pandas as pd import statsmodels.api as sm # 读取数据集 data = pd.read_csv('data.csv') # 定义自变量和因变量 X = data['自变量'] y = data['因变量'] ``` 接下来,我们使用statsmodels库来拟合线性回归模型,并获取回归结果: ```python # 添加常数项 X = sm.add_constant(X) # 拟合线性回归模型 model = sm.OLS(y, X).fit() # 获取回归结果 results = model.summary() print(results) ``` 通过上述代码,我们可以得到回归模型的拟合结果,括各个参数的估计值、标准误差、假设检验结果以及模型的拟合统计量等信息。 另外,我们也可以使用sklearn库进行一元线性回归分析。sklearn库提供了更加简洁和方便的接口,代码如下: ```python from sklearn.linear_model import LinearRegression # 创建线性回归模型 model = LinearRegression() # 拟合线性回归模型 model.fit(X, y) # 查看回归系数和截距 coef = model.coef_ intercept = model.intercept_ print('回归系数:', coef) print('截距:', intercept) ``` 上述代码中,我们利用LinearRegression类构建了一个线性回归模型,然后使用fit()方法拟合模型并得到回归系数和截距。 无论使用statsmodels还是sklearn,都可以对一元线性回归模型进行分析,帮助我们理解和预测因变量与自变量之间的关系。 ### 回答2: 一元线性回归是一种统计学方法,用于分析两个连续型变量之间的关系。Python中有多种库可以实现一元线性回归分析,其中最常用的是`statsmodels`和`scikit-learn`。 下面是使用`statsmodels`库进行一元线性回归分析的代码示例: 首先,需要导入相关的库: ```python import numpy as np import statsmodels.api as sm ``` 然后,定义自变量和因变量的数据: ```python x = np.array([1, 2, 3, 4, 5]) # 自变量数据 y = np.array([2, 4, 5, 7, 9]) # 因变量数据 ``` 接下来,将自变量数据加上常数项,并建立回归模型: ```python x = sm.add_constant(x) # 加上常数项 model = sm.OLS(y, x) # 建立回归模型 ``` 然后,对模型进行拟合并打印回归结果: ```python results = model.fit() # 对模型进行拟合 print(results.summary()) # 打印回归结果 ``` 运行以上代码,就可以得到一元线性回归的统计结果,括回归系数、拟合优度、显著性等指标。 通过`scikit-learn`库进行一元线性回归分析的代码如下: 首先,导入相关的库: ```python import numpy as np from sklearn.linear_model import LinearRegression ``` 然后,定义自变量和因变量的数据: ```python x = np.array([[1], [2], [3], [4], [5]]) # 自变量数据 y = np.array([2, 4, 5, 7, 9]) # 因变量数据 ``` 接下来,建立并训练线性回归模型: ```python model = LinearRegression() # 建立线性回归模型 model.fit(x, y) # 训练模型 ``` 然后,打印回归结果: ```python print('回归系数:', model.coef_) # 打印回归系数 print('截距:', model.intercept_) # 打印截距 ``` 这段代码会打印出回归模型的回归系数和截距。 总结起来,以上给出了使用`statsmodels`和`scikit-learn`两种库进行一元线性回归分析的代码示例。具体选择哪种库取决于个人或项目的需求和偏好。 ### 回答3: Python中的一元线性回归分析代码通常使用scikit-learn库实现。以下是一个简单的代码示例: ```python import numpy as np from sklearn.linear_model import LinearRegression # 输入数据 X = np.array([[1], [2], [3], [4], [5]]) # 自变量 y = np.array([2, 3.5, 4.5, 5, 7]) # 因变量 # 创建线性回归模型对象 model = LinearRegression() # 拟合数据 model.fit(X, y) # 输出回归方程的系数 print("回归系数:", model.coef_) # 输出截距 print("截距:", model.intercept_) # 预测新数据 new_X = np.array([[6], [7], [8]]) # 新的自变量 predicted_y = model.predict(new_X) print("预测值:", predicted_y) ``` 在代码中,我们首先导入需要的库。然后,我们定义输入数据X和y,其中X为自变量,y为因变量。然后,我们创建一个线性回归模型对象,并使用`fit`方法拟合数据。拟合后,我们可以通过`coef_`属性获取回归方程的系数,通过`intercept_`属性获取截距。最后,我们可以使用`predict`方法预测新的自变量对应的因变量。 以上是一个简单的一元线性回归分析代码示例,实际分析中可能还需要进行数据预处理、模型评估等步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值