# 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