【问题标题】:Plotting Logistic Regression in R在 R 中绘制逻辑回归
【发布时间】:2014-04-22 10:58:03
【问题描述】:

如何绘制逻辑回归?我想在 y 轴上绘制因变量,并在 x 上独立。我调用了系数并得到了输出,所以脚本上没有错误。

这是自变量 (SupPres) 的数据:

#Set the range for water supply pressure
SupPres <- c(20:120)
#Create a normal distribution for water supply pressure
SupPres <- rnorm(3000, mean=70, sd=25)   

逻辑回归和创建 y 变量:

#Create logistic regression
z=1+2*NozHosUn+3*SupPres+4*PlaceSet+5*Hrs4+6*WatTemp
z <- (z-mean(z))/sd(z)
pr = 1/(1+exp(-z))
y <- rbinom(3000,1,pr)
DishWa=data.frame(y=y, NozHosUn=NozHosUn,SupPres=SupPres,
               PlaceSet=PlaceSet,Hrs4=Hrs4,WatTemp=WatTemp)
glm(y~NozHosUn+SupPres+PlaceSet+Hrs4+WatTemp, data=DishWa, 
    family=binomial)

如果我能提供更多信息,请告诉我。谢谢。

【问题讨论】:

    标签: r regression data-visualization


    【解决方案1】:

    有几种方法可以绘制逻辑回归的结果。请参阅https://sites.google.com/site/daishizuka/toolkits/plotting-logistic-regression-in-rPlot two curves in logistic regression in R 以获取 R 中的解释和示例。

    【讨论】:

    • 你能把代码封装在这里让这个答案完整吗?
    【解决方案2】:

    在 Michael J. Crawley 的优秀著作“Statistics: an Introduction using R”中采纳建议的可能解决方案是以下代码:

    attach(mtcars);
    model <- glm(formula = am ~ hp + wt, family = binomial);
    print(summary(model));
    model.h <- glm(formula = am ~ hp, family = binomial);
    model.w <- glm(formula = am ~ wt, family = binomial);
    op <- par(mfrow = c(1,2));
    xv <- seq(0, 350, 1);
    yv <- predict(model.h, list(hp = xv), type = "response");
    hp.intervals <- cut(hp, 3);
    plot(hp, am);
    lines(xv, yv);
    points(hp,fitted(model.h),pch=20);
    am.mean.proportion <- tapply(am, hp.intervals, sum)[[2]] / table(hp.intervals)[[2]];
    am.mean.proportion.sd <- sqrt(am.mean.proportion * abs(tapply(am, hp.intervals, sum)[[3]] - tapply(am, hp.intervals, sum)[[1]]) / table(hp.intervals)[[2]]);
    points(median(hp), am.mean.proportion, pch = 16);
    lines(c(median(hp), median(hp)), c(am.mean.proportion - am.mean.proportion.sd, am.mean.proportion + am.mean.proportion.sd));
    xv <- seq(0, 6, 0.01);
    yv <- predict(model.w, list(wt = xv), type = "response");
    wt.intervals <- cut(wt, 3);
    plot(wt, am);
    lines(xv, yv);
    points(wt,fitted(model.w),pch=20);
    am.mean.proportion <- tapply(am, wt.intervals, sum)[[2]] / table(wt.intervals)[[2]];
    am.mean.proportion.sd <- sqrt(am.mean.proportion * abs(tapply(am, wt.intervals, sum)[[3]] - tapply(am, wt.intervals, sum)[[1]]) / table(wt.intervals)[[2]]);
    points(median(wt), am.mean.proportion, pch = 16);
    lines(c(median(wt), median(wt)), c(am.mean.proportion - am.mean.proportion.sd, am.mean.proportion + am.mean.proportion.sd));
    detach(mtcars);
    par(op);
    

    除了标准的 glm 图,它还包含一个指标,用于指示中心三分之一与数据的拟合度。这表明对hp的拟合较差,而对wt的拟合较好。

    该示例使用 R 的内置“汽车”数据集。

    【讨论】:

      猜你喜欢
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2021-11-23
      • 2012-07-02
      • 2018-10-13
      • 2018-01-26
      • 2021-02-27
      相关资源
      最近更新 更多