# fitlme


拟合线性混合效应模型

函数库: TyMachineLearning

# 语法

lme = fitlme(x, formula, group)

# 说明

lme = fitlme(x, formula, group) 返回一个线性混合效果模型 lme,由公式 formula 指定特征变量之间的关系,选择特定的特征变量 group 进行线性混合效应模型的拟合。

# 示例

拟合线性混合效应模型
加载数据集,该数据中 lasdata_x 大小为 205×3,其中每行表示每一个观测值,3 列特征变量分别表示为 Horsepower、CityMPG、EngineType。
using CSV
using TyMachineLearning
using DataFrames
file1 = joinpath(pkgdir(TyMachineLearning), "data/Regression/MXL_data.csv")
lasdata_x = CSV.read(file1, DataFrame; header=1)

打印 lasdata_x 的前 5 行进行观测。

lasdata_x[1:5,:]
5×3 DataFrame
 Row │ Horsepower  CityMPG  EngineType 
     │ Float64     Int64    Int64      
─────┼─────────────────────────────────
   1 │      111.0       21          13
   2 │      111.0       21          13
   3 │      154.0       19          37
   4 │      102.0       24          35
   5 │      115.0       18          35

拟合城市中每加仑英里数 (CityMPG) 的线性混合效应模型,设置对马力 (Horsepower) 有固定效应,按发动机类型 (EngineType) 分组。

formula = "CityMPG~Horsepower"
group = "EngineType"
lme = fitlme(lasdata_x, formula, group)

打印线性混合效应模型的相关参数及属性。

lme.summary()
PyObject <class 'statsmodels.iolib.summary2.Summary'>
"""
         Mixed Linear Model Regression Results
=======================================================
Model:            MixedLM Dependent Variable: CityMPG
No. Observations: 203     Method:             REML
No. Groups:       7       Scale:              12.8073
Min. group size:  1       Log-Likelihood:     -560.9230
Max. group size:  146     Converged:          Yes
Mean group size:  29.0
-------------------------------------------------------
            Coef.  Std.Err.    z    P>|z| [0.025 0.975]
-------------------------------------------------------
Intercept   41.482    2.942  14.100 0.000 35.716 47.248
Horsepower  -0.145    0.008 -17.450 0.000 -0.162 -0.129
Group Var   46.914    9.744
=======================================================

"""

上表反映了模型拟合的相关信息以及系数估计。

# 输入参数

x - 输入数据
数值矩阵 | DataFrame表格
输入数据,其中包括响应变量、预测变量和分组变量,指定为表或数值矩阵,须使用公式 formula 指定变量之间的关系。

数据类型: DataFrame | Matrix

formula - 指定变量之间的关系
指定公式,String类型
输入数据,其中包括响应变量、预测变量和分组变量,指定为表或数值矩阵,须使用公式 formula 指定变量之间的关系。

例如,y ~ InitialWeight + Program + Week + Program:Week 表示因变量 y 与 InitialWeight、Program、Week 以及 Program:Week 的线性关系。 表示线性混合模型的公式。它是一个字符串,按照公式语法描述了因变量和自变量之间的关系。在这个公式中,因变量和自变量之间使用 ~ 符号进行分隔,自变量可以使用 + 符号进行连接,而 * 符号表示自变量之间的交互作用。

例如:formula = "CityMPG~Horsepower"表示 CityMPG 为自变量,Horsepower 为响应变量。

数据类型: String

group - 分组变量
指定分组变量,String 类型
按照分组变量进行分组,以数据的该分组进行模型拟合。

例如:formula = "CityMPG~Horsepower"表示 CityMPG 为自变量,Horsepower 为响应变量。

在混合效应模型中,分组变量用于标识不同的观测单元,例如被试者或实验单位

数据类型: String

# 输出参数

lme - 拟合线性混合效应模型
模型对象
返回线性混合效应模型对象,可以通过 lme.summary() 返回模型参数的相关信息。
  • lme.fittedvalues:模型的拟合值
  • lme.random_effects:模型的随机效应相关参数
  • lme.pvalues:系数估计的显著性 p 值
  • lme.tvalues:系数估计的显著性 t 统计量
  • lme.method:混合效应模型使用的方法
  • lme.summary:模型参数的属性表

数据类型: 模型对象

# 另请参阅

fitglm | fitclinear | fitcecoc