多变量数据分析

研究方法
Python
作者

yangjh

发布日期

2022年11月27日

多变量数据分析是统计学中一种复杂的分析方法,旨在同时考察三个或更多变量之间的关系。这种分析能够揭示变量间的相互作用、组合效应,并帮助理解在多变量情境下的复杂现象。

多变量描述统计在许多领域中都非常重要,如市场研究、社会科学、生物统计学、环境科学等。它帮助研究人员和决策者理解数据的多维特性,揭示变量间的复杂关系。多变量描述统计关注的是变量之间的关系和相互作用。

使用统计方法来分析多个变量之间的复杂关系。这可能包括因子分析、主成分分析、聚类分析等。还可绘制平行坐标图、雷达图等,展示多个变量间的关系。

类别变量最常见的多变量描述统计,可以使用多维交互分类表进行。

在进行多变量描述统计时,多数时候,需要和推论统计相结合。

多变量统计分析的分类

社会现象是复杂的,两个变量之间的关系往往受其他变量的影响。除了进行单变量和双变量的统计分析之外,还要进行多变量的分析。

多变量分析可依据研究目的分为三大类:① 详析分析,② 多因分析,③ 多项相互关系分析。

详析分析

详析分析所关心的是两个变量的关系,从而引进其他变量,加深了解这两个变量的相互关系。

最简单的详析分析,就是使用多重列联表分析,进行多个变量之间关系的分析。

多因分析

多因分析的目的是要了解多个自变量对某个因变量的共同影响和相对效应。

多项相互关系分析

多项相互关系分析的目的是简化众多变量之间的相互关系。如: 因素分析

多重列联表分析

多重列联表分析是指在涉及三个或更多分类变量的情况下,分析它们之间的关联性。在统计学中,这通常涉及对列联表的层次或维度进行分析,以检查变量之间的相互作用或独立性。

# 读取 Excel 文件
import pandas as pd
file_path_excel = R'../../data/xls/国家认同数据清理后.xlsx'
df_excel = pd.read_excel(file_path_excel)
# 创建民族、年级和政治面貌的交互表
cross_tab = pd.crosstab(index=[df_excel['民族'], df_excel['年级']], 
                        columns=df_excel['政治面貌'], 
                        margins=True)  # All 行和列的总和

cross_tab
政治面貌 1 2 3 4 All
民族 年级
1 0 0 0 1 0 1
1 93 6 8 2 109
2 91 15 10 2 118
3 31 22 6 4 63
4 22 11 2 0 35
... ... ... ... ... ... ...
36 1 1 0 0 0 1
47 2 1 0 0 0 1
48 1 0 1 0 0 1
97 2 1 0 0 0 1
All 574 103 86 16 779

78 rows × 5 columns

from scipy import stats
# 假设我们关注的是第二年级的学生(假设年级用数字“2”表示)
specific_grade = 2

# 筛选出特定年级的数据
df_specific_grade = df_excel[df_excel['年级'] == specific_grade]

# 创建民族和政治面貌的交互表
cross_tab_specific_grade = pd.crosstab(df_specific_grade['民族'], df_specific_grade['政治面貌'])

# 进行卡方检验
chi2_grade, p_grade, dof_grade, expected_grade = stats.chi2_contingency(cross_tab_specific_grade)

chi2_grade, p_grade, dof_grade, expected_grade[:10]  # 展示期望频次的前10个结果,避免过长的输出
(72.71688752254215,
 0.0455610581920747,
 54,
 array([[9.05140562e+01, 1.27951807e+01, 1.23212851e+01, 2.36947791e+00],
        [1.15060241e+01, 1.62650602e+00, 1.56626506e+00, 3.01204819e-01],
        [3.14497992e+01, 4.44578313e+00, 4.28112450e+00, 8.23293173e-01],
        [1.07389558e+01, 1.51807229e+00, 1.46184739e+00, 2.81124498e-01],
        [6.90361446e+00, 9.75903614e-01, 9.39759036e-01, 1.80722892e-01],
        [4.60240964e+00, 6.50602410e-01, 6.26506024e-01, 1.20481928e-01],
        [1.53413655e+00, 2.16867470e-01, 2.08835341e-01, 4.01606426e-02],
        [9.20481928e+00, 1.30120482e+00, 1.25301205e+00, 2.40963855e-01],
        [1.53413655e+00, 2.16867470e-01, 2.08835341e-01, 4.01606426e-02],
        [7.67068273e-01, 1.08433735e-01, 1.04417671e-01, 2.00803213e-02]]))

多元回归分析

回归

回归是英国统计学家弗朗西斯·高尔顿在研究父代身高与子代身高之间的关系时提出来的。

回归分析既可以用于探索和检验自变量与因变量之间的因果关系,也可以给予自变量的取值来预测因变量的取值,还可以用于描述自变量与因变量之间的关系。回归分析是量化研究中最重要的方法。

回归的特点就在于它把观测值分解成两部分——结构部分和随机部分。结构部分表示因变量与自变量之间的结构关系,表现为“预测值”,随机项部分表示观测项中未被结构项解释的剩余部分(被忽略的结构因素、测量误差和随机干扰)。

回归分析的相关概念

净相关与部分相关:

所谓净相关(或称为偏相关 partial correlation),是指在计算两个连续变量的相关时,将第三个变量与两个相关变量的相关予以排除之后的纯净相关。部分相关(part correlation)是指净处理第三个变量与两个变量中的某一个变量的相关所计算出来的相关系数。

残差:残差是指将 X 值带入回归方程所得到的数值与观察值之间的差值。表示利用回归方程无法准确预测的误差。

简单回归方程

通常采用最小二乘法(ordinary least squares)计算回归系数。

了解简单回归的原理是学习多元回归的基础。

多元线性回归分析

多元线性回归分析是多因分析的一种。回归分析中的自变量也称为预测变量或解释变量,而因变量又称为效标变量或反应变量。多元线性回归分析的目的在于找出一个自变量的回归方程式,以便说明一组预测变量与效标变量之间的关系。

研究问题案例:

H1:第三人效果强度与性别、学历、专业、节目收看量、认知卷入度、外部行为卷入度、心理相对理性度、短信投票、粉丝身份、节目质量评价之间的关系。

“心理相对理性度”对于“第三者效果强度”的影响最为显著。

多元回归的优势在于它能够提供在控制其它因素以后某一自变量对因变量的偏效应或净效应。

多元线性回归分析对自变量的要求

自变量应该为定距变量。

若自变量为定类变量最好不要纳入到回归分析中,除非此定类变量与效标变量关系甚为密切。

如果要将定类变量纳入预测变量,则先要将定类变量转化为虚拟变量(dummy variable)。

虚拟变量

如果自变量不是定距变量,在纳入回归分析模型前,应先转化为虚拟变量。

例如:家庭类型,1 代表完整家庭,2 代表单亲家庭,3 代表他人照顾家庭,4 代表隔代教养家庭。转化为如下 3 个虚拟变量:

id 家庭类型 fam1 fam2 fam3
1 1 1 0 0
2 2 0 1 0
3 3 0 0 1
4 4 0 0 0

上述参照组为水平 4(隔代教养家庭),虚拟变量 fam1 为“完整家庭组与隔代教养家庭组”的对比,其它两个类似。

SPSS 多元线性回归分析的不同方法

SPSS 提供 5 种选取变量的方法:强迫进入法(enter)、逐步(stepwise)、向前(forward)、向后(backward)、删除法(remove)。

强迫进入法将所有预测变量同时纳入模型中,用于解释所有自变量对因变量的整体预测力。

逐步多元回归,挑选只对因变量有显著预测力的自变量,其余未达到显著水平的自变量会被排除在回归模型之外。

多元线性回归分析的使用前提

  1. 正态性,效标变量在预测变量的各个水平上需为正态分布。
  2. 效标变量的各个观察值必须是独立的。
  3. 各预测变量之间没有多元共线性关系,即自变量之间没有高度相关(相关系数>0.70)。
  4. 预测变量与效标变量之间呈线性关系。
  5. 残差独立性假定。不同预测变量产生的残差之间的相关性为 0。
  6. 残差等分散性。

共线性诊断

共线性问题是影响多元回归分析的最重要因素之一。

统计软件一般提供容忍度(tolerance)或方差膨胀因素(variance inflation factor,VIF)来评估共线性的影响。

除了个别解释变量的共线性检验之外,整体回归模型的共线性诊断也可以通过特征值(eigenvalue)与条件指数(conditional index,CI)来判断。

CI 值低于 30,表示共线性问题缓和,30-100 之间,表示回归模型具有中至高度共线性,100 以上,则表示严重的共线性。

强迫进入变量法输出结果的解读-相关性

相关性结果显示,7 个自变量与因变量之间存在显著性相关关系;但有自变量之间的相关系数大于 0.7,可能存在共线性问题。

如果两个自变量存在共线性问题,则可以选取一个比较重要的进入回归模型。

回归分析的假设检验

回归分析的假设检验包括两方面的内容:

  1. 模型整体检验,即检验根据样本数据建立的回归方程在总体中是否也有解释力;
  2. 回归系数检验,即检验该方程中自变量对因变量的影响在总体中是否存在。

强迫进入变量法输出结果的解读-模型解释力

\(R^2\)的值为 0.58,表明回归模型中的所有自变量,可以解释因变量的 58% 的变异量。

强迫进入变量法输出结果的解读——模型整体检验

方差分析的显著性检验 p 小于 0.05, 表明回归模型整体解释达到显著水平,至于是哪些回归系数达到显著,还需要看其他表。

强迫进入变量法输出结果的解读-回归系数检验

标准化回归模型为:组织效能 = 0.08 福利措施 + 0.21 同侪关系 + 0.21 适应学习 + 0.02 创新学习 + 0.18 知识获取 + 0.04 知识流通 + 0.15 知识创新

系数意义解读:对于福利措施变量,福利措施每增加一个单位,组织效能平均增加 0.08 单位。

自变量是否有多元共线性问题,可用三个数据判别:容忍度小于 0.1、方差膨胀因素大于 10、条件指标大于 30。

表中的容忍度、方差膨胀因素表明,自变量多元共线性问题不是很明显。

强迫进入变量法输出结果的解读-CI

自变量是否有多元共线性问题,可用三个数据判别:容忍度小于 0.1、方差膨胀因素大于 10、条件指标大于 30。

表中条件指标中有三个变量大于 30,表明自变量有轻微共线性问题。

强迫进入变量法输出结果的解读–正态

图中形状表明,样本观察值大致符合正态性的假定。

强迫进入变量法输出结果的解读-整体

总体而言,分析结果表明,多元回归分析的前提条件基本满足,回归分析模型具有显著性,7 个自变量整体能解释 58%的变异量,模型具有一定的解释力,其中同侪关系、适应学习对组织效能有较高的解释力,未达到显著性的自变量(创新学习、知识流通)对组织效能的变异解释较小。

多元回归分析结果撰写案例

以性别、读书困难、父亲受教育念书对阅读素养进行多元回归分析,整体效果是显著的,\(F\)(3,16)=9.81,\(p\)<0.001,\(R^2\)=0.45。个别变量分析,读书困难 [\(\beta\)=-0.329,\(t\)(36)=-2.35,\(p\)=0.024] 及父亲受教育程度 [\(\beta\)=0.431,\(t\)(36)=3.23,\(p\)=0.003] 可显著预测阅读素养。性别则无法显著预测阅读素养,\(b\)=18.69,\(t\)(36)=0.75,\(p\)=0.459。

逐步多元回归分析

逐步多元回归分析是一种探索性的多元线性回归方法,此方法同时使用前进选取和后退删除方法,计算出最佳的多元回归分析模型。

逐步多元回归分析的操作及结果解释和强制进入分析法类似。

import pandas as pd

# 加载数据
file_path = '../../data/xls/多元回归分析演示数据.xlsx'
data = pd.read_excel(file_path)

# 显示数据的前几行以进行初步检查
data.head()
福利措施 同侪关系 适应学习 创新学习 知识获取 知识流通 知识创新 财务控管 顾客认同 内部运作 学习成长 组织效能
0 7 8 7 5 9 8 6 5 5 5 5 20
1 11 10 17 13 15 7 4 5 5 5 5 20
2 9 10 7 8 20 16 13 6 10 6 5 27
3 12 14 14 9 19 14 4 5 12 7 5 29
4 12 13 7 13 22 18 14 5 5 10 9 29
import statsmodels.api as sm
# 使用指定的五个变量作为自变量进行多元线性回归分析
specified_variables = ['知识获取', '内部运作', '适应学习', '学习成长', '知识创新']
X_specified = data[specified_variables]
y = data['组织效能']  # 因变量

# 多元线性回归
X_specified_with_constant = sm.add_constant(X_specified)  # 添加常数项
model_specified = sm.OLS(y, X_specified_with_constant).fit()

# 显示回归结果
model_specified_summary = model_specified.summary()
model_specified_summary
OLS Regression Results
Dep. Variable: 组织效能 R-squared: 0.921
Model: OLS Adj. R-squared: 0.921
Method: Least Squares F-statistic: 2797.
Date: Wed, 13 Dec 2023 Prob (F-statistic): 0.00
Time: 08:05:52 Log-Likelihood: -3196.3
No. Observations: 1200 AIC: 6405.
Df Residuals: 1194 BIC: 6435.
Df Model: 5
Covariance Type: nonrobust
coef std err t P>|t| [0.025 0.975]
const 3.8985 0.608 6.414 0.000 2.706 5.091
知识获取 0.0590 0.031 1.933 0.053 -0.001 0.119
内部运作 2.1576 0.053 40.530 0.000 2.053 2.262
适应学习 0.1363 0.033 4.115 0.000 0.071 0.201
学习成长 1.3065 0.050 26.004 0.000 1.208 1.405
知识创新 0.0554 0.050 1.114 0.265 -0.042 0.153
Omnibus: 76.857 Durbin-Watson: 1.609
Prob(Omnibus): 0.000 Jarque-Bera (JB): 210.474
Skew: 0.318 Prob(JB): 1.98e-46
Kurtosis: 4.951 Cond. No. 289.


Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

以五个变量——“知识获取”、“内部运作”、“适应学习”、“学习成长”和“知识创新”——作为自变量,进行多元线性回归分析。目标是预测“组织效能”。

多元线性回归分析结果如下,以“知识获取”、“内部运作”、“适应学习”、“学习成长”和“知识创新”为自变量来预测“组织效能”:

  1. 决定系数(R-squared): 模型的R-squared值为0.921,这意味着模型能够解释约92.1%的因变量(组织效能)的变异性,显示出很好的拟合度。

  2. 回归系数(Coefficients):

    • 知识获取: 回归系数为0.059,但其p值为0.053,略高于0.05的常用显著性水平,因此这个变量的影响可能不是统计显著的。
    • 内部运作: 回归系数为2.1576,p值远小于0.05,表明它对组织效能有显著正影响。
    • 适应学习: 回归系数为0.1363,p值小于0.05,表明它对组织效能有显著正影响。
    • 学习成长: 回归系数为1.3065,p值小于0.05,表明它对组织效能有显著正影响。
    • 知识创新: 回归系数为0.0554,但其p值为0.265,表明它可能不是统计显著的。
  3. 模型显著性: F统计量的p值接近0,这表明至少有一个自变量在统计上显著地影响组织效能。

总结:这个回归模型表明“内部运作”、“适应学习”和“学习成长”是影响组织效能的重要因素,而“知识获取”和“知识创新”可能不是决定组织效能的关键因素。这些发现可以帮助组织更好地理解哪些因素对其效能有显著影响,从而指导决策和资源分配。

主成分分析

主成分分析(PCA,Principal Component Analysis)是一种常用的数据分析方法,用于减少数据的维度,同时尽量保留原始数据中的重要信息。这种方法在许多领域都非常有用,比如机器学习、图像处理、市场研究等。

主成分分析的基本思想是将原始数据转换到一个新的坐标系统中,这个新坐标系统的基(即主成分)是原始数据集中方差最大的方向。换句话说,PCA试图找到最能代表数据分布的方向。

以下是主成分分析的主要步骤: 1. 标准化数据:如果数据集中的特征在量级上有很大差异,需要先对数据进行标准化处理。 2. 计算协方差矩阵:协方差矩阵描述了数据中各个变量之间的相关性。 3. 计算协方差矩阵的特征值和特征向量:这些特征向量决定了PCA的方向,特征值则决定了这些方向的重要性。 4. 选择主成分:根据特征值的大小,选择前几个最重要的特征向量作为主成分。这些主成分就是新的、降低维度后的特征。 5. 转换到新的空间:使用选定的主成分将原始数据转换到新的特征空间。

主成分分析的一个关键点是确定要保留多少个主成分。通常,这取决于保留的主成分所解释的总方差的百分比。例如,如果前三个主成分解释了95%的总方差,那么可能就只需要保留这三个主成分。

主成分分析的优点是可以减少数据的复杂性,去除噪声和冗余信息,同时保留最重要的特征。然而,它也有一些限制,比如它假设主要的信息被数据的高方差所表示,这在某些情况下可能不成立。此外,PCA是线性的,可能不适用于需要非线性方法处理的数据。