log-binomial
时间: 2023-11-08 15:04:13 浏览: 256
log-binomial是一种统计学中常用的模型,用于建模二项分布的对数。二项分布是一种离散概率分布,描述了在n个独立的、相同的试验中成功次数的概率分布。log-binomial模型通过对二项概率进行对数变换,可以使得模型更易于处理。
log-binomial模型的参数估计可以通过最大似然估计或广义线性模型来进行。在应用中,log-binomial模型常用于二分类问题,例如在医学研究中,用于建模疾病的发生与否。
相关问题
getwd() setwd( "/Users/jasmma/abl") zxb=read.csv("zxb111.csv") log<-glm(frail~age+txl+BMI+ag+tx+BM+address+sex+marriage+live+smoking+drink+exercise+education+primary+DM+HP+Hrart +Cero+com+pro+income+follow+depress+anxiety+RBC+Hb+HCT+fe+Ca+P+iPTH+alb+cr+bun+com1,family = binomial,data = zxb) summary(log) log.step<-step(log) summary(log.step) # ##############制作表格######## install.packages(c("stats", "MASS", "car", "tidyverse", "knitr", "kableExtra")) library(stats) library(MASS) library(car) library(tidyverse) library(knitr) library(kableExtra) kable(summary(log.step)$coefficients, align = "c", caption = "Logistic Regression Results") %>% kable_styling(bootstrap_options = "hover", full_width = F) %>% column_spec(1, bold = T) %>% column_spec(4, color = "white", background = "steelblue") ############### 将结果转化为表格形式##### result <- data.frame( variable = names(log.step$coefficients)[-1], # 变量名称 beta = coef(log.step)[-1], # β系数 wald_stat = summary(log.step)$coefficients[-1, "z"], # Wald统计量 se = summary(log.step)$coefficients[-1, "Std. Error"], # 标准误差 or = exp(coef(log.step)[-1]), # 比值比 ci_low = exp(confint(log.step)[-1, 1]), # 置信区间下限 ci_high = exp(confint(log.step)[-1, 2]), # 置信区间上限 p_value = summary(log.step)$coefficients[-1, "Pr(>|z|)"] # P值 )
这段代码是进行 logistic 回归分析的,包括数据读入、模型拟合、模型选择以及结果展示等步骤。其中,使用step()函数进行模型选择,生成的模型结果通过summary()函数进行总结统计,并通过kable()和kableExtra()函数将结果转化为表格形式进行展示。最后,将结果保存到result数据框中。
LogModel<-glm(y~.,data=newData,family=binomial(link="logit")) LogFit<-predict(object=LogModel,newdata=Data,type="response") Data$Log.scores<-LogFit library("ROCR") par(mfrow=c(2,2)) pd<-prediction(Data$Log.scores,Data$y) pf1<-performance(pd,measure="rec",x.measure="rpp") pf2<-performance(pd,measure="prec",x.measure="rec") plot(pf1,main="模式甄别的累计回溯精度曲线") plot(pf2,main="模式甄别的决策精度和回溯精度曲线") Data.Sort<-Data[order(x=Data$Log.scores,decreasing=TRUE),] P<-0.30 N<-length(Data[,1]) NoiseP<-head(Data.Sort,trunc(N*P)) colP<-ifelse(1:N %in% rownames(NoiseP),2,1) plot(Data[,1:2],main="SMOTE处理后的模式甄别结果(30%)",xlab="x1",ylab="x2",pch=as.integer(as.vector(Data[,3]))+1,cex=0.8,col=colP) LogModel<-glm(y~.,data=Data,family=binomial(link="logit")) LogFit<-predict(object=LogModel,newdata=Data,type="response") Data$Log.scores<-LogFit Data.Sort<-Data[order(x=Data$Log.scores,decreasing=TRUE),] NoiseP<-head(Data.Sort,trunc(N*P)) colP<-ifelse(1:N %in% rownames(NoiseP),2,1) plot(Data[,1:2],main="平衡化处理前的模式甄别结果(30%)",xlab="x1",ylab="x2",pch=as.integer(as.vector(Data[,3]))+1,cex=0.8,col=colP)
这段代码使用了逻辑回归模型(Logistic Regression)来进行二分类问题的预测。首先使用glm函数来创建逻辑回归模型(LogModel),然后使用predict函数来预测数据集(Data)的输出(LogFit),并将预测值保存在数据集(Data)的Log.scores列中。接下来使用ROCR包来创建累计回溯精度曲线(pf1)和决策精度和回溯精度曲线(pf2)。然后按照预测值从高到低对数据集(Data)进行排序(Data.Sort),并将预测值最高的30%数据点作为噪声点(NoiseP)。使用ifelse函数将噪声点的颜色设置为红色(2),其他点的颜色设置为蓝色(1),并将颜色信息保存在colP中。最后使用plot函数将处理后的数据集(Data)可视化,展示了噪声点过滤前后的模式甄别结果。
阅读全文