[R] how to predict X given Y using logit regresion in R?
Luigi Marongiu
m@rong|u@|u|g| @end|ng |rom gm@||@com
Sat Oct 2 22:48:51 CEST 2021
Actually,
I think it worked with chemCal, it was the drawing that was a bit
rough. I sort it with:
```
library(MASS)
lod <- dose.p(model,p=.95)
plot(positivity ~ concentration, data = df, log = "x",
xlab=expression(bold(paste("Concentration (c/", mu, "L)"))),
ylab=expression(bold("Proportion of positivity")))
newdata <- data.frame(concentration=seq(min(df$concentration),
max(df$concentration),by=0.01))
newdata$positivity = predict(model, newdata, type="response")
abline(h=0.95, lty=3)
abline(v=lod, lty=3)
points(positivity ~ concentration, data = newdata, type="l")
text(lod+0.2, 0.87, labels = round(lod, 2), cex = 0.9)
```
Case closed
On Sat, Oct 2, 2021 at 4:33 PM Luigi Marongiu <marongiu.luigi using gmail.com> wrote:
>
> I tried with:
> ```
> library(chemCal)
> inverse.predict(model, 0.95)
> > inverse.predict(model, 0.95)
> $Prediction
> [1] 0.4565871
>
> $`Standard Error`
> [1] 5.525725e-10
>
> $Confidence
> [1] 1.758532e-09
>
> $`Confidence Limits`
> [1] 0.4565871 0.4565871
> ```
> but the value 0.457 does not sound good, it should be about 1.7. Could
> it be that model is based on glm whereas inverse.predict uses linear
> regression?
>
> On Sat, Oct 2, 2021 at 10:14 AM Luigi Marongiu <marongiu.luigi using gmail.com> wrote:
> >
> > Hello,
> > I have set a glm model using probit. I would like to use it to predict
> > X given Y. I have followed this example:
> > ```
> > f2<-data.frame(age=c(10,20,30),weight=c(100,200,300))
> > f3<-data.frame(age=c(15,25))
> > f4<-data.frame(age=18)
> > mod<-lm(weight~age,data=f2)
> > > predict(mod,f3)
> > 1
> > 150
> > > predict(mod,f4)
> > 1
> > 180
> > ```
> >
> > I have set the following:
> > ```
> > df <- data.frame(concentration = c(1, 10, 100, 1000, 10000),
> > positivity = c(0.86, 1, 1, 1, 1))
> > model <- glm(positivity~concentration,family = binomial(link =
> > "logit"), data=df)
> > > e3<-data.frame(concentration=c(11, 101), positivity=c(1, 1))
> > > predict(model, e3)
> > 1 2
> > 5.645045 46.727573
> > ```
> > but:
> > ```
> > > e4<-data.frame(positivity=0.95)
> > > e4
> > positivity
> > 1 0.95
> > > predict(model, e4)
> > Error in eval(predvars, data, env) : object 'concentration' not found
> > ```
> > Why did the thing worked for f4 but not e4? How do I get X given Y?
> > Do I need to find the inverse function of logit (which one?) and apply
> > this to the regression or is there a simpler method?
> > Also, is it possible to plot the model to get a smooter line than
> > `plot(positivity ~ concentration, data = df, log = "x", type="o")`?
> > Thanks
> > --
> > Best regards,
> > Luigi
>
>
>
> --
> Best regards,
> Luigi
--
Best regards,
Luigi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Rplot.png
Type: image/png
Size: 8687 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20211002/e5f2b21a/attachment.png>
More information about the R-help
mailing list