tft每日頭條

 > 圖文

 > r語言做回歸如何篩選變量

r語言做回歸如何篩選變量

圖文 更新时间:2025-01-20 22:39:16
前言

本文使用随機生成的數據集進行批量單因素logistic回歸分析,并提取P<0.05的變量以供後續多因素logistic回歸。後續會繼續分享一些R語言分析代碼,歡迎大家一起讨論學習。

構建數據,Y為因變量,其他為自變量

構建數據

r語言做回歸如何篩選變量(R語言logistic回歸一)1

生成随機數據的代碼截圖

#0.構建數據,Y為因變量,其他為自變量

set.seed(1234)#設置随機種子,保證生成數據一緻

log_data<- data.frame(Y = sample(0:1, 600, replace = T),

sex=sample(1:2, 600, replace = T),

edu=sample(1:4, 600, replace = T),

BMI=rnorm(600, mean = 22, sd = 3),

白蛋白=rnorm(600, mean = 35, sd = 6),

随機血糖=rnorm(600, mean = 4.75, sd = 1.2))

描述數據

r語言做回歸如何篩選變量(R語言logistic回歸一)2

對生成的數據進行描述

可以看到sex與edu變量顯示的“數值型”,因此需要進行一下轉化:

數據處理,因子化

r語言做回歸如何篩選變量(R語言logistic回歸一)3

因子化

VarsC<-c("Y","sex","edu")

for(i in VarsC){

log_data[,i] <- as.factor(log_data[,i])

} # 利用循環因子化

然後我們再描述一下數據:

r語言做回歸如何篩選變量(R語言logistic回歸一)4

可以看到sex與edu已經變成分類變量,這樣繼續進行接下來的分析。

準備進行分析的自變量

varsU<-names(log_data[,2:6]) # 自變量

批量單因素logistic回歸

r語言做回歸如何篩選變量(R語言logistic回歸一)5

批量單因素logistic回歸 代碼截圖

Result<-c()

for (i in 1:length(varsU)){

fit<-glm(substitute(Y~x,list(x=as.name(varsU[i]))),data=log_data,family=binomial())

fitSum<-summary(fit)

result1<-c()

result1<-rbind(result1,fitSum$coef)

OR<-exp(fitSum$coef[,'Estimate'])

result1<-data.frame(cbind(result1,cbind(OR,exp(confint(fit)))))

result1$Characteristics<-varsU[i] #添加變量名

Result<-rbind(Result,result1[-1,])#[-1,],删除常數項

}

提取制表變量重命名,提取有意義的變量

r語言做回歸如何篩選變量(R語言logistic回歸一)6

Uni_log<-data.frame(Result[,c(1,4:8)]) #提取"P","OR","CIlower","CIupper"和變量名

colnames(Uni_log)[2:5]<-c("P","OR","CIlower","CIupper")#變量重命名

ExtractVar<-unique(Uni_log$Characteristics[Uni_log$"P"<0.05])#提取有意義的變量

查看結果,輸出文檔

r語言做回歸如何篩選變量(R語言logistic回歸一)7

Uni_log

write.csv(Uni_log,file="Uni_log.csv")#輸出文檔

r語言做回歸如何篩選變量(R語言logistic回歸一)8

Uni_log結果

r語言做回歸如何篩選變量(R語言logistic回歸一)9

輸出的csv文件截圖,方便制作三線表

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved