当前位置: 首页 > backend >正文

从0开始学习R语言--Day44--LR检验

之前我们提到用LM检验的方式,来判断数据在空间上是否受到邻近数据及其残差的影响,但是LM检验是采用直接计算的方式,只关注了数据的残差平方和,没有数据关于依赖项的考虑,容易被结果误导。

而LR检验虽然在结果上有时候跟LM的计算差不多,但是其意义和公式都是为了考虑邻近数据对数据原本的影响,且更灵活,他在多出来的考虑项外多出一个系数用于判断是否真的受到邻近数据的影响(当然最好是先进行Moran'sI检验,对空间溢出性做判断,这样更严谨,因为有时候只对模型本身参数做计算检验会有幻觉,出现模型本身拟合很好,但是空间溢出性不显著的结果)。

以下是LR-lag和LR-error的例子:

# 加载必要的包
library(spdep)
library(splm)# 生成模拟空间数据(示例)
set.seed(123)
n <- 100  # 100个观测点
coords <- cbind(runif(n), runif(n))  # 随机生成坐标
knn <- knn2nb(knearneigh(coords, k = 4))  # 基于KNN构建空间权重矩阵
W <- nb2listw(knn, style = "W")  # 行标准化权重矩阵# 生成解释变量和被解释变量
X <- rnorm(n)
rho <- 0.5  # 空间自回归系数(模拟真实存在空间滞后效应)
y <- solve(diag(n) - rho * listw2mat(W)) %*% (X * 1.5 + rnorm(n, sd = 0.5))# 估计 SAR 模型(含空间滞后项)
sar_model <- lagsarlm(y ~ X, listw = W, method = "eigen")# 估计 OLS 模型(无空间滞后项)
ols_model <- lm(y ~ X)# LR-lag 检验(比较 SAR 和 OLS)
LR_lag <- 2 * (logLik(sar_model) - logLik(ols_model))
p_value <- pchisq(LR_lag, df = 1, lower.tail = FALSE)  # 自由度df=1(因为只检验rho是否=0)cat("LR-lag 统计量:", LR_lag, "\nP值:", p_value, "\n")
# 如果 P < 0.05,说明空间滞后项显著,SAR 比 OLS 更好# 继续使用之前生成的数据# 估计 SEM 模型(含空间误差项)
sem_model <- errorsarlm(y ~ X, listw = W, method = "eigen")# 估计 OLS 模型(无空间误差项)
ols_model <- lm(y ~ X)# LR-error 检验(比较 SEM 和 OLS)
LR_error <- 2 * (logLik(sem_model) - logLik(ols_model))
p_value <- pchisq(LR_error, df = 1, lower.tail = FALSE)  # 自由度df=1(检验λ是否=0)cat("LR-error 统计量:", LR_error, "\nP值:", p_value, "\n")
# 如果 P < 0.05,说明空间误差项显著,SEM 比 OLS 更好

输出:

LR-lag 统计量: 88.36325 
P值: 5.447355e-21 
LR-error 统计量: 56.78365 
P值: 4.864945e-14 

这里的输出显示两个p值都小于,结果显著,推翻原假设,即不能退化为SAR或SEM模型,要用SDM,即杜宾模型去拟合数据。不过要特别注意的是,有时候会出现Wald检验与LR-lag冲突的现象,建议先看样本量,如果样本量较小(<100),那么优先考虑LR-lag,并检查空间权重矩阵是否合理,用其他的空间权重矩阵验证结果。

http://www.xdnf.cn/news/15182.html

相关文章:

  • Android simpleperf生成火焰图
  • 炎热工厂救援:算法打造安全壁垒
  • MS1826+MS9332 4K@30Hz HD4×2视频分割器
  • ## SQLITE:多表(子母表)联合查询【DA_Project笔记】
  • 如何将 iPhone 文件传到 Mac?
  • Python七彩花朵
  • 4万亿英伟达,凭什么?
  • 安全监测预警平台的应用场景
  • Linux 下使用 VS Code 远程 GDB 调试 ARM 程序
  • 探索飞算 JavaAI 进阶:解锁高效Java开发的新维度
  • Selenium 自动化实战技巧【selenium】
  • springboot生成pdf方案之dot/html/图片转pdf三种方式
  • PDF 转图助手 PDF2JPG 绿色版:免安装直接用,急处理文件的救急小天使
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第九篇(排名不分先后)】
  • GPT和MBR分区
  • 云蝠智能 VoiceAgent重构企业呼入场景服务范式
  • 重学前端004 --- html 表单
  • 从二维到三维:数字孪生如何重塑UI前端设计
  • 【Git】git的回退功能
  • Flutter优缺点
  • 港科大 NMPC 控制下的高效自主导航!SkyVLN:城市环境无人机视觉语言导航与非线性模型预测控制
  • 哪些因素会影响NMR杂质检测的准确性
  • 全面掌控 Claude Code:命令 + 参数 + 快捷键一文全整理(建议收藏)
  • Linux的基础I/O
  • 如何在 PyCharm 批量调整代码缩进?PyCharm 调整代码格式化和代码缩进的快捷键有哪些?
  • S7-1200 与 S7-300 CPS7-400 CP UDP 通信 Step7 项目编程
  • 最常用的JS加解密场景MD5
  • Vue 3 入门——自学习版本
  • 分布式推客系统全栈开发指南:SpringCloud+Neo4j+Redis实战解析
  • C#事件:从原理到实践的深度剖析