关于多元线性回归分析——Python&SPSS

yizhihongxing

关于多元线性回归分析——Python&SPSS

概述

多元线性回归是基于多个自变量与一个因变量之间的关系,通过回归分析建立数学模型的过程。在分析数据和预测未来趋势上,多元线性回归分析有着广泛应用。

本文将分别介绍Python和SPSS两种工具如何进行多元线性回归分析,并提供两个示例供读者参考。

Python 多元线性回归分析

准备工作

在Python中,我们需要导入一些包来完成多元线性回归分析。首先是pandas和numpy用于数据的处理,还需要statsmodels和psycopg2用于回归分析的建立。

import pandas as pd
import numpy as np
import statsmodels.api as sm
import psycopg2

数据加载

接下来我们需要加载数据。可以通过pandas读取csv文件或者从数据库中查询得到数据。此处我们举一个从数据库中查询的例子。

conn = psycopg2.connect(database="database",
                        user="user",
                        password="password",
                        host="localhost",
                        port="5432")

sql = "SELECT * FROM mytable"

data = pd.read_sql_query(sql, conn)

数据清洗

数据清洗部分需要根据数据的情况进行选择性处理,比如删除空值或异常值等。这里我们假设数据已经清洗好。

回归分析

主要包括变量筛选和模型建立。根据问题需求和实际情况,选择影响因变量的自变量进行分析。首先要对数据进行标准化处理,避免有量纲不同的因素之间比较得不到具体数值。然后将数据分为训练集和测试集。

# 标准化处理
mean = data.mean()
std = data.std()
data = (data - mean) / std

# 划分训练集和测试集
np.random.seed(0)
index = np.random.permutation(len(data))
train_index = index[:int(len(index) * 0.7)]
test_index = index[int(len(index) * 0.7):]

train_data = data.iloc[train_index, :]
test_data = data.iloc[test_index, :]

# 分离因变量和自变量
y_train = train_data.pop('Y')
x_train = train_data
y_test = test_data.pop('Y')
x_test = test_data

接下来是模型的建立。我们使用ols方法建立回归分析模型,其中Y代表因变量,X代表自变量。

ols_result = sm.OLS(y_train, sm.add_constant(x_train)).fit()

模型评估

模型的评估方面,我们需要主要的是模型的性能和预测精度。首先查看回归系数、残差、决定系数、F值和p值等指标,以了解模型哪些地方可以进一步优化。

print(ols_result.summary())

对测试集进行预测。

y_predict = ols_result.predict(sm.add_constant(x_test))

查看预测结果的误差和精确度。

from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error

print(f"模型R方:{r2_score(y_test, y_predict)}")
print(f"均方误差:{mean_squared_error(y_test, y_predict)}")

SPSS 多元线性回归分析

准备工作

首先打开SPSS软件,在主界面选择File -> New -> Data,新建文件并输入变量值。

回归分析

选择Analyze -> Regression -> Linear进行分析。在“Linear Regression: Linear Model”中,在“Dependent”选项卡中输入因变量名,从左侧“Independent”中拖动自变量到右侧面板中。在"Statistics"中勾选汇总信息,并选择所需的统计信息。根据需求可以在“Save”和“Options”中选择保存数据和进一步定制分析内容。

模型评估

与Python相同,在SPSS中也要查看回归系数、残差、决定系数、F值和p值等指标,并进行预测结果的分析,比如画图查看预测值和实际值的分布情况。

示例一:房价预测分析

假设我们要对房价进行多元线性回归分析。我们以Python为例子。

数据加载

加载我们的数据,假设我们的数据是从数据库中得到的。

import pandas as pd
import numpy as np
import statsmodels.api as sm
import psycopg2

conn = psycopg2.connect(database="database",
                        user="user",
                        password="password",
                        host="localhost",
                        port="5432")

sql = "SELECT * FROM house_price"

data = pd.read_sql_query(sql, conn)

数据清洗

丢弃不必要列,空值和异常值等。

# 丢弃不必要列
data = data.drop(['ID'], axis=1)

# 丢弃空值行
data = data.dropna()

# 查找异常值并清洗
data = data.drop(data.loc[data['Price'] > 10000000].index)

回归分析

分析自变量对因变量的影响,我们选择面积、户型和地理位置等指标作为自变量。

y = data['Price']
x = data[['Square', 'Rooms', 'District_ID']]

# 标准化处理
mean = x.mean()
std = x.std()
x = (x - mean) / std

# 划分训练集和测试集
np.random.seed(0)
index = np.random.permutation(len(data))
train_index = index[:int(len(index) * 0.7)]
test_index = index[int(len(index) * 0.7):]

train_data = data.iloc[train_index, :]
test_data = data.iloc[test_index, :]

# 分离因变量和自变量
y_train = train_data['Price']
x_train = train_data[['Square', 'Rooms', 'District_ID']]
y_test = test_data['Price']
x_test = test_data[['Square', 'Rooms', 'District_ID']]

# 建立模型
ols_result = sm.OLS(y_train, sm.add_constant(x_train)).fit()
print(ols_result.summary())

模型评估

查看模型指标并预测测试集结果。

print(f"模型R方:{r2_score(y_test, y_predict)}")
print(f"均方误差:{mean_squared_error(y_test, y_predict)}")

示例二:学生成绩预测分析

假设我们要对学生成绩进行多元线性回归分析。我们以SPSS为例子。

数据加载

在SPSS中新建数据集并输入学生基本信息、每门课的分数等数据。

回归分析

在数据集导入完成后,我们选择学生成绩作为因变量,自变量包括性别、年龄、家庭背景、学习时间、课程难度等等。在SPSS中,进入“Regression”菜单,选择“Linear Regression”,在“Dependent list”中选择因变量。在自变量一栏中选择需要进行回归分析的变量,点击"Add"加入自变量列表。

模型评估

在SPSS中,可以在“Statistics”菜单中选择需要的统计指标,如截距、标准误差、显著性分及F值等等。

在模型建立完成后,我们可以对模型进行评估,比如预测学生成绩,查看预测值和实际值的分布情况,可视化的方式更加直观。

结论

本文介绍了Python和SPSS两种工具在多元线性回归分析方面的使用方法,希望对读者有所帮助。在进行数据分析时,需要注意数据的清洗和处理,避免无效因素的影响。同时,在模型评估时也需要针对模型的具体情况选择适合的评估指标,确保分析结果可信。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于多元线性回归分析——Python&SPSS - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • 如何在 f-string 中使用换行符 ‘\n’ 来格式化 Python 3.6 中的输出?

    【问题标题】:How to use newline ‘\n’ in f-string to format output in Python 3.6?如何在 f-string 中使用换行符 ‘\n’ 来格式化 Python 3.6 中的输出? 【发布时间】:2023-04-04 23:34:02 【问题描述】: 我想知道如何使用 f-strings 以 Pyt…

    Python开发 2023年4月6日
    00
  • Python3如何在服务器打印资产信息

    以下是关于Python3如何在服务器打印资产信息的攻略: Python3如何在服务器打印资产信息 在Python3中,我们可以使用一些库和命令来获取服务器的资产信息,并将其打印出来。以下是Python3如何在服务器打印资产信息的方法详解: 使用psutil库获取系统信息 psutil是一个跨平台的Python库,可以用于获取系统信息。以下是使用psutil库…

    python 2023年5月14日
    00
  • ray-分布式计算框架-集群与异步Job管理

    0. ray 简介 ray是开源分布式计算框架,为并行处理提供计算层,用于扩展AI与Python应用程序,是ML工作负载统一工具包 Ray AI Runtime ML应用程序库集 Ray Core 通用分布式计算库 Task — Ray允许任意Python函数在单独的Python worker上运行,这些异步Python函数称为任务 Actor — 从函…

    python 2023年4月25日
    00
  • python使用PyV8执行javascript代码示例分享

    下面我将针对“python使用PyV8执行javascript代码”的完整攻略,给出详细的示例说明。 1. 准备工作 在使用PyV8执行JavaScript之前,我们需要先安装PyV8,可以通过pip命令进行安装: pip install PyV8 安装完成后,我们需要准备一份JavaScript代码作为测试用例。 2. 使用PyV8执行JavaScript…

    python 2023年6月5日
    00
  • Pandas数据分析之groupby函数用法实例详解

    非常感谢您对我发布的文章“Pandas数据分析之groupby函数用法实例详解”所感兴趣。接下来我会详细讲解这篇文章的内容,希望能够帮助您更好地理解groupby函数的用法。 在本文中,我将向您介绍Pandas库中一种非常实用的函数——“groupby”函数。这个函数可以将DataFrame中的数据按照指定的列进行分组,以实现数据的聚合、筛选和转换等操作。下…

    python 2023年5月14日
    00
  • 基于Python实现倒计时工具

    下面我给您详细讲解“基于Python实现倒计时工具”的完整攻略: 1. 需求分析 首先我们需要明确我们的需求,我们打算实现一个倒计时工具,用户可以自己设置倒计时的目标时间,然后在界面上展示倒计时的时间,直到目标时间达到后停止。 2. 技术选型 根据我们的需求,Python语言可以胜任此项目,我们采用Python3来实现此工具。 3. 环境设置 在开始编写代码…

    python 2023年6月3日
    00
  • Python入门教程(二十三)Python的继承

    Python的继承是常见的面向对象程序设计(OOP)的基础特性之一。通过继承,可以让一个类获得原有类的所有属性和方法,同时又可以根据实际需求进行适当的更改和扩展,从而提高代码复用和维护性。本文将详细讲解Python的继承相关知识和使用方法。 继承的基本语法 通过关键字class来定义继承类,可以在类名后面的括号中指定父类,例如: class ChildCla…

    python 2023年6月5日
    00
  • Python实现仓库管理系统

    Python实现仓库管理系统的攻略 仓库管理系统是一个管理库存、仓储操作、销售等业务的系统,可以对商品进行入库、出库操作,并能够在出库时自动生成出货单等基础功能。Python作为一门高效的编程语言,可以方便地实现这种仓库管理系统。 系统功能设计 首先,对于仓库管理系统的功能设计,我们需要明确以下几个方面的内容: 商品管理功能:可以对货品进行分类、创建、修改、…

    python 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部