精华内容
下载资源
问答
  • 对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,拟合结构方程模型可以成为分析师工具箱中的强大工具。 设置 ...

    原文链接:http://tecdat.cn/?p=3071

    原文出处:拓端数据部落公众号


    结构方程模型入门 

    介绍

    对于熟悉线性回归拟合结构方程模型的分析师来说,在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,拟合结构方程模型可以成为分析师工具箱中的强大工具。

    设置 环境

    在R中实现SEM有许多不同的包,lavaan软件包为大多数SEM用户提供了全面的功能集,并且具有易于学习的语法来描述SEM模型。要安装lavaan,我们只需运行:

    # 安装
    install.packages("lavaan")
     

    读入数据

    我们需要读入数据集。我们读取方差 - 协方差矩阵并运行路径分析模型。

     mat1 <- matrix(c(1, 0, 0, 0.6, 1, 0, 0.33, 0.63, 1), 3, 3, byrow = TRUE)
    
     
     print(mat1)
    
    ##      ILL  IMM DEP
    ## ILL 1.00 0.00   0
    ## IMM 0.60 1.00   0
    ## DEP 0.33 0.63   1
    
    现在我们在我们的环境中命名了一个方差 - 协方差矩阵。

    有了这些数据,我们可以构建两种可能的模型

    1. 抑郁症(DEP)影响免疫系统(IMM)影响疾病(ILL)
    2. IMM影响ILL影响DEP

    使用SEM我们可以评估哪个模型最能解释我们在上面的数据中观察到的协方差。拟合模型lavaan是一个两步过程。首先,我们创建一个文本字符串定义lavaan模型 。接下来,我们给出lavaan如何拟合这个模型。

    # 定义模型
    
     
    # 拟合模型
    mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
    
    # 定义模型2
    
     
    mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
    

    现在,我们在环境中为每个模型存储了两个对象。我们有模型字符串和modelfit对象。summary提供输出:

    ## 
    ##   Number of observations                           500
    ## 
    ##   Estimator                                         ML
    ##   Minimum Function Test Statistic                2.994
    ##   Degrees of freedom                                 1
    ##   P-value (Chi-square)                           0.084
    ## 
    ## Parameter estimates:
    ## 
    ##   Information                                 Expected
    ##   Standard Errors                             Standard
    ## 
    ##                    Estimate  Std.err  Z-value  P(>|z|)
    ## Regressions:
    ##   ILL ~
    ##     IMM               0.600    0.036   16.771    0.000
    ##   IMM ~
    ##     DEP               0.630    0.035   18.140    0.000
    ## 
    ## Variances:
    ##     ILL               0.639    0.040
    ##     IMM               0.602    0.038
    
    ## 
    ##   Number of observations                           500
    ## 
    ##   Estimator                                         ML
    ##   Minimum Function Test Statistic              198.180
    ##   Degrees of freedom                                 1
    ##   P-value (Chi-square)                           0.000
    ## 
    ## Parameter estimates:
    ## 
    ##   Information                                 Expected
    ##   Standard Errors                             Standard
    ## 
    ##                    Estimate  Std.err  Z-value  P(>|z|)
    ## Regressions:
    ##   DEP ~
    ##     ILL               0.330    0.042    7.817    0.000
    ##   ILL ~
    ##     IMM               0.600    0.036   16.771    0.000
    ## 
    ## Variances:
    ##     DEP               0.889    0.056
    ##     ILL               0.639    0.040
    

    理解SEM模型的最佳方法之一是使用路径图直观地检查模型。

    接下来,我们加载库并制作一些路径图。

    这两个简单的路径模型哪个更好?我们可以运行卡方检验。

    ## Chi Square Difference Test
    ## 
    ##         Df  AIC  BIC  Chisq Chisq diff Df diff Pr(>Chisq)    
    ## mod1fit  1 3786 3803   2.99                                  
    ## mod2fit  1 3981 3998 198.18        195       0     <2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    

    可以看到模型2更好。让我们看一下模型2的一些属性。

    # 拟合优度评价指标
    ##              fmin             chisq                df            pvalue 
    ##             0.198           198.180             1.000             0.000 
    ##    baseline.chisq       baseline.df   baseline.pvalue               cfi 
    ##           478.973             3.000             0.000             0.586 
    ##               tli              nnfi               rfi               nfi 
    ##            -0.243            -0.243             1.000             0.586 
    ##              pnfi               ifi               rni              logl 
    ##             0.195             0.587             0.586         -1986.510 
    ## unrestricted.logl              npar               aic               bic 
    ##         -1887.420             4.000          3981.020          3997.878 
    ##            ntotal              bic2             rmsea    rmsea.ci.lower 
    ##           500.000          3985.182             0.628             0.556 
    ##    rmsea.ci.upper      rmsea.pvalue               rmr        rmr_nomean 
    ##             0.703             0.000             0.176             0.176 
    ##              srmr       srmr_nomean             cn_05             cn_01 
    ##             0.176             0.176            10.692            17.740 
    ##               gfi              agfi              pgfi               mfi 
    ##             0.821            -0.075             0.137             0.821 
    ##              ecvi 
    ##             0.412
    
    
    # 模型参数预测
    ##   lhs op rhs   est    se      z pvalue ci.lower ci.upper
    ## 1 DEP  ~ ILL 0.330 0.042  7.817      0    0.247    0.413
    ## 2 ILL  ~ IMM 0.600 0.036 16.771      0    0.530    0.670
    ## 3 DEP ~~ DEP 0.889 0.056 15.811      0    0.779    1.000
    ## 4 ILL ~~ ILL 0.639 0.040 15.811      0    0.560    0.718
    ## 5 IMM ~~ IMM 0.998 0.000     NA     NA    0.998    0.998
    
    
    # 修改指标
    ##    lhs op rhs    mi    epc sepc.lv sepc.all sepc.nox
    ## 1  DEP ~~ DEP   0.0  0.000   0.000    0.000    0.000
    ## 2  DEP ~~ ILL 163.6 -0.719  -0.719   -0.720   -0.720
    ## 3  DEP ~~ IMM 163.6  0.674   0.674    0.675    0.674
    ## 4  ILL ~~ ILL   0.0  0.000   0.000    0.000    0.000
    ## 5  ILL ~~ IMM    NA     NA      NA       NA       NA
    ## 6  IMM ~~ IMM   0.0  0.000   0.000    0.000    0.000
    ## 7  DEP  ~ ILL   0.0  0.000   0.000    0.000    0.000
    ## 8  DEP  ~ IMM 163.6  0.675   0.675    0.675    0.676
    ## 9  ILL  ~ DEP 163.6 -0.808  -0.808   -0.808   -0.808
    ## 10 ILL  ~ IMM   0.0  0.000   0.000    0.000    0.000
    ## 11 IMM  ~ DEP 143.8  0.666   0.666    0.666    0.666
    ## 12 IMM  ~ ILL   0.0  0.000   0.000    0.000    0.000
    

    非常感谢您阅读本文,有任何问题请在下面留言!


    最受欢迎的见解

    1.R语言多元Logistic逻辑回归 应用案例

    2.面板平滑转移回归(PSTR)分析案例实现

    3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)

    4.R语言泊松Poisson回归模型分析案例

    5.R语言回归中的Hosmer-Lemeshow拟合优度检验

    6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

    7.在R语言中实现Logistic逻辑回归

    8.python用线性回归预测股票价格

    9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

    展开全文
  •  文章介绍了基于结构方程模型的REBUS-PLS 分类方法,该方法是结构方程模型中专用于分类的比较新的方 法。作者用此方法对S 银行顾客分类,结果显示这种顾客细分方法行之有效。
  • 初识AMOS及结构方程模型

    千次阅读 2020-10-15 20:43:23
    初识AMOS及结构方程模型 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录初识AMOS及结构方程模型一、AMOS的应用AMOS模式的基本条件二、结构方程模型(SEM)变量(潜在变量与观察变量)...

    初识AMOS及结构方程模型


    一、AMOS的应用

    AMOS的应用范围很广,在心理学研究、医学及保健研究、社会科学研究、教育研究、营销研究、组织行为研究等领域都有许多应用,AMOS在解释不能直接测量的构念(construct)之间的因果关系方面有很大优势。

    AMOS模式的基本条件

    使用AMOS模式必须在因果关系上满足以下基本条件:
    (1) 二变量之间必须要有足够的关联性
    (2) 假设的“因”必须要发生在“果”之前
    (3) 变量之间的关系要有理论依据

    二、结构方程模型(SEM)

    变量(潜在变量与观察变量)

    在结构方程模型(structural equation modeling,SEM)中可以设定三种类型的变量:潜在变量、观察变量、误差变量

    1、 潜在变量(latent variable):就是一个构念,它是无法测量的变量。在AMOS中以椭圆表示。
    2、 观察变量(observed variable)又称测量变量、显性变量,是可以测量的变量,在AMOS中可以用长方形表示,观察变量是问卷中的题项。
    3、 误差变量(unique variable),是不具有实际测量的变量(这里和潜在变量一致),每个观察变量都有误差变量,误差变量用圆形表示。
    在这里插入图片描述
    在AMOS中变量可以分为外衍变量和内衍变量,外衍变量是指自变量,内衍变量是指因变量,因变量会有误差变量,观察变量与误差变量合称为指标变量。见上图

    测量模型与结构模型

    SEM模型包括,测量模型和结构模型,测量模型是指潜在变量与观察变量之间的关系,结构模型是指潜在变量之间的关系
    在这里插入图片描述

    展开全文
  • 结构方程模型1(总要)

    万次阅读 多人点赞 2018-12-28 14:21:59
    @ 结构方程模型SEM 一 模型总要 SEM在估计一组观察变量与其代表的潜变量、因子的关系的同时,分析各潜变量之间的关系,这样潜变量之间的关系估计不受测量误差的影响。 SEM的有点:具有同时对多个因变量建模的能力;...

    结构方程模型1(总要)

    SEM在估计一组观察变量与其代表的潜变量、因子的关系的同时,分析各潜变量之间的关系,这样潜变量之间的关系估计不受测量误差的影响。
    SEM的有点:具有同时对多个因变量建模的能力;检验模型的整体拟合度;检验直接效应、间接效应和总体效应;检验复杂与特定假设;检验跨组参数恒定性;处理复杂数据(如带自相关误差的时间序列数据、非正态分布数据、截断数据以及分类输出数据)
    结构方程建模过程:
    模型表述:模型估计之前形成的最初理论模型。是在理论研究或实践经验的基础上形成的;
    模型识别:决定设定模型的参数估计是否有唯一解。如果错误设定,模型估计可能不收敛或无解。
    模型估计:最常用的是最大似然估计。
    模型评估:需要评估模型是否拟合数据。
    模型修正:如果拟合不好,需要重新设定或修改模型。需要决定如何删除、增加或修改模型中的参数。

    1.1 模型表述Model formulation

    最直接的方法是路径图path diagram来描述研究员感兴趣的模型。正方形或者长方形表示观察变量、观察变量也称为测量变量、外显变量或外显标识。圆或椭圆表示潜变量或因子。变量之间的关系用线条表示。单向箭头表示两变量之间具有效应关系,箭头所指的变量受另一个变量的影响。双向箭头表示变量之间具有关联,但不表示变量之间的效应。
    在这里插入图片描述
    模型内变量决定的潜变量或因子称为内生潜变量endogenous latent variables,用η\eta表示,如果潜变量的原因基于模型之外,称为外源潜变量exogenous latent variables,用 ξ\xi。外源潜变量的表示称为外源标识exogenous indicator,内生潜变量的标识称为内生标识endogenous indicator。用δ\delta标识前者的测量误差项,用ϵ\epsilon标识后者的测量误差项。β\betaγ\gamma是路径系数path coefficients。下标第一个数字代表内生因变量,第二个下标代表原因变量,可以是内生变量,也可以是外源变量。 如果原因变量为外源变量,则路径系数用γ\gamma表示,如果原因变量为内生变量,则路径系数用β\beta表示。ζ\zeta表示结构方程的残差项。
    结构方程模型分析的重点是潜变量或因子,而不是观察变量。目的是提供一种不受测量误差影响的手段来估计设定模型中潜变量间的结构关系。将测量模型measurement model(或验证性因子分析confirmatory factor analysis analysis,CFA)和结构方程structural equations(或潜变量模型latent cariable model)整合在一个结构方程模型框架内就能实现该目的。

    1.1.1 测量模型Measurement model

    基本目的是描述观察标识变量是否适合作为潜变量或因子的测量手段。建立观察标识变量与其所测量的潜变量之间的联系或关系,然后用数据检验是否存在假设的因子结构。

    λ\lambda称为因子负载,表示观察变量与潜变量之间的关系。实际上是将观察变量作为因变量,相关潜变量作为自变量的线性回归系数。ϕ12\phi_{12}表示ξ1\xi_1ξ2\xi_2的协方差,但不表示因果关系。如果两个潜变量之间没有相关关系,则ϕ12=0\phi_{12}=0。对于单因子CFA模型,模型识别至少需要有3个标识,而且误差项不能相关。图1.1.1-2所示的单因子验证性因子模式是恰识别的just identified,观察变量的方差/协方差的数量(6)等于自由参数的数量(2个自由因子负载,3个误差项方差和1个因子方差)。但是能估计模型的参数不饿能评估模型拟合数据的情况。为了评估模型的拟合度模型必须是超识别的overidentified,观察和数据点数要大于模型估计的自由参数总数。CFA有多因子且特定因子至少与另一个因子相关但误差项不相关,那么可以只有两个测量标识。

    1.1.2 结构模型Structural model

    结构模型评估潜变量之间的相互关系。结构方程模型中各潜变量之间的关系是与测量模型同时估计的。如果结构模型中的变量都是观察变量而不是潜变量,那么结构方程就会变成一组观察变量之间结构关系的建模体系。
    在这里插入图片描述

    上图模型是一个递归模型。如果模型具有回馈效应或反馈效应,即η1\eta_1η2\eta_2相互影响即互为因果关系,则该模型称为非递归模型,一般只讨论递归模型。

    1.1.3 模型表达方程Model formulation in equations

    一般结构方程可用3个基本方程表达:
    η=Bη+Γξ+ζ\eta=B\eta+\Gamma\xi+\zeta
    Y=Λyη+ϵY=\Lambda_y\eta+\epsilon
    X=Λxξ+δX=\Lambda_x\xi+\delta
    一般结构方程模型的3个基本方程中变量矩阵的定义

    变量 定义 维度
    η\eta 内生潜变量 m×1m\times1
    ξ\xi 外源潜变量 n×1n\times1
    ζ\zeta 方程中的干扰项 m×1m\times1
    yy 内生标识 p×1p\times1
    xx 外源标识 q×1q\times1
    ϵ\epsilon yy的测量误差 p×1p\times1
    δ\delta xx的测量误差 q×1q\times1


    结构方程模型的设定实际上是通过对这8个矩阵中的参数具体设定来表述的。这些参数可以设定为固定参数fixed parameter,也可以设定为自由参数free parameter。固定参数不能由数据估计,值通常固定为0(如协方差为零或斜率为零,表示无相关关系或效应),或1(如因模型识别的需要,通常,每个因子须有一个因子载荷设定为0)。
    方程η=Bη+Γξ+ζ\eta=B\eta+\Gamma\xi+\zeta的矩阵表示为:
    (1.1.3-2)[η1η2]=[0β1200][η1η2]+[γ11γ12γ21γ22]+[ζ1ζ2] \left[ \begin{matrix} \eta_1 \\ \eta_2 \end{matrix} \right]=\left[ \begin{matrix} 0 &amp; \beta_{12}\\ 0 &amp; 0 \end{matrix} \right]\left[ \begin{matrix} \eta_1\\ \eta_2 \end{matrix} \right]+ \left[ \begin{matrix} \gamma_{11} &amp; \gamma_{12} \\ \gamma_{21} &amp; \gamma_{22} \end{matrix} \right]+ \left[ \begin{matrix} \zeta_1\\ \zeta_2 \end{matrix} \right]\tag{1.1.3-2}
    图1.1-2所示模型可以导出以下两个结构方程
    η1=β12η2+γ11ξ1+γ12ξ2+ζ1\eta_1=\beta_{12}\eta_2+\gamma_{11}\xi_1+\gamma_{12}\xi_2+\zeta_1
    η2=γ21ξ1+γ22ξ2+ζ2\eta_2=\gamma_{21}\xi_1+\gamma_{22}\xi_2+\zeta_2
    方程Y=Λyη+ϵY=\Lambda_y\eta+\epsilon可以表达为
    (1.1.3-4)[y1y2y3y4]=[10λy210λy3100λy42][η1η2]+[ϵ1ϵ2ϵ3ϵ4] \left[ \begin{matrix} y_1\\ y_2\\ y_3\\ y_4 \end{matrix} \right]= \left[ \begin{matrix} 1 &amp; 0\\ \lambda_{y21} &amp; 0\\ \lambda_{y31} &amp; 0\\ 0 &amp; \lambda_{y42} \end{matrix} \right] \left[ \begin{matrix} \eta_1\\ \eta_2 \end{matrix} \right]+ \left[ \begin{matrix} \epsilon_1\\ \epsilon_2\\ \epsilon_3\\ \epsilon_4 \end{matrix} \right]\tag{1.1.3-4}
    Λy\Lambda_y决定了那个具体的内生观察标识yy载荷在哪个具体内生潜变量η\eta上。固定值0标识某标识不载荷在相应的潜变量上。负载固定值1用于模型识别的需要,并定义潜变量的尺度。由1.1.3-4可以导出以下关于内生潜变量的测量方程:
    y1=η1+ϵ1y_1=\eta_1+\epsilon_1
    y2=λy21η1+ϵ2y_2=\lambda_{y21}\eta_1+\epsilon_2
    y3=λy31η1+ϵ3y_3=\lambda_{y31}\eta_1+\epsilon_3
    y4=λy42η2+ϵ4y_4=\lambda_{y42}\eta_2+\epsilon_4
    图1.1-1的模型中,方程X=Λxξ+δX=\Lambda_x\xi+\delta可以表达为:
    在这里插入图片描述
    在这里插入图片描述
    以上的测量模型和结构模型中,有如下假设:E(ζ)=0,E(ϵ)=0,E(δ)=0E(\zeta)=0, E(\epsilon)=0, E(\delta)=0以及Cov(ζ,ξ)=0,Cov(ϵ,η)=0,Cov(δ,ξ)=0Cov(\zeta, \xi)=0, Cov(\epsilon, \eta)=0, Cov(\delta, \xi)=0,还假设观察变量服从多元正态分布。

    1.2 模型识别Model identification

    SEM模型识别的必要条件:
    数据点的数量不能少于自由参数的数量,自由度不能为负。数据点数是观察变量的方差/协方差矩阵的不同元素的数量,等于(p+q)/(p+q+1)/2(p+q)/(p+q+1)/2。自由参数的数量是模型所要估计的参数数量,包括因子负载、路径系数、潜变量方差、协方差及误差项方差、协方差等。如果数据点数超过自由参数的数量,模型称为超识别模型overidentified model;如果数据点数少于自由参数的数量,模型称为欠识别模型under identified model,欠识别模型无法估计模型参数。数据点等于自由参数的数量,模型称为恰识别模型just identified model。自由度为零的模型能够进行模型参数估计无法进行模型拟合优度检验。
    模型每一个潜变量都必须设定一个测量尺度。有两种方式:一是将一个观察标识的因子载荷固定为一个常数通常为1;二是将潜变量的方差固定为1即潜变量标准化。
    于放模型识别问题发生的重点在于参数设定。取决于如何将参数设定为自由参数free parameter、固定参数fixed parameter或强制参数constrained parameter。

    1.3 模型估计Model estimation

    结构方程模型的估计是极小化样本方差/协方差与模型估计的方差/协方差之间的关系。用Σ\Sigma代表观察变量yxy和x的总体方差/协方差矩阵,结构方差模型估计的关键点是可以将矩阵Σ\Sigma表达为假定模型中自由参数θ\theta的函数,分析的基本假设是:
    Σ=Σ(θ)\Sigma=\Sigma(\theta)
    Σ(θ)\Sigma(\theta)为模型估计的方差/协方差矩阵,也称模型隐含的方差/协方差矩阵,是假设模型的总体参数所暗示的方差/协防太差矩阵。模型估计或拟合的目的是找到一组模型参数θ\theta,计算Σ(θ)\Sigma(\theta),并使ΣΣ(θ)\Sigma-\Sigma(\theta)最小化。
    由于Σ\SigmaΣ(θ)\Sigma(\theta)未知,因此实际上是最小化SΣ(θ^)S-\Sigma(\hat\theta)SΣ^S-\hat\Sigmaθ^\hat\theta是模型样本参数估计值,Σ^\hat\Sigma是从样本估计的模型隐含方差/协方差矩阵。一般结构方程模型由8个参数矩阵的各固定与自由参数的特定模式所表示。观察方差/协方差矩阵用于估计参数矩阵中的自由参数值,使其能最好的再生出Σ^\hat\Sigma,并使Σ^\hat\SigmaSS的差别最小化。 模型估计过程中须用一种特殊拟合函数以尽可能地减少SSΣ^\hat\Sigma之间的差异,最常见的是似然函数;
    FML(θ^)=lnΣ^lnS+tr(SΣ^1)(p+q)F_{ML}(\hat\theta)=ln|\hat\Sigma|-ln|S|+tr(S\hat\Sigma^{-1})-(p+q)
    FMLF_{ML}是对差异函数的测量,称为最小差异函数。一个完美拟合的模型,最小差异函数为零。
    结构方程模型估计以最大似然估计为基础。第一,ML估计是无偏估计;第二,ML估计具有一致性;第三,ML具有渐近有效性;第四,ML估计具有渐近正态性。这样可以进行假设的显著性检验和计算参数的置信区间;第五,ML函数不受限于变量的测量尺度。在多元正态和大样本假设下,ML拟合函数FML(θ^)F_{ML}(\hat\theta)n1n-1接近卡方分布。
    ML估计法适用于正态分布下得连续结局测量变量,在数据非正态分布情况下,虽然ML参数估计值不易出现偏倚,但是参数估计值的标准误可能会出现偏倚。传统的补救措施有:将变量的非正态分布转化为近似正态分布;去除数据中的异常值;使用自助法估计参数。但广泛用于SEM中处理非正态数据、比传统方法更好的方法是应用无须假设正态分布的稳健估计法估计模型。
    关于估计有以下主要几种方法。渐近五分不估计法asymptotically distribution free estimator ADF,是大样本情况下无须考虑变量分布的参数稳健估计方法,以样本方差/写防擦和矩阵S各元素的方差/协方差和峰度对ADF函数加权,并以此调整数据的多元非正态性。缺点是当观察变量数量较大时需要很大的样本量来估计其权重矩阵,且计算非常耗时,若样本量不足,则会产生很大偏度,导致ADF的权重不可逆。

    1.4 模型评估Model evaluation

    多种方法可用于评估SSΣ^\hat\Sigma之间的接近程度,因此有多种模型拟合指数,可以分为两大类:绝对拟合指数absolute fit indices和增值拟合指数incremental fit indices.
    绝对拟合指数:直接评估设定模型与样本数据的拟合情况。实际上是将设定模型与饱和模型进行比较的,饱和模型精确拟合数据,隐含矩阵和观察矩阵相等。包括模拟卡方统计、拟合优度指数、调整拟合优度指数、残差均方根、标化残差均方根、近似误差均方根。
    增值拟合指数:比较设定模型与基准模型或独立模型,检测模型拟合相对基准模型而言改善的比例。基准模型是数据拟合最差的模型,只容许观察变量方差而没有反映各变量之间关系的协方差,因此零模型中没有潜变量。包括:规范拟合指数、增值拟合指数、非规范指数、相对离中指数、比较拟合指数。
    模型拟合指数也可划分为离中指数、简约调整拟合指数和信息标准指数。
    离中指数:传统检验法通过检验卡方和pp值了解模型拟合度,离中指数评估模型不拟合数据的程度。离中指数以离中参数nocentrality parameter NCP为基础,可以估计为χ2df(χ2&lt;dfχ2df=0)\chi^2-df(如\chi^2&lt;df,则\chi^2-df=0)。一个大样本、设定正确的模型,拟合函数和模型卡方值应服从中心卡方分布,则NCP=0NCP=0。而一个误设模型的卡方值可能会服从非中心卡方分布。
    简约调整拟合指数:通过惩罚复杂模型来调整拟合指数。模型越复杂,自由参数越多,拟合指数越低。
    信息标准指数:最常用的是Akaike信息标准和Bayesian信息标准。
    **模型卡方值(χ2)(\chi^2)**模型卡方是最早用于结构方程模型的拟合指数,定义为χ2=FML(N1)\chi^2=F_{ML}(N-1)

    1.5 模型修正(Model modification)

    需要使用修正指数modification indices MI作为诊断指标来帮助修改模型设定。修正指数与模型的固定参数常联系在一起。一个固定参数的Mi值相当于自由度df=1df=1的模型卡方值。
    与MI有关的另一个指标为参数期望改变值expected parameter change EPC,表示以固定参数被允许自由估计时的参数改变量。
    检视模型拟合质量的另一重要方法是检查模型残差。

    展开全文
  • R语言:结构方程模型、潜变量分析

    千次阅读 2019-04-10 17:01:00
    结构方程模型入门 介绍 对于熟悉线性回归拟合结构方程模型的分析师来说,首先会感到奇怪。在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,快速重新定位并且...

    结构方程模型入门 

    介绍

    对于熟悉线性回归拟合结构方程模型的分析师来说,首先会感到奇怪。在R环境中,拟合结构方程模型涉及学习新的建模语法,新的绘图语法以及通常是新的数据输入方法。然而,快速重新定位并且很快用户会接触到差异,拟合结构方程模型可以成为分析师工具箱中的强大工具。

    •  构造潜在变量
    • 比较替代模型
    • 对较大数据集的多组分析。

    设置 环境

    在R中开始使用结构方程建模(SEM)可能是令人生畏的。在R中实现SEM有许多不同的包,并且用户可能有兴趣实现SEM的不同特征。您可能会遇到的一些软件包可以在CRAN Psychometrics Task View中找到

    对于那些想要lavaan深入了解该软件包的人来说,它似乎为大多数SEM用户提供了最全面的功能集,并且具有深思熟虑且易于学习的语法来描述SEM模型。要安装lavaan,我们只需运行:

    # Main version
    install.packages("lavaan")
    
    # Or to install the dev version
    library(devtools)
    install_github("lavaan", "yrosseel")
    

    读入数据

    加载lavaan包后,我们需要读入数据集。lavaan接受两种不同类型的数据,标准R数据帧或方差 - 协方差矩阵。由于后者对我们来说不熟悉来自lmR中的标准线性建模框架,我们将首先阅读最简单的方差 - 协方差矩阵并运行路径分析模型。

     mat1 <- matrix(c(1, 0, 0, 0.6, 1, 0, 0.33, 0.63, 1), 3, 3, byrow = TRUE)
    
     
     print(mat1)
    
    ##      ILL  IMM DEP
    ## ILL 1.00 0.00   0
    ## IMM 0.60 1.00   0
    ## DEP 0.33 0.63   1
    
    # Note that we only input the lower triangle of the matrix. This is
    # sufficient though we could put the whole matrix in if we like
    

    现在我们在我们的环境中命名了一个方差 - 协方差矩阵,mat1并且该变量myN对应于我们数据集中的观察数量。另外,我们可以提供R中的全部数据集,并可以得到mat1myN本身。

    有了这些数据,我们可以构建两种可能的模型

    1. 抑郁症(DEP)影响免疫系统(IMM)影响疾病(ILL)
    2. IMM影响ILL影响DEP

    使用SEM我们可以评估哪个模型最能解释我们在上面的数据中观察到的协方差。拟合模型lavaan是一个两步过程。首先,我们创建一个文本字符串作为lavaan模型,并遵循lavaan 模型语法。接下来,我们给出lavaan了如何使用适合要么这个模型与数据的说明 cfalavaansem功能。在这里我们将使用该sem功能。其他功能将在以后的文章中介绍。

    # Specify the model
    
     
    # Give lavaan the command to fit the model
    mod1fit <- sem(mod1, sample.cov = mat1, sample.nobs = 500)
    
    # Specify model 2
    
     
    mod2fit <- sem(mod2, sample.cov = mat1, sample.nobs = 500)
    

    现在,我们在环境中为每个模型存储了两个对象。我们有模型字符串和modelfit对象。模型拟合对象(mod1fitmod2fit)是lavaan类对象。这些是具有许多支持方法的S4对象,包括summary提供大量有用输出的方法:

    # Summarize the model fit ## lavaan (0.5-14) converged normally after  12 iterations
    
    ## 
    ##   Number of observations                           500
    ## 
    ##   Estimator                                         ML
    ##   Minimum Function Test Statistic                2.994
    ##   Degrees of freedom                                 1
    ##   P-value (Chi-square)                           0.084
    ## 
    ## Parameter estimates:
    ## 
    ##   Information                                 Expected
    ##   Standard Errors                             Standard
    ## 
    ##                    Estimate  Std.err  Z-value  P(>|z|)
    ## Regressions:
    ##   ILL ~
    ##     IMM               0.600    0.036   16.771    0.000
    ##   IMM ~
    ##     DEP               0.630    0.035   18.140    0.000
    ## 
    ## Variances:
    ##     ILL               0.639    0.040
    ##     IMM               0.602    0.038
    
     ## lavaan (0.5-14) converged normally after  11 iterations
    
    ## 
    ##   Number of observations                           500
    ## 
    ##   Estimator                                         ML
    ##   Minimum Function Test Statistic              198.180
    ##   Degrees of freedom                                 1
    ##   P-value (Chi-square)                           0.000
    ## 
    ## Parameter estimates:
    ## 
    ##   Information                                 Expected
    ##   Standard Errors                             Standard
    ## 
    ##                    Estimate  Std.err  Z-value  P(>|z|)
    ## Regressions:
    ##   DEP ~
    ##     ILL               0.330    0.042    7.817    0.000
    ##   ILL ~
    ##     IMM               0.600    0.036   16.771    0.000
    ## 
    ## Variances:
    ##     DEP               0.889    0.056
    ##     ILL               0.639    0.040
    

    理解SEM模型的最佳方法之一是使用路径图直观地检查模型。感谢这个semPlot包,这在R中很容易做到.2首先,安装semPlot

    # Official version
     
    # Or to install the dev version
     install_github("semPlot", "SachaEpskamp")
    

    接下来,我们加载库并制作一些路径图。

     semPaths(mod1fit, what = "est",   tree", title   , style = "LISREL")
    

     

    semPaths(mod2fit,  "est",  "tree",  style = "LISREL")
    

     

    这两个简单的路径模型看起来很棒。但哪个更好?我们可以运行在一个简单的卡方检验lavaan的对象mod1fitmod2fit

    anova(mod1fit, mod2fit)
    
    ## Chi Square Difference Test
    ## 
    ##         Df  AIC  BIC  Chisq Chisq diff Df diff Pr(>Chisq)    
    ## mod1fit  1 3786 3803   2.99                                  
    ## mod2fit  1 3981 3998 198.18        195       0     <2e-16 ***
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    

    我们可以非常清楚地看到我们更喜欢模型2.让我们看一下模型2的一些属性,我们可以通过lavaan带有便利函数的对象来访问它们。

    # Goodness of fit measures
    fitMeasures(mod2fit)
    
    ##              fmin             chisq                df            pvalue 
    ##             0.198           198.180             1.000             0.000 
    ##    baseline.chisq       baseline.df   baseline.pvalue               cfi 
    ##           478.973             3.000             0.000             0.586 
    ##               tli              nnfi               rfi               nfi 
    ##            -0.243            -0.243             1.000             0.586 
    ##              pnfi               ifi               rni              logl 
    ##             0.195             0.587             0.586         -1986.510 
    ## unrestricted.logl              npar               aic               bic 
    ##         -1887.420             4.000          3981.020          3997.878 
    ##            ntotal              bic2             rmsea    rmsea.ci.lower 
    ##           500.000          3985.182             0.628             0.556 
    ##    rmsea.ci.upper      rmsea.pvalue               rmr        rmr_nomean 
    ##             0.703             0.000             0.176             0.176 
    ##              srmr       srmr_nomean             cn_05             cn_01 
    ##             0.176             0.176            10.692            17.740 
    ##               gfi              agfi              pgfi               mfi 
    ##             0.821            -0.075             0.137             0.821 
    ##              ecvi 
    ##             0.412
    
    
    # Estimates of the model parameters
    parameterEstimates(mod2fit, ci = TRUE, boot.ci.type = "norm")
    
    ##   lhs op rhs   est    se      z pvalue ci.lower ci.upper
    ## 1 DEP  ~ ILL 0.330 0.042  7.817      0    0.247    0.413
    ## 2 ILL  ~ IMM 0.600 0.036 16.771      0    0.530    0.670
    ## 3 DEP ~~ DEP 0.889 0.056 15.811      0    0.779    1.000
    ## 4 ILL ~~ ILL 0.639 0.040 15.811      0    0.560    0.718
    ## 5 IMM ~~ IMM 0.998 0.000     NA     NA    0.998    0.998
    
    
    # Modification indices
    modindices(mod2fit, standardized = TRUE)
    
    ##    lhs op rhs    mi    epc sepc.lv sepc.all sepc.nox
    ## 1  DEP ~~ DEP   0.0  0.000   0.000    0.000    0.000
    ## 2  DEP ~~ ILL 163.6 -0.719  -0.719   -0.720   -0.720
    ## 3  DEP ~~ IMM 163.6  0.674   0.674    0.675    0.674
    ## 4  ILL ~~ ILL   0.0  0.000   0.000    0.000    0.000
    ## 5  ILL ~~ IMM    NA     NA      NA       NA       NA
    ## 6  IMM ~~ IMM   0.0  0.000   0.000    0.000    0.000
    ## 7  DEP  ~ ILL   0.0  0.000   0.000    0.000    0.000
    ## 8  DEP  ~ IMM 163.6  0.675   0.675    0.675    0.676
    ## 9  ILL  ~ DEP 163.6 -0.808  -0.808   -0.808   -0.808
    ## 10 ILL  ~ IMM   0.0  0.000   0.000    0.000    0.000
    ## 11 IMM  ~ DEP 143.8  0.666   0.666    0.666    0.666
    ## 12 IMM  ~ ILL   0.0  0.000   0.000    0.000    0.000
    

    而已。从输入方差 - 协方差矩阵到拟合模型,绘制路径图,与备用模型进行比较,最后检查首选模型的参数。 

    还有问题吗?联系我们!

     

    大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

    统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

    点击这里给我发消息​QQ:3025393450

    【服务场景】  

    科研项目; 公司项目外包;线上线下一对一培训;数据采集;学术研究;报告撰写;市场调查。

    【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询服务

    【大数据部落】大数据部落提供定制化的一站式数据挖掘和统计分析咨询服务

    转载于:https://www.cnblogs.com/tecdat/p/10684583.html

    展开全文
  • 结构方程模型的原理与应用》是学习结构方程的必读的著作。全书总共11章。 第一章:结构方程模型概说。 上个世纪,影响社会科学研究最大的统计方法是因素分析和回归分析。潜在结构因素分析模型和路径模型的结合,...
  • 结构方程模型(SEM)理论篇 (SEM 1)

    千次阅读 2020-11-30 15:34:17
    R语言结构方程SEM实现详解 1基本理论介绍 1.1模型构成 1.1.1变量 1.1.2路径图 1.1.3路径图示例 1.1.4 模型拟合整体评价 1.1.5SEM形式 1.1.6路径分析 2可实现软件 3lavaan实现
  • 今天要解读的依然是一篇教学文献:The Basics of Structural ...结构方程模型是: 用来检验显变量与潜变量关系假设的综合性的统计技巧 用来表示,估计或者检验变量间理论关系的技巧 用来探究一系列潜变量和显变量因
  • 连续自变量与分类调节变量 这种类型的调节效应需要采用分组回归分析,所谓分组 回归分析既是根据调节变量的分类水平,建立分组回归方程进行分析,回归方程为y=a+bx+e。当然也可以采用将 调节变量转换为伪变量以后...
  • 数学模型分类

    2020-01-12 22:12:23
    数学模型分类 根据应用理论分类 人口模型 交通模型 环境模型 生态模型 城镇规划模型 再生资源利用模型 污染模型 根据数学方法分类 初等模型 几何模型 微分方程模型 统计回归模型 数学规划模型 ...
  • 基于R语言的结构方程:lavaan简明教程 [中文翻译版]

    千次阅读 多人点赞 2019-10-08 03:31:35
    lavaan简明教程 [中文翻译版] 译者注:此文档原作者为比利时Ghent大学的Yves Rosseel博士,lavaan亦为其开发,完全开源、免费。我在学习的时候顺手翻译了一下,向Yves的开源精神致敬。...模型语法 例1:验证性...
  • 数学建模-常见模型整理及分类

    万次阅读 多人点赞 2018-03-05 20:58:11
    按模型的数学方法分:几何模型、图论模型、微分方程模型、概率模型、最优控制模型、规划论模型、马氏链模型等。2. 按模型的特征分:静态模型和动态模型,确定性模型和随机模型,离散模型和连续性模型,线性模型和非...
  • 模型介绍:线性分类器(linear classification),是一种假设特征与分类结果存在线性关系的模型。这个模型通过累加计算每个维度的特征与各自权重的乘机来帮助类别决策。
  • 本文提出了一种新的深度学习分类模型——随机多模型深度学习(RMDL),该模型在诸多领域都达到了最佳效果。RMDL通过整合一系列深度学习框架解决了寻找既能使模型体系结构最优,又能提高模型鲁棒性、准确率的问题。...
  • LSTM模型结构讲解

    千次阅读 2019-11-29 11:29:32
    人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都...例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推...
  • 统计学习方法——模型与问题分类

    千次阅读 2017-03-04 16:31:16
    0. 写在前面在这一讲中,我们主要介绍一下模型的类别以及问题的类别,并对课后习题进行相应的分析。1. 模型的类型我们知道,统计学习主要包括监督学习、非监督学习、半监督学习和强化学习。那么在统计学习方法一书中...
  •   多传感器信息融合的结构模型一般有四种基本形式:  集中式、分散式和分级式结构,分级式又分为有反馈结构和无反馈结构。集中式结构(使用卡尔曼滤波技术)  F(k)为状态转移矩阵, X(k)是k时刻目标的状态向量...
  • 使用AMOS图形建立和检测模型(3)

    千次阅读 2014-08-23 20:05:42
    这里 y 是因变量上包含观测得分的向量, i 是表示y-截距的单位向量, X 是连续分布或分类(编码)自变量的矩阵, B 是回归权重向量, e 表示残差向量或误差或不能由模型解释的剩余得分。 SEM 由一系列多重回归...
  • 1. 线性算法模型 0x1:线性回归和线性分类中的“线性”指的是什么 线性(linear),指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数;非线性(non-linear)则指不按比例、不成直线的关系,...
  • 广义估计方程GEE

    万次阅读 多人点赞 2019-03-08 21:52:54
    本文大部分内容来源于书本和论文等资料,...广义估计方程(generalized estimating equation, GEE)用于估计广义线性模型的参数(其中线性模型的结果之间可能存在未知的相关性)。于1986年由Liang和Zeger首次提出...
  • 1. 线性方程组 0x1:无处不在的线性方程组 日常生活或生产实际中经常需要求一些量,用未知数 x1,x2,....,xn表示这些量,根据问题的实际情况列出方程组,而最常见的就是线性方程组(当然并不是说只能用线性方程...
  • 一种新型的基于隐马尔科夫模型—支持向量机模型的文本分类方法 英语------>中文
  • 展示一下序列分类器在框架中的哪个位置,简单叙述一下他们的代码。文中还会介绍马尔科夫名字空间是怎么组织,在这个组织的支撑下是如何产生结果的。也会稍微提一下隐条件随机场,这才是我写这个系列的主要目的。
  • 数学建模四大模型总结

    万次阅读 多人点赞 2019-06-13 15:31:53
    文章目录数学建模四大模型总结1 、优化模型1.1 数学规划模型1.2 微分方程模型1.3 图论与网络优化问题1.4 概率模型1.5 组合优化经典问题现代优化算法:禁忌搜索;模拟退火;遗传算法;人工神经网络2、分类模型2.1 ...
  • 分类模型原理及优缺点整理总结

    千次阅读 2020-04-06 23:40:07
    除了上篇博客提到的决策树与剪枝、bagging与随机森林、极端随机树...KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的某个(些)属性的平均值赋给该样本,就可以得到该样本...
  • 状态空间模型

    万次阅读 2016-02-03 17:50:30
    一、状态空间模型简述 状态空间模型是动态时域模型,以隐含着的时间为自变量。状态空间模型包括两个模型: ...状态空间模型分类  状态空间模型按所受影响因素的不同分为: (1)确定性状态空间模型 (2)随机性状态
  • 前言 最近在研究SSD算法,感觉SSD是继Faster RCNN之后的最具有开创性的工作,SSD可以和Faster-RCNN的精度与Yolo的速度相媲美,现在很多公司还在应用...SSD模型结构 先给出经典的网络结构图,以ssd300为例 可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,859
精华内容 8,743
关键字:

结构方程模型分类