当前位置: 首页 > news >正文

科研学习|科研软件——有序多分类Logistic回归的SPSS教程!

一、问题与数据

研究者想调查人们对“本国税收过高”的赞同程度:Strongly Disagree——非常不同意,用“0”表示;Disagree——不同意,用“1”表示;Agree--同意,用“2”表示;Strongly Agree--非常同意,用“3”表示。

另外,研究者也调查了一些其它情况,包括:是否是“雇主”(biz_owner:Yes——是,用“0”表示;No——否,用“1”表示)、年龄(age)和党派(politics:Lib——党派1,用“1”表示;Con——党派2,用“2”表示;Lab——党派3,用“3”表示)。部分数据如下图:

二、对问题的分析

使用有序Logistic进行回归分析时,需要考虑4个假设。

  • 假设1:因变量唯一,且为有序多分类变量,如城市综合竞争力等级可以分为高、中、低;某病的治疗效果分为痊愈、有效、无效等。
  • 假设2:存在一个或多个自变量,可为连续、有序多分类或无序分类变量。
  • 假设3:自变量之间无多重共线性。
  • 假设4:模型满足“比例优势”假设。意思是无论因变量的分割点在什么位置,模型中各个自变量对因变量的影响不变,也就是自变量对因变量的回归系数与分割点无关。

有序多分类的Logistic回归原理是将因变量的多个分类依次分割为多个二元的Logistic回归,例如本例中因变量“本国的税收过高”的赞同程度有4个等级,分析时拆分为三个二元Logistic回归,分别为(0 vs 1+2+3) 、(0+1 vs 2+3)、(0+1+2 vs 3),均是较低级与较高级对比。

在有序多分类Logistic回归中,假设几个二元Logistic回归中,自变量的系数相等,仅常数项不等,结果也只输出一组自变量的系数。因此,有序多分类的Logistic回归模型,必须对自变量系数相等的假设(即“比例优势”假设)进行检验(又称平行线检验)。如果不满足该假设,则考虑使用无序多分类Logistic回归。

三、前期数据处理

对假设进行验证前,我们需要将分类变量设置成哑变量。

1. 为什么要设计哑变量

若直接将分类变量纳入Logistic回归方程,则软件会将分类变量按连续变量处理。例如,如果把性别按“1”——男、“2”——女进行编码,然后直接把性别纳入方程,方程会认为“女”是“男”的2倍。为了解决这个问题,需要用一系列的二分类变量“是”或“否”来表示原始的分类变量,这些新的二分类变量被称为“哑变量”。

在SPSS软件的二项Logistic回归模型中,将分类变量选入categorical,软件会自动设置一系列的哑变量。由于验证假设3(自变量之间无多重共线性)需要通过线性回归实现,而在线性回归中,就需要手动设置哑变量。因此,这里需要先手动设置哑变量。

2. 设置哑变量的思路

哑变量的数目是分类变量类别数减一。本例中,党派1、党派2和党派3的原始编码为1、2和3。设置哑变量时,需要对党派1和党派2进行重新编码。

建立新变量Lib(党派1),若调查对象选了党派1,则Lib编为“1”,代表是;若未选党派1,则Lib编为“0”,代表否。同样,建立新变量Con(党派2),将是否选党派2编为“1”或“0”。此时,若既未选党派1,又未选党派2,则两个新变量Lib和Con的编码都为“0”,代表党派3。此时,党派3在模型中是参考类别(Reference)。

3. 在SPSS中设置哑变量

(1) 首先,先创建新变量“Con”,在主菜单下选择Transform→Recode into Different Variables... ,如下图:

(2) 在Recode into Different Variables对话框中,将politics选入右侧Numeric Variable-->Output Variable下,在右侧Output Variable中填写“Con”。点击Change→Old and New Values。

(3) 出现Recode into Different Variables: Old and New Values对话框,在左侧的Old Value下的Value中填入2,在右侧的New Value下的Value中填入1,点击Add。

(4) 将其它值变为“0”:左侧点击All other values,在右侧Value中填入“0”,点击Add→Continue。

(5) 如果数据中有缺失值,点击左侧System-missing,右侧点击System-missing→Add,保持缺失值:

设置得到的结果如下图:

本例中没有缺失值,可省略这一步。

(6) 继续创建新变量“Lib”,与以上步骤相似。两个变量创建完成后,点击变量视图,可以看到在最右侧已经生成了两个新变量“Con”和“Lib”,如下图:

四、对假设的判断

假设1-2都是对研究设计的假设,需要研究者根据研究设计进行判断,所以这里主要对数据的假设3-4进行检验。

1. 检验假设3:自变量之间无多重共线性

(1) 在主菜单点击Analyze→Regression→Linear...

(2) 将tax_too_high选入Dependent,将biz_owner、age、Con、Lib选入Independent(s)。

(3) 点击Statistics,出现Linear Regression:Statistics对话框,点击Collinearity diagnostics→Continue→OK。

结果如下图:

如果容忍度(Tolerance)小于0.1或方差膨胀因子(VIF)大于10,则表示有共线性存在。

本例中,容忍度均远大于0.1,方差膨胀因子均小于10,所以不存在多重共线性。如果数据存在多重共线性,则需要用复杂的方法进行处理,其中最简单的方法是剔除引起共线性的因素之一,剔除哪一个因素可以基于理论依据。

2. 检验假设4:模型满足“比例优势”假设

“比例优势”假设可以在后面结果部分的“平行线检验”中看到。

五、SPSS操作

SPSS中,可以通过两个过程实现有序Logistic回归。分别是Analyze → Regression → Ordinal...和Analyze → Generalized Linear Models → Generalized Linear Models...。

其中,Analyze → Regression → Ordinal模块,可以检验 “比例优势”假设,但无法给出OR值和95%CI。而Analyze → Generalized Linear Models → Generalized Linear Models模块可以给出OR值和95%CI,但无法检验“比例优势”假设。

这里,我们主要介绍Analyze → Regression → Ordinal过程。

(1) 在主菜单点击Analyze→Regression→Ordinal...

相关文章:

科研学习|科研软件——有序多分类Logistic回归的SPSS教程!

一、问题与数据 研究者想调查人们对“本国税收过高”的赞同程度:Strongly Disagree——非常不同意,用“0”表示;Disagree——不同意,用“1”表示;Agree--同意,用“2”表示;Strongly Agree--非常…...

微服务简单理解与快速搭建

分布式和微服务 含义 微服务架构 微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服…...

QColorDialog开发实例

文章目录 一、QColorDialog基本用法:二、QColorDialog详解三、QColorDialog接口说明静态函数成员函数 四、QColorDialog代码开发实例 QColorDialog 是 Qt 框架中用于选择颜色的对话框类。它提供了一个用户友好的界面,允许用户选择颜色。以下是 QColorDi…...

linux实现全局快捷键

文章目录 第一步:加载KF5GlobalAccel库第二步:代码实现2.1 定义一个QAction2.2 KGlobalAccel::self()注册快捷键3 源码地址有一个需求,就是在应用在后台运行时,用户可以通过快捷键将应用唤起。或者应用响应。 其实就是全局快捷键的功能。 这个功能利用了linux操作系统中的d…...

共享台球室小程序系统:智能化预约与管理

在当今数字化的时代,共享经济模式已经渗透到各个领域。其中,共享台球室作为一个结合了传统与现代元素的项目,越来越受到年轻人的喜爱。为了满足市场需求,我们设计了一款基于微信小程序的共享台球室预约与管理系统,通过…...

百度文心一言

1分钟了解一言是谁? 一句话介绍【文心一言】 我是百度研发的人工智能模型,任何人都可以通过输入【指令】和我进行互动,对我提出问题或要求,我能高效地帮助你们获取信息、知识和灵感哦 什么是指令?我该怎么和你互动&am…...

225.用队列实现栈(LeetCode)

思路 思路:用两个队列实现栈后进先出的特性 ,两个队列为空时,先将数据都导向其中一个队列。 当要模拟出栈时,将前面的元素都导入另一个空队列,再将最后一个元素移出队列 实现 实现: 因为C语言没有库可以…...

汽车FMCW毫米波雷达信号处理流程(推荐---基础详细---清楚的讲解了雷达的过程---强烈推荐)

毫米波雷达在进行多目标检测时,TX发射一个Chirp,在不同距离下RX会接收到多个反射Chirp信号(仅以单个chirp为例)。 雷达通过接收不同物体的发射信号,并转为IF信号,利用傅里叶变换将产生一个具有不同的分离峰值的频谱,每个峰值表示在特定距离处存在物体。 请问,这种多目标…...

8.指令格式,指令的寻址方式

目录 一. 指令格式 二. 扩展操作码 三. 指令寻址 (1)指令寻址 (2)数据寻址 1.直接寻址 2.间接寻址 3.寄存器寻址 4.寄存器间接寻址 5.隐含寻址 6.立即寻址 7.基址寻址 8.变址寻址 9.相对寻址 10.堆栈寻址 一. 指令…...

k8s自定义Endpoint实现内部pod访问外部应用

自定义endpoint实现内部pod访问外部应用 endpoint除了可以暴露pod的IP和端口还可以代理到外部的ip和端口 使用场景 公司业务还还没有完成上云, 一部分云原生的,一部分是实体的 业务上云期间逐步实现上云,保证各个模块之间的解耦性 比如使…...

[100天算法】-分割等和子集(day 78)

题目描述 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入:…...

共享台球室小程序系统的数据统计与分析功能

随着共享经济的繁荣发展,共享台球室作为一种新型的娱乐方式,越来越受到年轻人的喜爱。为了更好地满足用户需求和提高管理效率,我们设计了一款基于微信小程序的共享台球室预订与管理系统。该系统不仅具备基本的预订和管理功能,还集…...

Istio学习笔记- 服务网格

Istio 服务网格 参考:Istio / Istio 服务网格 Istio 使用功能强大的 Envoy 服务代理扩展了 Kubernetes,以建立一个可编程的、可感知的应用程序网络。Istio 与 Kubernetes 和传统工作负载一起使用,为复杂的部署带来了标准的通用流量管理、遥…...

离散卡尔曼滤波器算法详解及重要参数(Q、R、P)的讨论

公开数据集中文版详细描述参考前文:https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神经元Spike信号分析参考前文:https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神经元运动调制分析参考…...

伊朗黑客对以色列科技行业发起恶意软件攻击

最近,安全研究人员发现了一场由“Imperial Kitten”发起的新攻击活动,目标是运输、物流和科技公司。 “Imperial Kitten”又被称为“Tortoiseshell”、“TA456”、“Crimson Sandstorm”和“Yellow Liderc”,多年来一直使用“Marcella Flore…...

selenium报错:没有打开网页或selenium.common.exceptions.NoSuchDriverException

文章目录 问题解决方法 问题 当selenium的环境配置没有问题,但在使用selenium访问浏览器时并没有打开网页,或者出现selenium.common.exceptions.NoSuchDriverException报错信息(如下图所示)。 以上问题可能的原因是没有配置chrom…...

Java开源工具库使用之线上监控诊断库Arthas

文章目录 前言一、介绍1.1 功能1.2 原理 二、安装使用2.1 下载2.2 使用 三、常用3.1 实时查看3.2 追踪查看3.3 辅助命令3.4 热更新3.5 监控 四、实战4.1 CPU/内存占用过高4.2 接口耗时高4.3 找到类所在jar4.4 查找类的实例4.5 生成火焰图 参考 前言 在现代软件开发中&#xff…...

Nodejs操作缓存数据库-Redis

Hi I’m Shendi Nodejs专栏 Nodejs操作缓存数据库-Redis 在服务端开发中,缓存数据库也是不可或缺的,可以提高程序并发以及方便后续扩展,而目前最常用的莫过于Redis了 安装依赖 和之前的mysql一样,redis的依赖最常用的就是redis …...

Springboot项目全局异常处理

1.ErrorCode.java package com.hng.config.exception.error;/*** Author: 郝南过* Description: TODO* Date: 2023/11/14 10:56* Version: 1.0*/ public interface ErrorCode {String getCode();String getMessage(); }2.ErrorEnum.java package com.hng.config.exception.er…...

算法笔记-第七章-栈的应用(未完成)

算法笔记-第七章-栈的应用 栈的基本常识栈的解释一栈的解释二 栈的操作序列合法的出栈序列可能的出栈序列补充知识点 后缀表达式(无优先级) 栈的基本常识 栈(Stack)是只允许在一端进行插入或删除操作的线性表。 栈的解释一 栈的…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM&#xff09…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

LLMs 系列实操科普(1)

写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...

ThreadLocal 源码

ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...