回归模型,自变量每增加1个标准差,引起的效应值计算
# --per SD increase--
# 一单位变化的标准差sd的效应值变化
## 试验线性回归的结果
## 建立正态分布的因变量var1和自变量var2数据
set.seed(1234)
data=data.frame(var1=rnorm(30,mean = 20,sd=5),
var2=rnorm(30,mean = 30,sd=6))
shapiro.test(data$var2)c
summary(data$var2)
# ----方法1-原始数据连续性变量----
## {回归系数} 直接乘 {sd}
model1 <- lm(var1 ~ var2, data)
sd(data$var2)*model1[["coefficients"]][["var2"]]
# ----方法2-只对自变量进行标准化-----
data$var2_scale <- scale(data$var2,center = T,scale = T)
model2 <- lm(var1 ~ var2_scale, data)
summary(model2)
library(reportReg)
reportReg(model2) # 最终sd解释结果
## 【探索中似乎错误】
# ----方法3-原始数据分类处理----
# 原理是按照sd对数据进行切割
(sdvar2 <- sd(data$var2))
(minvar2 <- min(data$var2))
(maxvar2 <- max(data$var2))
sdvar2*3
sdvar2*7
seq(minvar2,sdvar2*7,sdvar2)
data$var2_sd_cat <- cut(data$var2,
breaks =c(seq(minvar2-0.001,sdvar2*7,sdvar2)),
right = T)
data$var2_sd_cat
# 转为连续性变量
data$var2_sd_cat2 <- as.numeric(data$var2_sd_cat)
data[20:30,c("var2_sd_cat","var2_sd_cat2")]
model3 <- lm(var1 ~ var2_sd_cat2, data)
summary(model3)
reportReg(model3)
reportReg(model2)
sd(data$var2)*model1[["coefficients"]][["var2"]]
版权声明:本文为weixin_46623488原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。