首页 > 其他分享 >Applied Spatial Statistics(十)多级模型 Multi-level models(变化的截距和斜率)

Applied Spatial Statistics(十)多级模型 Multi-level models(变化的截距和斜率)

时间:2024-11-25 23:03:49浏览次数:7  
标签:Applied 截距 Multi pct states state bach var model

Applied Spatial Statistics(十)多级模型 Multi-level models(变化的截距和斜率)


这是一个如何使用 python 和 pymer4 包拟合 MLM 模型的示例。Pymer4 是 R 中著名的 lme4 包的 python 版本,其文档可在以下位置找到:https://eshinjolly.com/pymer4/

#pip install pymer4
import warnings

import numpy as np
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
import libpysal as ps
from libpysal.weights import Queen
from esda.moran import Moran

from pymer4.models import Lmer

我们将使用相同的投票数据来证明 MLM。

voting = pd.read_csv('https://raw.github.com/Ziqi-Li/gis5122/master/data/voting_2020_with_gov.csv')

#voting[['median_income']] = voting[['median_income']]/10000
shp = gpd.read_file("https://raw.github.com/Ziqi-Li/gis5122/master/data/us_counties.geojson")
#Merge the shapefile with the voting data by the common county_id
shp_voting = shp.merge(voting, on ="county_id")

#Dissolve the counties to obtain boundary of states, used for mapping
state = shp_voting.dissolve(by='STATEFP')

拟合 MLM 模型(根据州改变截距和斜率)

warnings.filterwarnings('ignore')

model_all_states = Lmer('new_pct_dem ~ 1 + pct_bach + (1 + pct_bach | state)', data=shp_voting)

model_all_states.fit()
Model failed to converge with max|grad| = 0.129117 (tol = 0.002, component 1) 

Linear mixed model fit by REML [’lmerMod’]
Formula: new_pct_dem~1+pct_bach+(1+pct_bach|state)

Family: gaussian	 Inference: parametric

Number of observations: 3102	 Groups: {'state': 47.0}

Log-likelihood: -12037.964 	 AIC: 24087.929

Random effects:

                 Name      Var     Std
state     (Intercept)  119.701  10.941
state        pct_bach    0.076   0.276
Residual               128.334  11.328

               IV1       IV2   Corr
state  (Intercept)  pct_bach -0.641

Fixed effects:
Estimate2.5_ci97.5_ciSEDFT-statP-valSig
(Intercept)18.32714.82521.8301.78742.61110.2560.0***
pct_bach0.7910.6930.8880.05042.96215.8520.0***

模型 AIC

model_all_states.AIC
24087.928602917116

边际 R2:描述仅由固定因素解释的方差比例

条件 R2:描述由固定和随机因素解释的方差比例

来自 Nakagawa 和 Schielzeth (2012) 链接

def r_square(model):
    var_a = np.sum(model.ranef_var.Var[:-1]) #Sum of variances from random effects
    var_e = model_all_states.ranef_var.Var[-1] #Error variance 
    var_f = np.sum(model.design_matrix*model.coefs.Estimate,axis=1).var() #Sum of variances from fixed effects
    
    marginal = var_f/(var_f+var_a+var_e)
    
    conditional = (var_f+var_a)/(var_f+var_a+var_e)
    
    print("marginal R2:",marginal)
    print("conditional R2:",conditional)
    return
r_square(model_all_states)
marginal R2: 0.18633369427772392
conditional R2: 0.5791354545442352

我们还可以看到随机效应的分布,它们应该是从多元正态分布中得出的,截距的方差为 119.701,pct_bach 的方差为 0.076,相关性为 -0.641。

model_all_states.ranef.hist()
array([[<Axes: title={'center': 'X.Intercept.'}>,
        <Axes: title={'center': 'pct_bach'}>]], dtype=object)

在这里插入图片描述

plt.scatter(model_all_states.ranef.iloc[:,0], model_all_states.ranef.iloc[:,1])
plt.xlabel("Random effect of intercept")
plt.ylabel("Random effect of pct_bach")
Text(0, 0.5, 'Random effect of pct_bach')

在这里插入图片描述

负相关表示,当截距较大时,各州的斜率较小(较平坦)。

如果我们绘制随机效应图来显示每个状态如何偏离整体效应,则图将如下所示:

state.plot(model_all_states.ranef.iloc[:,0].values,legend=True)
plt.title("Varying intercept")
Text(0.5, 1.0, 'Varying intercept')

在这里插入图片描述

state.plot(model_all_states.ranef.iloc[:,1].values,legend=True)
plt.title("Varying slope of pct_bach")
Text(0.5, 1.0, 'Varying slope of pct_bach')

在这里插入图片描述

随机效应再次向我们展示了与固定效应的偏差。
您还可以添加固定效应估计值以获得总效应图(固定 + 随机)。
也就是说,为截距图添加 18.327,为巴赫图添加 0.791。

效果的置信区间(固定和随机)

model_all_states.confint(method='boot', level=0.95, nsim=1000)
Computing bootstrap confidence intervals ...


91 warning(s): Model failed to converge with max|grad| = 0.00200431 (tol = 0.002, component 1) (and others)
2.5 %97.5 %
sd_(Intercept)|state8.01320413.574314
cor_pct_bach.(Intercept)|state-0.823212-0.339756
sd_pct_bach|state0.1951090.358206
sigma11.05454711.600071
(Intercept)14.86104622.092519
pct_bach0.6811970.886333

它们都具有统计学意义,95% 置信区间不包括零。

但是,如果任何置信区间包含零,则它在统计学上不显著。

如果随机效应不显著,则意味着各组之间没有差异。

如果固定效应不显著,则意味着它对因变量没有全局影响。
td>


(Intercept)
14.861046
22.092519


pct_bach
0.681197
0.886333

它们都具有统计学意义,95% 置信区间不包括零。

但是,如果任何置信区间包含零,则它在统计学上不显著。

如果随机效应不显著,则意味着各组之间没有差异。

如果固定效应不显著,则意味着它对因变量没有全局影响。

标签:Applied,截距,Multi,pct,states,state,bach,var,model
From: https://blog.csdn.net/weixin_44026026/article/details/144043034

相关文章

  • 深入理解与应用 multipart/form-data:文件上传与预览实现解析
    1.理解multipart/form-datamultipart/form-data是一种在HTTP请求中使用的MIME类型,主要用于在客户端和服务器之间传输包含文件或二进制数据的表单数据。它通过一个边界(boundary)来分隔不同的表单字段和文件数据。简单来说,multipart/form-data类型用于确保在表单中提......
  • Windows 开启双重验证 OTP multiotp 两步认证 动态口令登录
    缘起前几天朋友用来做winnas的电脑远程桌面被爆破中了勒索病毒,还好是在调试阶段,损失不大。是因为ipv4公网ip加上设置的密码太弱了,被人轻松搞掉。想起我也有一台常开的本地windows,虽说有点防护,但还是感觉不到位,前车之鉴后车之师,我决定给windows装个两步验证,让自己安心。折腾两步......
  • L2G2000 - Lagent:从零搭建你的 Multi-Agent
    Lagent是一个轻量级开源智能体框架,旨在让用户可以高效地构建基于大语言模型的智能体。同时它也提供了一些典型工具以增强大语言模型的能力。环境配置开发机选择30%A100,镜像选择为Cuda12.2-conda。#创建环境condacreate-nlagentpython=3.10-y#激活环境cond......
  • [Javascript] Import the Same JavaScript Module Multiple Times with Cache Busting
    WhenattemptingtoloadthesamemoduletwiceinJavaScriptyou'llhitacacheandcodewon'tre-run.Inscenarioswhereyouactuallydowanttohavestateinyourmodules,you'llhavetouseacache-bustingtechniquebypassingaquerypar......
  • 3的倍数(multiple)
    chuck有一个正整数n,现在他需要把这个正整数拆分为两个正整数x,y,使得满足以下条件:x+y=n(x*y)%3=0请找出有多少种不同的(x,y)满足以上条件。(1,2)和(2,1)是不同的。输入格式:第一行一个正整数n(1<=n<=10^17)。输出格式:一个整数,表示不同的个数。输入样例:......
  • MATH38161 Multivariate Statistics and Machine Learning
    MATH38161MultivariateStatisticsandMachineLearningCourseworkovember2024OverviewThecourseworkisadataanalysisprojectwithawrittenreport.YouwillapplyskillsandtechniquesacquiredfromWeek1toWeek8toanalyseasubsetoftheFMNISTda......
  • 【论文笔记】NeuroLM: a universal multi-task foundation model... (ICLR 2025 Under
    Code:×Data:×目录AbstractIntroductionMethodText-alignedneuraltokenizerMulti-channelautoregressivepre-trainingMulti-taskinstructiontuningResultsDownstreamdatasetsExperimentalresultsAblationonrobustnessAblationoninstructiondatasize......
  • 【NI Multisim14.3软件下载与安装教程】
    ‌Multisim14.3‌是一款由美国国家仪器公司(NI)开发的电路仿真软件,主要用于电子电路的设计、仿真和分析。它适用于工程师、设计师、学生和电子爱好者,帮助他们进行电路设计、测试和验证。主要功能和应用场景Multisim14.3具有以下主要功能和应用场景:‌电路仿真‌:支持交流电路、直......
  • 基于Multisim交通灯(双数码管)黄灯闪烁电路模拟电路(含仿真和报告)
    【全套资料.zip】交通信号灯电路设计Multisim仿真设计数字电子技术文章目录功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真+报告+讲解视频.zip】功能交通信号灯电路仿真状态00:东西方向绿灯亮,南北方向红灯亮,持续时间25S。状态01:东西方向黄......
  • 【论文阅读】【IEEE TGARS】RRNet: Relational Reasoning Network WithParallel Multi
    引言任务:光学遥感显著目标检测-关系推理论文地址:RRNet:RelationalReasoningNetworkWithParallelMultiscaleAttentionforSalientObjectDetectioninOpticalRemoteSensingImages|IEEEJournals&Magazine|IEEEXplore代码地址:rmcong/RRNet_TGRS2021(g......