Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用base R和ggplot绘制逻辑回归模型的结果 **创建一个新的数据帧并添加一个名为surv24的二进制列** (数据=24,1,0) 白细胞抗原时间surv24 1230至651 2750至1561 34300目前1001 42600至1341 56000目前160 6 10500目前108 1 7 4000 17 0 **logistic回归模型** logistic.model_R_Ggplot2 - Fatal编程技术网

如何使用base R和ggplot绘制逻辑回归模型的结果 **创建一个新的数据帧并添加一个名为surv24的二进制列** (数据=24,1,0) 白细胞抗原时间surv24 1230至651 2750至1561 34300目前1001 42600至1341 56000目前160 6 10500目前108 1 7 4000 17 0 **logistic回归模型** logistic.model

如何使用base R和ggplot绘制逻辑回归模型的结果 **创建一个新的数据帧并添加一个名为surv24的二进制列** (数据=24,1,0) 白细胞抗原时间surv24 1230至651 2750至1561 34300目前1001 42600至1341 56000目前160 6 10500目前108 1 7 4000 17 0 **logistic回归模型** logistic.model,r,ggplot2,R,Ggplot2,如果没有更多的样本数据,就不可能给出一个工作示例作为答案。因此,我将尝试对您的数据集进行反向工程: set.seed(123) 白细胞37 9550缺失104 0 这看起来相当接近。现在我们将创建您的模型。不清楚您为什么要记录白细胞计数:这会扭曲您的最终结果,并且没有必要,因此我们将仅使用白细胞计数运行模型: logistic.model #>电话: #>glm(公式=surv24~wbc+ag,family=“二项式”,data=leukemia.data) #> #>偏差残差: #>最小

如果没有更多的样本数据,就不可能给出一个工作示例作为答案。因此,我将尝试对您的数据集进行反向工程:

set.seed(123)
白细胞37 9550缺失104 0
这看起来相当接近。现在我们将创建您的模型。不清楚您为什么要记录白细胞计数:这会扭曲您的最终结果,并且没有必要,因此我们将仅使用白细胞计数运行模型:

logistic.model
#>电话:
#>glm(公式=surv24~wbc+ag,family=“二项式”,data=leukemia.data)
#> 
#>偏差残差:
#>最小1季度中值3季度最大值
#> -2.0564  -0.8820   0.4460   0.8258   1.9888  
#> 
#>系数:
#>估计标准误差z值Pr(>z)
#>(截距)5.7107385 2.4790234 2.304 0.02124*
#>wbc-0.0007356 0.0002790-2.636 0.00839**
#>agpresent 2.1593304 0.4922130 4.387 1.15e-05***
#> ---
#>签名。代码:0'***'0.001'***'0.01'*'0.05'.'0.1''1
#> 
#>(二项式族的离散参数取为1)
#> 
#>零偏差:在99个自由度上为138.47
#>剩余偏差:97自由度时为110.56
#>AIC:116.56
#> 
#>Fisher评分迭代次数:4
为了生成漂亮的逻辑线,我们需要创建一个虚拟数据集,其中包含我们希望绘制的x值范围内的样本:

**creat a new data frame and add a binary column called surv24** 

leukemia.data <- data.frame(wbc = leuk$wbc, ag = leuk$ag, time = leuk$time, surv24 =ifelse(leuk$time>=24, 1,0)) 


    Wbc     ag      time    surv24
1   2300    present  65      1
2   750     present  156     1
3   4300    present  100     1
4   2600    present  134     1
5   6000    present  16      0
6   10500   present  108     1
7    4000   absent   17      0




**logistic regression model**

logistic.model <- glm(surv24 ~ log.wbc + ag, family='binomial', data=leukemia.data)
summary(logistic.model)

fit <- predict(logistic.model, type='response')

leuki <- data.frame (cbind(leukemia.data, fit))

ag_present <- subset(leuki[leuki$ag=='present',])
ag_absent <- subset(leuki[leuki$ag=='absent',])


plot(surv24 ~ wbc, data = leukemia.data, main = "Survival Probablity vs Number of White blood cells",  xlab = "Number of White blood cells", ylab = "Surviavla Probablity")
lines(ag_present$wbc, ag_present$fit, col='red')
lines(ag_absent$wbc, ag_absent$fit, col='green')
legend(0.8,85000, legend =c("Simple Linear Regression Model Predictions","Quadratic Regression Model Predictions"), col = c("green","red"), lty = 1:2, cex=0.7)

但是,要在base R图形中重新创建目标绘图,可以执行以下操作:

plot(虚拟测向$wbc[1:151]/1000,虚拟测向$surv24[1:151],
type=“l”,col=“green”,ylim=c(0,1),
ylab=“24周前死亡的概率”,
xlab=“WBC计数”,bty=“L”)
行(dummy_df$wbc[152:302]/1000,dummy_df$surv24[152:302],col=“黑色”)
使用(白血病数据,点数)(白细胞[ag==“存在”]/1000,
surv24[ag==“present”],col=“red”))
有(白血病)数据,分(白细胞[ag==“缺失”]/1000,
surv24[ag==“缺席”,col=“黑色”))
图例(“右上角”,图例=c(“缺席”,“在场”),title=“AG测试”,
lty=c(1,1),col=c(“黑色”、“绿色”),pch=c(1,2),bty=“L”)


现在主要的警告是:既然你已经有了原始生存时间,你可能应该把它作为生存分析,而不是逻辑回归,由于转换为二进制结果会损失大量统计能力。

我同意对数转换部分,如果我的系数接近零,我应该在运行模型后应用它。数据来自包{MASS},包含完整数据集的表被称为(leuk)。您可以使用完整的数据集重做解决方案吗?非常感谢。
dummy_df <- data.frame(ag = rep(c("present", "absent"), each = 151),
                       wbc = rep(seq(0, 15000, 100), 2))

dummy_df$surv24 <- predict(logistic.model, newdata = dummy_df, type = "response")