doseresponse / drc Goto Github PK
View Code? Open in Web Editor NEWFitting dose-response models in R
Home Page: https://doseresponse.github.io/drc/
Fitting dose-response models in R
Home Page: https://doseresponse.github.io/drc/
Is this potentially a bug or is it intended behaviour?
I noticed that the spinach.model1
example in ?predict.drc
returns a matrix with the credible intervals
> library(drc)
> spinach_model1_ll4 <- drm(SLOPE~DOSE, CURVE, data = spinach, fct = LL.4())
> predict(spinach_model1_ll4, data.frame(dose=2, CURVE=c("1", "2", "3")),
interval = "confidence")
Prediction Lower Upper
[1,] 0.9048476 0.8552178 0.9544775
[2,] 0.4208307 0.3626741 0.4789873
[3,] 0.5581673 0.4971838 0.6191509
Warning messages:
1: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
2: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
3: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
But as soon as I use NEC.3()
for the model, it only returns what I think is the mean?
> spinach_model1_nec3 <- drm(SLOPE~DOSE, CURVE, data = spinach, fct = NEC.3())
> predict(spinach_model1_nec3)
[1] 1.534025e+00 1.534025e+00 1.534025e+00 1.396653e+00 1.396653e+00
[6] 1.396653e+00 1.159464e+00 1.159464e+00 1.159464e+00 6.613781e-01
[11] 6.613781e-01 6.613781e-01 1.231237e-01 1.231237e-01 1.231237e-01
[16] 7.943600e-04 7.943600e-04 7.943600e-04 2.130037e-10 2.130037e-10
[21] 2.130037e-10 8.254612e-01 8.254612e-01 8.254612e-01 7.073317e-01
[26] 7.073317e-01 7.073317e-01 5.206644e-01 5.206644e-01 5.206644e-01
[31] 2.066325e-01 2.066325e-01 2.066325e-01 1.298029e-02 1.298029e-02
[36] 1.298029e-02 3.217671e-06 3.217671e-06 3.217671e-06 4.889130e-17
[41] 4.889130e-17 4.889130e-17 9.281359e-01 9.281359e-01 9.281359e-01
[46] 9.088835e-01 9.088835e-01 9.088835e-01 8.546830e-01 8.546830e-01
[51] 8.546830e-01 6.692668e-01 6.692668e-01 6.692668e-01 2.502354e-01
[56] 2.502354e-01 2.502354e-01 4.917835e-03 4.917835e-03 4.917835e-03
[61] 7.315787e-10 7.315787e-10 7.315787e-10 2.124491e+00 2.124491e+00
[66] 2.124491e+00 2.124491e+00 2.124491e+00 2.124491e+00 2.124491e+00
[71] 2.124491e+00 2.124491e+00 1.703807e+00 1.703807e+00 1.703807e+00
[76] 7.583491e-01 7.583491e-01 7.583491e-01 4.461082e-02 4.461082e-02
[81] 4.461082e-02 1.361222e-05 1.361222e-05 1.361222e-05 1.773046e+00
[86] 1.773046e+00 1.773046e+00 1.773046e+00 1.773046e+00 1.773046e+00
[91] 1.773046e+00 1.773046e+00 1.773046e+00 1.413257e+00 1.413257e+00
[96] 1.413257e+00 6.522470e-01 6.522470e-01 6.522470e-01 4.355921e-02
[101] 4.355921e-02 4.355921e-02 1.909801e-05 1.909801e-05 1.909801e-05
Warning message:
In sqrt(diag(varMat)) : NaNs produced
My specs are:
> sessionInfo()
R version 4.1.1 (2021-08-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib
locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] drc_3.0-1 MASS_7.3-54
loaded via a namespace (and not attached):
[1] zip_2.1.1 Rcpp_1.0.7 cellranger_1.1.0 pillar_1.6.2
[5] compiler_4.1.1 forcats_0.5.1 tools_4.1.1 lifecycle_1.0.0
[9] tibble_3.1.4 lattice_0.20-44 pkgconfig_2.0.3 rlang_0.4.11
[13] Matrix_1.3-4 openxlsx_4.2.3 curl_4.3.2 mvtnorm_1.1-2
[17] haven_2.4.3 rio_0.5.26 vctrs_0.3.8 gtools_3.9.2
[21] hms_1.1.0 grid_4.1.1 data.table_1.14.0 R6_2.5.1
[25] plotrix_3.8-2 fansi_0.5.0 readxl_1.3.1 survival_3.2-11
[29] foreign_0.8-81 multcomp_1.4-17 TH.data_1.0-10 carData_3.0-4
[33] car_3.0-10 magrittr_2.0.1 scales_1.1.1 codetools_0.2-18
[37] ellipsis_0.3.2 splines_4.1.1 abind_1.4-5 colorspace_2.0-2
[41] sandwich_3.0-1 utf8_1.2.2 stringi_1.7.4 munsell_0.5.0
[45] crayon_1.4.1 zoo_1.8-9
> library(drc)
> spinach.model1 <- drm(SLOPE~DOSE, CURVE, data = spinach, fct = LL.4())
> predict(spinach.model1, data.frame(dose=2, CURVE=c("1", "2", "3")),
+ interval = "confidence")
Prediction Lower Upper
[1,] 0.9048476 0.8552178 0.9544775
[2,] 0.4208307 0.3626741 0.4789873
[3,] 0.5581673 0.4971838 0.6191509
Warning messages:
1: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
2: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
3: In (tquan * sqrt(varVal + sumObjRV)) * c(-1, 1) :
Recycling array of length 1 in array-vector arithmetic is deprecated.
Use c() or as.vector() instead.
Relevant SessionInfo
:
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 10 (buster)
Matrix products: default
BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.5.so
locale:
[1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
[4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C
[7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] drc_3.0-1 MASS_7.3-51.5
loaded via a namespace (and not attached):
[1] zip_2.1.1 Rcpp_1.0.4 cellranger_1.1.0
[4] pillar_1.4.7 compiler_3.6.3 forcats_0.5.0
[7] tools_3.6.3 lifecycle_0.2.0 tibble_3.0.4
[10] lattice_0.20-38 pkgconfig_2.0.3 rlang_0.4.9
[13] openxlsx_4.2.3 Matrix_1.2-18 rstudioapi_0.13
[16] curl_4.3 mvtnorm_1.1-1 haven_2.2.0
[19] rio_0.5.16 vctrs_0.3.5 gtools_3.8.2
[22] hms_0.5.3 grid_3.6.3 data.table_1.12.8
[25] R6_2.5.0 plotrix_3.7-8 readxl_1.3.1
[28] survival_3.1-8 foreign_0.8-75 multcomp_1.4-15
[31] TH.data_1.0-10 carData_3.0-4 car_3.0-10
[34] magrittr_2.0.1 scales_1.1.0 codetools_0.2-16
[37] ellipsis_0.3.1 splines_3.6.3 rsconnect_0.8.16
[40] abind_1.4-5 colorspace_1.4-1 sandwich_3.0-0
[43] stringi_1.5.3 munsell_0.5.0 crayon_1.3.4
[46] zoo_1.8-8
Dear drc
developers,
I noticed that the CRAN version (3.0-1
) is quite outdated, compare to the github version (3.2.0
).
Are there any plans for a new CRAN release?
Some methods are defined in the namespace but the code cannot be found.
The package fails to install.
I am running the code in example 1 from slides of 'Advances in dose-response analysis' presented at 'useR! Toulouse, July 12 2019'.
the code I am running are:
library(drc)
selenium.LL.2.1 <- drm(dead/total ~ conc, curveid = type, weights = total, data = selenium, fct = LL.2(), type = "binomial")
library(sandwich)
ED(selenium.LL.2.1, c(50), interval = "delta", vcov. = sandwich)
received the message:
Error in UseMethod("estfun") :
no applicable method for 'estfun' applied to an object of class "drc"
session information
sessionInfo(package = c('drc','sandwich')) says:
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
character(0)
other attached packages:
[1] drc_3.0-6 sandwich_2.5-2
Please help!
Hello, I am using drm() with self-starter function W2.2() to fit my data, and interested to learn how W2.2() searches for the starting values. I have read a lot online, but couldn't find the code of W2.2(). Can you please point me to the correct location or paste the code here?
Thank you very much! I am looking forward to your response!
Hi!
First of all, thank you so much for this package, it is a must-have tool for all of us in the tox world.
I just came across an issue when trying to use drm() and boxcox() in a functional programming framework via PURRR. Here is a repex:
library(drc)
library(tidyverse)
alba_m1 <- S.alba %>%
group_by(Herbicide) %>%
nest() %>%
mutate(fit = map(.x = data, ~ drm(DryMatter~Dose, data = .x, fct = LL.4())
))
alba_m2 <- S.alba %>%
group_by(Herbicide) %>%
nest() %>%
mutate(fit = map(.x = data, ~ drm(DryMatter~Dose, data = .x, fct = LL.4())),
bc_fit = map(.x = fit, ~ boxcox(.x)))
alba_m3 <- S.alba %>%
group_by(Herbicide) %>%
nest() %>%
mutate(fit = map(.x = data, ~ boxcox(drm(DryMatter~Dose, data = .x, fct = LL.4()))
))
alba_m4a <- boxcox(drm(DryMatter~Dose, data = alba_m1$data[[1]], fct = LL.4()))
alba_m4b <- boxcox(drm(DryMatter~Dose, data = alba_m1$data[[2]], fct = LL.4()))
When used this way (a workflow that is becoming more and more common), alba_m1 works just fine, but alba_m2 and m3 fail at the boxcox step.
when run outside the map(), with the individual data subsets (as in alba_m4a and m4b) the boxcox works perfectly.
My current hypothesis as to what could be happening is that boxcox() fails to update the drc object. What i believe is happening is that the $call is stored in reference to the internal map() call, (e.g. "drm(formula = DryMatter ~ Dose, data = .x, fct = LL.4())") making it impossible for the update.drc() used by boxcox() to actually use it, even when nested inside the same map() (which should still give boxcox access to ".x"
Obviously, that update() part of boxplot is one of the main aspects, so i don't know if there is much room to change it. My request perhaps is to offer the possibility to run a boxcox = TRUE inside of the drm() call as it seems it was the case with the old multdrc(). perhaps that way the whole process can be run at once inside of a map().
I do know that drm() offers the option to run a boxcox transformation, but the way i understand it right now, you need to specify the lambda, instead of letting it choose the optimal. please correct me if i am wrong.
Also, i do know that you could run this simple example as it is presented in the help documents by telling drm() what the groups are instead of going the group_by - nest - map route. This is just a repex, the actual case where i came across this issue is a much more complex situation that would be hard to approach that way.
Thank you in advance!
Hi there,
I'd like to highlight some differences that I found when running the drm()
function on my Mac (Processor 2.6 GHz 6-Core Intel Core i7) vs an Amazon Linux machine.
I attached the example dataset input_data.txt.
Example:
input_data = read.table(file.path(here(), "tests/test-data/input_data.txt"))
drm(response ~ dose, data = input_data, fct = L.4())
Results from my Mac
Model fitted: Logistic (ED50 as parameter) (4 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
b:(Intercept) -2.3306e-01 7.0496e-01 -0.3306 0.7434100
c:(Intercept) 4.4357e+05 1.3346e+05 3.3236 0.0024854 **
d:(Intercept) 1.3001e+06 3.2732e+05 3.9720 0.0004529 ***
e:(Intercept) 5.2777e+01 1.2060e+01 4.3763 0.0001521 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
654792.8 (28 degrees of freedom)
When running on an Amazon Linux machine:
Model fitted: Logistic (ED50 as parameter) (4 parms)
--
|
| Parameter estimates:
|
| Estimate Std. Error t-value p-value
| b:(Intercept) -2.3552e-01 7.2686e-01 -0.3240 0.7483338
| c:(Intercept) 4.4373e+05 1.3397e+05 3.3122 0.0025592 **
| d:(Intercept) 1.2999e+06 3.2735e+05 3.9711 0.0004540 ***
| e:(Intercept) 5.2747e+01 1.2068e+01 4.3709 0.0001543 ***
| ---
| Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
|
| Residual standard error:
|
| 654788.4 (28 degrees of freedom)
All the estimates are slightly but I believe not negligibly different.
Do you have any insights into how I can improve the reproducibility of the results?
Thanks for all your work and your help,
Anna
Dear Team,
I have a question regarding curveid
parameter of the drm()
function.
In which cases do we have to use this argument? Should it be distinct groups like different species or different treatments/conditions or should it be more or less similar groups like biological replicates/different individuals?
The existing documentation is not clear enough, so any comments from you will be really valuable.
Thank you in advance!
Best regards,
Yulia
export divAtInf, xexplogx, xexpx, and xlogx into drc namespace to call functions from medrc
For EXD.2(), EXD.3(), AR.2() and AR.3(), the class of the models specified is "Weibull" (as below)?
For example:
str(EXD.2())
$ fixed : num [1:4] 1 0 NA NA
I know that Weibull and exponential models are similar. Is it on purpose?
Greetings,
I recently used drc to fit four parameter log-logistic models for some drug screen data. I noticed that in some cases, drc produces fits with very large values for the e
parameter.
For example:
library(drc)
dose <- c(0.00078, 0.00234, 0.00702, 0.02107, 0.06321, 0.18964, 0.56893,
1.70678, 5.12033, 15.36098, 46.08295)
response <- c(74.57337, 81.2668, 80.63771, 75.96445, 76.54648, 77.78535, 75.041, 74.92435,
80.92873, 86.97225, 72.90051)
coef(drm(response ~ dose, fct = LL.4()))
# b:(Intercept) c:(Intercept) d:(Intercept) e:(Intercept)
# -1.695223e-03 1.091111e+01 2.876129e+02 2.244011e+291
That is the most extreme example, but there appears to be a continuous distribution of larger-than-expected values.
Out of ~89,000 curves fit, 3,589 had values outside of the range of values (>~115) produced by a different tool (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3040458/).
Of those 3,589 values, many are "close" (but still well outside of) the expected range, while a fair number of many orders of magnitude larger than expected:
> quantile(outliers)
0% 25% 50% 75% 100%
1.170338e+02 1.437558e+02 3.122357e+02 3.698680e+05 4.854230e+290
Session Info
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Arch Linux
Matrix products: default
BLAS: /usr/lib/libblas.so.3.8.0
LAPACK: /usr/lib/liblapack.so.3.8.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] drc_3.0-1 MASS_7.3-50 nvimcom_0.9-75 colorout_1.2-0
loaded via a namespace (and not attached):
[1] zip_1.0.0 Rcpp_0.12.19 cellranger_1.1.0 pillar_1.3.0 compiler_3.5.1
[6] BiocManager_1.30.3 forcats_0.3.0 tools_3.5.1 tibble_1.4.2 lattice_0.20-35
[11] pkgconfig_2.0.2 rlang_0.3.0.1 openxlsx_4.1.0 Matrix_1.2-14 curl_3.2
[16] mvtnorm_1.0-8 haven_1.1.2 rio_0.5.10 gtools_3.8.1 hms_0.4.2
[21] grid_3.5.1 data.table_1.11.8 plotrix_3.7-4 readxl_1.1.0 survival_2.42-3
[26] foreign_0.8-70 multcomp_1.4-8 TH.data_1.0-9 carData_3.0-2 car_3.0-2
[31] magrittr_1.5 scales_1.0.0 codetools_0.2-15 splines_3.5.1 abind_1.4-5
[36] colorspace_1.3-2 sandwich_2.5-0 munsell_0.5.0 crayon_1.3.4 zoo_1.8-4
Dear drc
developers,
I like your package very much and use it all the time in my work. Also I enjoy using tidyverse
metapackage with its pipelines. But there's an issue that prevents me from using both with comfort.
I can see that you are using MASS
package for some calculations. Unfortunately, importing all its functions into user environment can cause name conflicts (e.g. select()
function from dplyr). Currently I have to manually detach MASS
package to keep working normally with select()
from dplyr
, or explicitly state dplyr::select()
, or use drc
functions like drc::drm(formula, data, fct = drc::LL.4() ...)
to prevent attaching MASS
.
I'd suggest to run MASS
functions without attaching them, like MASS::boxcox()
.
Best regards,
Evgeny
I've been using W1.3()
and W2.3()
to fit a 3-parameter Weibull model to data. drc
gives 2 parameterizations of the 3-parameter weibull (https://cran.r-project.org/web/packages/drc/drc.pdf):
f(x) = 0 + (d − 0) exp(− exp(b(log(x) − log(e))))
f(x) = 0 + (d − 0)(1 − exp(− exp(b(log(x) − log(e)))))
The documentation states that d
represents the upper asymptote, b
is the slope at inflection (maximum of first derivative?), and that the curve has an inflection point at dose e
. However, plotting these functions and using R to solve for when the 2nd derivative = 0 gives a value different than e
for the inflection point. For example:
dd=1
bb = -5
ee = 30
curve(dd*exp(-exp(bb * (log(x) - log(ee))) ) , xlim=c(0,100))
abline(v=ee)
# 1st deriv
g <- function(x) {}
body(g) <- D( expression(dd*exp(-exp(bb * (log(x) - log(ee))) )), "x")
curve(g, xlim=c(0, 100))
abline(v=ee)
# 2nd deriv
g <- function(x) {}
body(g) <- D(D( expression(dd*exp(-exp(bb * (log(x) - log(ee))) )), "x"), "x")
curve(g, xlim=c(0, 100))
abline(v=ee)
uniroot(g, c(20,50)) # should be 30, but is not?
Is the documentation incorrect that e
represents the inflection point? Or is there some other explanation?
Hey there,
I was trying to calculate RNA-seq read saturation and ran into the issue:
predict
seems to be unable to calculate confidence intervals when using fixed parameters.Is this related to drm returning a model with 1 less parameter? Or somewhat intended behaviour as a fixed parameter contains no uncertainty?
When using MM.2() kinetics with fixed asymptote:
# input data
> head(sat)
saturation total_reads
<num> <int>
1: 0.1685059 494784
2: 0.2575534 2974401
3: 0.3329197 5445163
4: 0.3980089 7920298
5: 0.4538969 10405968
6: 0.5019354 12884013
> model.drm <- drm(saturation ~ total_reads, data = sat, fct = MM.2(fixed = c(1,NA), names=c("d","e")))
# data to extrapolate and predict confidence intervals to
> mml <- data.frame(reads = seq(0, max(sat$total_reads)*2, length.out = 1000))
> summary(model.drm)
Model fitted: Michaelis-Menten (1 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
e:(Intercept) 11937044 626398 19.057 2.214e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
0.03482782 (18 degrees of freedom)
# prediction fails with the error below
> pred <- predict(model.drm, newdata = mml, interval = "confidence", level = 0.95)
Error in indexMat[, groupLevels, drop = FALSE] :
incorrect number of dimensions
When using MM.2() kinetics with no fixed parameters:
> model.drm <- drm(sat ~ total_reads, data = sat, fct = MM.2())
> summary(model.drm)
Model fitted: Michaelis-Menten (2 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
d:(Intercept) 9.9953e-01 1.3612e-02 73.432 <2e-16 ***
e:(Intercept) 1.1920e+07 8.0763e+05 14.759 4e-11 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
0.03583626 (17 degrees of freedom)
> pred <- predict(model.drm, newdata = mml, interval = "confidence", level = 0.95)
> head(pred)
Prediction Lower Upper
[1,] 0.00000000 0.00000000 0.00000000
[2,] 0.07677375 0.06779986 0.08574764
[3,] 0.14259479 0.12724126 0.15794832
[4,] 0.19965087 0.17974278 0.21955896
[5,] 0.24958346 0.22642738 0.27273955
[6,] 0.29364824 0.26819302 0.31910345
Session Info
> sessionInfo()
R version 4.4.0 (2024-04-24)
Platform: x86_64-pc-linux-gnu
Running under: Rocky Linux 9.4 (Blue Onyx)
Matrix products: default
BLAS/LAPACK: FlexiBLAS OPENBLAS; LAPACK version 3.11.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
time zone: Europe/Berlin
tzcode source: system (glibc)
attached base packages:
[1] stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] drc_3.0-1 MASS_7.3-60.2 pbapply_1.7-2 scales_1.3.0
[5] rhdf5_2.48.0 glue_1.7.0 ggtext_0.1.2 lubridate_1.9.3
[9] forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4 purrr_1.0.2
[13] readr_2.1.5 tidyr_1.3.1 tibble_3.2.1 ggplot2_3.5.1
[17] tidyverse_2.0.0 DropletUtils_1.24.0 SingleCellExperiment_1.26.0 SummarizedExperiment_1.34.0
[21] Biobase_2.64.0 GenomicRanges_1.56.0 GenomeInfoDb_1.40.0 IRanges_2.38.0
[25] S4Vectors_0.42.0 BiocGenerics_0.50.0 MatrixGenerics_1.16.0 matrixStats_1.3.0
[29] data.table_1.15.4
loaded via a namespace (and not attached):
[1] tidyselect_1.2.1 farver_2.1.2 R.utils_2.12.3 TH.data_1.1-2
[5] timechange_0.3.0 lifecycle_1.0.4 survival_3.6-4 statmod_1.5.0
[9] magrittr_2.0.3 compiler_4.4.0 rlang_1.1.4 tools_4.4.0
[13] plotrix_3.8-4 utf8_1.2.4 labeling_0.4.3 S4Arrays_1.4.0
[17] dqrng_0.4.1 DelayedArray_0.30.1 xml2_1.3.6 pkgload_1.3.4
[21] multcomp_1.4-25 abind_1.4-5 BiocParallel_1.38.0 HDF5Array_1.32.0
[25] withr_3.0.0 R.oo_1.26.0 grid_4.4.0 fansi_1.0.6
[29] beachmat_2.20.0 colorspace_2.1-0 Rhdf5lib_1.26.0 edgeR_4.2.0
[33] gtools_3.9.5 mvtnorm_1.2-4 cli_3.6.3 crayon_1.5.3
[37] generics_0.1.3 rstudioapi_0.16.0 httr_1.4.7 tzdb_0.4.0
[41] DelayedMatrixStats_1.26.0 scuttle_1.14.0 splines_4.4.0 zlibbioc_1.50.0
[45] parallel_4.4.0 XVector_0.44.0 vctrs_0.6.5 sandwich_3.1-0
[49] Matrix_1.7-0 jsonlite_1.8.8 carData_3.0-5 car_3.1-2
[53] hms_1.1.3 locfit_1.5-9.9 limma_3.60.0 codetools_0.2-20
[57] stringi_1.8.4 gtable_0.3.5 UCSC.utils_1.0.0 munsell_0.5.1
[61] pillar_1.9.0 rhdf5filters_1.16.0 GenomeInfoDbData_1.2.12 R6_2.5.1
[65] sparseMatrixStats_1.16.0 lattice_0.22-6 R.methodsS3_1.8.2 gridtext_0.1.5
[69] Rcpp_1.0.12 SparseArray_1.4.3 zoo_1.8-12 pkgconfig_2.0.3
Best wishes,
Falko
dataframe <- data.frame(conc=c(0, 0.944, 2.18, 4.14, 8.37, 16.1), total=c(160, 80, 80, 80, 80, 80), response=c(3, 1, 1, 5, 8, 80))
m <- drm(response/total ~ conc,
weights=total,
data=dataframe,
fct = W1.4(),
type = "binomial")
plot(m)
summary(m)
**# Error in solve.default(object$fit$hessian) :
m <- drm((total-response)/total ~ conc,
weights=total,
data=dataframe,
fct = W1.4(),
type = "binomial")
plot(m)
summary(m)
The Hessian is being scaled by twice the residual variance when estimating the variance-covariance matrix for normally distributed responses (e.g., see scaledH
on line 80 of vcov.drc.R). This appears to be inconsistent with Eq (5) from Ritz et al. (2005).
Hello,
I installed drc version 2.5-12
and I am trying to use drm()
but I get the error Error in LL.4() : could not find function "LL.4"
. Could you please help me with it?
I found that llogistic2 model has no fixed information
x = LL2.4(fixed = c(NA, 0, 1, NA))
x$fixed
NULL
fit <- drm(vol ~ conc, data = algae, fct = LL2.4(fixed = c(NA, 0, 200, NA)))
fit$fct$fixed
NULL
In the llogitic2 function, return list does not include "fixed" like in llogistic:
returnList <- list(fct = fct, ssfct = ssfct, names = names,
deriv1 = deriv1, deriv2 = deriv2, derivx = derivx, edfct = edfct,
bfct = bfct, inversion = invfct, name = fctName, text = fctText,
noParm = sum(is.na(fixed)), lowerAs = lowerAs, upperAs = upperAs,
monoton = monoton)
Is this missing intentional? If not, could you please add fixed to returnList?
Thanks!
Hi,
Thanks a lot for this amazing package and documentation. I am trying to account for departure from normality and variance homogeneity when fitting a Weibull Type II model on several dose response curves by using a boxcox transformation as shown in the Ritz,. 2012 paper.
The function is able to run and seems to be effective based on diagnostic plots before/after transformation. However, a warning message is sent :
Error in optim(startVec, opfct, hessian = TRUE, method = "L-BFGS-B", lower = lowerLimits, : L-BFGS-B needs finite values of 'fn'
Lambda optimal value seems to be always λ=2 independently of the data, which I suspect comes from this error.
I must precise that I don't have true replicates for any of the concentration and a relatively low number of points (12) per curve. However I have a large number of curves, each of them representing a single individual (60).
Here is my code :
Chicken.W2.3<-drm(mFvFm~meanTemp_hold.adj, data=df_filt_info %>% subset(Site.name=="Chicken"), curveid = Genotype, fct=W2.3(names = c('hill', 'max', 'ed50')),upperl=c(NA,0.9,40),lowerl=c(NA,0.1,30)) Chicken.W2.3.bc=boxcox(Chicken.W2.3,lambda = seq(-2,4,by=0.25))
summary(Chicken.W2.3)
Model fitted: Weibull (type 2) with lower limit at 0 (3 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
0.06299986 (523 degrees of freedom)
summary(Chicken.W2.3.bc)
Model fitted: Weibull (type 2) with lower limit at 0 (3 parms)
Parameter estimates:
Estimate Std. Error t-value p-value
Signif. codes: 0 ‘’ 0.001 ‘’ 0.01 ‘’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error:
0.02453777 (523 degrees of freedom)
Non-normality/heterogeneity adjustment through optimal Box-Cox transformation
Estimated lambda: 2
Confidence interval for lambda: [1.79,2.06]`
Running a quick anova test shows that the correction doesn't significantly affect the results :
`Chicken.W2.3.sum=broom::tidy(Chicken.W2.3) %>% mutate(Model="W2.3")
Chicken.W2.3.bc.sum=broom::tidy(Chicken.W2.3.bc) %>% mutate(Model="W2.3.bc")
Boxcox.comp=rbind(Chicken.W2.3.sum,Chicken.W2.3.bc.sum)aov=aov(estimate~Model,data=Boxcox.comp %>% subset(term=="ed50"))
summary(aov)
Df Sum Sq Mean Sq F value Pr(>F)
Model 1 0.05 0.05203 0.167 0.683
Residuals 118 36.68 0.31087
TukeyHSD(aov)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = estimate ~ Model, data = Boxcox.comp %>% subset(term == "ed50"))
$Model
diff lwr upr p adj
W2.3.bc-W2.3 0.04164715 -0.1599361 0.2432304 0.6831898`
However I am neither sure if I can trust those results, nor where the issue may come from. Any clarification or guideline would be greatly appreciated.
Thanks,
Hugo
I noticed that the value of argument otrace
in drc::drmc()
is assigned to silentVal
in drc:::drmOpt()
which further defines silent
in try( stats::optim() )
.
The documentation for drc::drmc()
states:
"otrace
logical. If TRUE the output from optim is displayed."
which is misleading. If TRUE
, then try( optim(startVec, ....), silent = TRUE)
will be executed and thus the error message (if any) will be suppressed. The argument as little to do with "the output from optim"
Dear drc developers,
For all the regression model implemented, how can one handle the covariates to remove the confounding effects? Thanks.
Yours,
Ying
similar to #23 , confidence intervals are not returned by predict
, for models with two phase()
functions:
spinach_model1_ll4 <- drm(SLOPE~DOSE, CURVE, data = spinach, fct = LL.4())
head(predict(spinach_model1_ll4, interval = "confidence"))
Prediction Lower Upper
[1,] 1.879553 1.795308 1.963798
[2,] 1.879553 1.795308 1.963798
[3,] 1.879553 1.795308 1.963798
[4,] 1.186813 1.113500 1.260126
[5,] 1.186813 1.113500 1.260126
[6,] 1.186813 1.113500 1.260126
spinach_model1_tp <- drm(SLOPE~DOSE, CURVE, data = spinach, fct = twophase())
> head(predict(spinach_model1_tp, interval = "confidence"))
[1] 1.878608 1.878608 1.878608 1.202958 1.202958 1.202958
> sessionInfo()
R version 4.3.3 (2024-02-29)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS Big Sur ... 10.16
Matrix products: default
BLAS/LAPACK: /Users/paul/mambaforge/envs/nls/lib/libopenblasp-r0.3.27.dylib; LAPACK version
3.12.0
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
time zone: Europe/London
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_1.1.4 ggplot2_3.5.1 drc_3.0-1 MASS_7.3-60
loaded via a namespace (and not attached):
[1] bit_4.0.5 Matrix_1.6-5 gtable_0.3.5 crayon_1.5.2
[5] compiler_4.3.3 gtools_3.9.5 plotrix_3.8-4 tidyselect_1.2.1
[9] parallel_4.3.3 splines_4.3.3 scales_1.3.0 lattice_0.22-6
[13] TH.data_1.1-2 readr_2.1.5 R6_2.5.1 generics_0.1.3
[17] tibble_3.2.1 car_3.1-2 munsell_0.5.1 tzdb_0.4.0
[21] pillar_1.9.0 rlang_1.1.4 utf8_1.2.4 multcomp_1.4-25
[25] bit64_4.0.5 cli_3.6.2 withr_3.0.0 magrittr_2.0.3
[29] grid_4.3.3 vroom_1.6.5 mvtnorm_1.2-5 hms_1.1.3
[33] sandwich_3.1-0 lifecycle_1.0.4 vctrs_0.6.5 glue_1.7.0
[37] codetools_0.2-20 zoo_1.8-12 survival_3.7-0 abind_1.4-5
[41] carData_3.0-5 fansi_1.0.6 colorspace_2.1-0 tools_4.3.3
[45] pkgconfig_2.0.3
I've tried everything I could but I keep getting the error that says "Error in tapply(tempDoseVec, assayNoOld, unique) :
arguments must have same length"
I like to use options(warn=1)
in my scripts. But after calling drm()
the value is set to 0. That's because drm()
modifies it and this change persists after the function exits. It is not very nice to mess with the users options. Please cache them and reset them with on.exit
, thank you.
Example:
library(drc)
options(warn = 1)
getOption("warn") # prints 1
drm(c(9, 8, 2, 1) ~ c(1, 2, 3, 4), fct = W1.3())
getOption("warn") # prints 0
Hello,
I am using "drm(FailRate ~ Mpa, fct = W2.2(), data = my_data)" to fit my data, and interested in understanding the method W2.2() used to obtain the starting values.
After checking the source code, seems like 4 methods are available, but I couldn't figure out how drm() calls the four methods or which method is the default. Also, I didn't find any related information online either. Can you please help explain the process?
Thank you very much and I am looking forward to your response!
Dear authors:
I‘m using drc package to determine the Estimated LD50, but I've encountered several errors that I cannot figure out. Would please give me some advice? The drc package is an excellent package, however I'm still new to it.
When I ran ED(KP.LL.2, 50, interval = "delta"), It returned “Error in solve.default(object$fit$hessian) :”
I have attached my test file ("inline-supplementary-material-2.xlsx"), I think it should use the code that you describe in "four typesof selenium".
here is my code:
library(openxlsx)
KP <- read.xlsx('inline-supplementary-material-2.xlsx',
startRow=2)
KP <- KP[,-2]
colnames(KP) <- c("type", "conc", "total", "dead")
KP.LL.2 <- drm(dead/total ~ conc, type, weights = total,data = KP,
fct = LL.2(), type = "binomial")
ED(KP.LL.2, 50, interval = "delta")
Please refer to this post: https://stackoverflow.com/questions/50119927/mselect-function-of-drc-package-does-not-work-inside-a-function
The solution is provided there:
tempObj <- try(update(object, fct = fctList[[i]],
data = object$origData), # <--- line added here
silent = TRUE)
Should be an easy update to the mselect function.
Hi there, I'm a big fan of the package. I came across the following issue when using the normal = T
option in plot.drc
. I've included the following reproducible example.
Plotting the unnormalized data works just fine:
library(drc)
mydata <- read.csv("repex.csv")
drc.model <- drm(abs ~ conc, drug, data = mydata, fct = LL.4())
plot(drc.model,
type = "average",
normal = F,
col = T,
broken = T,
)
...but when I set the normal
option to TRUE
, the points for labels and curves for Ap Am appear to be mismatched. The curves are correct, but the points are misplotted
plot(drc.model,
type = "average",
normal = T,
col = T,
broken = T,
)
Setting type = "bars"
also seems to normalize the curves, but not the error bars:
plot(drc.model,
type = "bars",
normal = T,
col = T,
broken = T,
)
The first issue can be corrected by sorting the data alphabetically first., but in a fix it would be desirable to control the order of the points in the legend.
Happy to contribute to a potential fix. 🤓
Dear drc-Team,
for some reason, mselect()
only returns 0 values for the LOF (Lack of fit) when comparing multiple models. However, when I am running modelFit()
I get p values clearly above the sign. threshold of 0.05.
To reproduce the error I used the ryegrass dataset as shown below:
> # Fitting a four-parameter log-logistic model
> ryegrass.LL.4 <- drm(rootl ~ conc, data = ryegrass, fct = LL.4())
> modelFit(ryegrass.LL.4) # LOF pvalue of 0.9451 <- this is NOT identical with the results of mselect
Lack-of-fit test
ModelDf RSS Df F value p value
ANOVA 17 5.1799
DRC model 20 5.4002 3 0.2411 0.8665
> AIC(ryegrass.LL.4) # IC = 41.82703 <- this is identical with the results of mselect
[1] 42.31029
> m.ls = list(LL.5(),LL.3(),W2.4(),W1.4())
> mselect(ryegrass.LL.4, m.ls)
logLik IC Lack of fit Res var
W2.4 -15.91352 41.82703 0 0.2646283
LL.4 -16.15514 42.31029 0 0.2700107
LL.5 -15.87828 43.75656 0 0.2777393
W1.4 -17.46720 44.93439 0 0.3012075
LL.3 -18.60413 45.20827 0 0.3153724
From my understanding of the mselect() and modelFit() function the computation of the Lack of fit values is based on a more general ANOVA model. Hence it should return similar p-values, shouldn't it?
I am using drc package version 3.2.0 and R version 4.2.1 on a Windows System.
I'm trying to silence all drm
output, but it appears to be ignoring the options set in drmc
. For example:
dose <- c(
1.69e-10,1.69e-10,1.69e-10,1.69e-10,
5.08e-10,5.08e-10,5.08e-10,5.08e-10,
1.52e-09,1.52e-09,1.52e-09,1.52e-09,
4.57e-09,4.57e-09,4.57e-09,4.57e-09,
1.37e-08,1.37e-08,1.37e-08,1.37e-08,
4.12e-08,4.12e-08,4.12e-08,4.12e-08,
1.23e-07,1.23e-07,1.23e-07,1.23e-07,
3.7e-07,3.7e-07,3.7e-07,3.7e-07,
1.11e-06,1.11e-06,1.11e-06,1.11e-06,
3.33e-06,3.33e-06,3.33e-06,3.33e-06,
1e-05,1e-05,1e-05,1e-05
)
response <- c(
0.286,0.302,0.235,0.362,
-0.08,-0.479,0.508,0.435,
0.004,0.676,0.04,-0.751,
-0.789,-1.053,0.389,-0.095,
0.326,-0.226,0.038,0.137,
0.406,-0.223,0.066,0.743,
-0.113,0.061,-0.244,-0.237,
0.658,0.146,-0.191,-0.106,
-0.636,0.145,0.043,0.58,
0.119,-0.219,0.262,-0.226,
0.101,0.004,0.163,0.269
)
set.seed(42)
control <- drmc(errorm = FALSE, noMessage = TRUE, warnVal = -1)
foo <- drm(response ~ dose, fct=LL.4(), control = control)
results in the output:
Error in optim(startVec, opfct, hessian = TRUE, method = optMethod, control = list(maxit = maxIt, :
non-finite finite-difference value [4]
In addition: Warning message:
In log(dose/parmMat[, 4]) : NaNs produced
Warning message:
Convergence failed. The model was not fitted!
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Arch Linux
Matrix products: default
BLAS: /usr/lib/libblas.so.3.8.0
LAPACK: /usr/lib/liblapack.so.3.8.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] bindrcpp_0.2.2 forcats_0.4.0 stringr_1.3.1 dplyr_0.7.8
[5] purrr_0.2.5 readr_1.3.1 tidyr_0.8.2 tibble_2.0.1
[9] ggplot2_3.1.0 tidyverse_1.2.1 magrittr_1.5 furrr_0.1.0
[13] future_1.11.1.1 broom_0.5.1 drc_3.0-6 drcData_1.0-0
[17] sandwich_2.5-0 glmnet_2.0-16 foreach_1.4.4 Matrix_1.2-15
[21] MASS_7.3-51.1 edgeR_3.24.3 limma_3.38.3
loaded via a namespace (and not attached):
[1] httr_1.4.0 jsonlite_1.6 splines_3.5.2 carData_3.0-2
[5] modelr_0.1.2 gtools_3.8.1 assertthat_0.2.0 cellranger_1.1.0
[9] yaml_2.2.0 globals_0.12.4 pillar_1.3.1 backports_1.1.3
[13] lattice_0.20-38 glue_1.3.0 digest_0.6.18 rvest_0.3.2
[17] colorspace_1.4-0 plyr_1.8.4 pkgconfig_2.0.2 listenv_0.7.0
[21] haven_2.1.0 mvtnorm_1.0-8 scales_1.0.0 openxlsx_4.1.0
[25] rio_0.5.16 generics_0.0.2 car_3.0-2 withr_2.1.2
[29] TH.data_1.0-10 lazyeval_0.2.1 cli_1.0.1 survival_2.43-3
[33] crayon_1.3.4 readxl_1.3.0 fansi_0.4.0 nlme_3.1-137
[37] xml2_1.2.0 foreign_0.8-71 tools_3.5.2 data.table_1.12.0
[41] hms_0.4.2 multcomp_1.4-8 munsell_0.5.0 locfit_1.5-9.1
[45] plotrix_3.7-4 zip_1.0.0 compiler_3.5.2 rlang_0.3.1
[49] grid_3.5.2 iterators_1.0.10 rstudioapi_0.8 gtable_0.2.0
[53] codetools_0.2-15 abind_1.4-5 curl_3.3 R6_2.4.0
[57] zoo_1.8-4 lubridate_1.7.4 utf8_1.1.4 bindr_0.1.1
[61] stringi_1.2.4 parallel_3.5.2 Rcpp_1.0.0 tidyselect_0.2.5
Many thanks for the very nice package and the newest update to version 3.1.0. Unfortunately it fails to install with the following error message:
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for 'drc':
object 'bread' not found whilst loading namespace 'drc'
Error: Laden fehlgeschlagen
Execution halted
ERROR: loading failed
* removing 'C:/Program Files/R/rw/library/drc'
* restoring previous 'C:/Program Files/R/rw/library/drc'
Error: Failed to install 'drc' from GitHub:
(konvertiert von Warnung) installation of package ‘C:/Users/rhurlin/AppData/Local/Temp/RtmpsLoT5Y/file36a8508a31cc/drc_3.1-0.tar.gz’ had non-zero exit status
For some reason it does not found the newly introduced S3 method?
Suggest that a deviance
method for "drc" class be added to the drc package.
Might also review what methods exist for "nls" and "lm" classes and add any which are applicable.
methods(class = "nls")
methods(class = "lm")
Calculation of robust standard errors using the sandwich
package appears to fail under R 4.0.x but not under earlier versions (3.6.0).
I see this issue has already be raised and closed, and am just noting that it is reproducible on versions of R > 4.
suppressPackageStartupMessages({
library(drc)
library(lmtest)
library(sandwich)
})
ryegrass.m1<-drm(rootl ~ conc, data = ryegrass, fct = LL.4())
coeftest(ryegrass.m1, vcov = sandwich)
#> Error in UseMethod("estfun"): no applicable method for 'estfun' applied to an object of class "drc"
sessionInfo()
#> R version 4.0.2 (2020-06-22)
#> Platform: i386-w64-mingw32/i386 (32-bit)
#> Running under: Windows 10 x64 (build 17134)
#>
#> Matrix products: default
#>
#> locale:
#> [1] LC_COLLATE=English_New Zealand.1252 LC_CTYPE=English_New Zealand.1252
#> [3] LC_MONETARY=English_New Zealand.1252 LC_NUMERIC=C
#> [5] LC_TIME=English_New Zealand.1252
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] sandwich_2.5-1 lmtest_0.9-37 zoo_1.8-8 drc_3.0-1 MASS_7.3-51.6
#>
#> loaded via a namespace (and not attached):
#> [1] zip_2.1.1 Rcpp_1.0.5 compiler_4.0.2 pillar_1.4.6
#> [5] cellranger_1.1.0 highr_0.8 forcats_0.5.0 tools_4.0.2
#> [9] digest_0.6.25 evaluate_0.14 tibble_3.0.3 lifecycle_0.2.0
#> [13] lattice_0.20-41 pkgconfig_2.0.3 rlang_0.4.7 Matrix_1.2-18
#> [17] openxlsx_4.1.5 curl_4.3 yaml_2.2.1 mvtnorm_1.1-1
#> [21] haven_2.3.1 xfun_0.16 rio_0.5.16 stringr_1.4.0
#> [25] knitr_1.29 vctrs_0.3.3 gtools_3.8.2 hms_0.5.3
#> [29] grid_4.0.2 data.table_1.13.0 R6_2.4.1 plotrix_3.7-8
#> [33] survival_3.1-12 readxl_1.3.1 foreign_0.8-80 rmarkdown_2.3
#> [37] multcomp_1.4-13 TH.data_1.0-10 carData_3.0-4 car_3.0-9
#> [41] magrittr_1.5 scales_1.1.1 codetools_0.2-16 splines_4.0.2
#> [45] ellipsis_0.3.1 htmltools_0.5.0 abind_1.4-5 colorspace_1.4-1
#> [49] stringi_1.4.6 munsell_0.5.0 crayon_1.3.4
Created on 2020-10-19 by the reprex package (v0.3.0)
But works at https://rdrr.io/snippets/ which uses R 3.4.4, but same version of drc
and sandwich
.
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
b:(Intercept) 2.98222 0.47438 6.2865 3.882e-06 ***
c:(Intercept) 0.48141 0.12779 3.7672 0.001212 **
d:(Intercept) 7.79296 0.15311 50.8976 < 2.2e-16 ***
e:(Intercept) 3.05795 0.26741 11.4355 3.170e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
sh: 1: cannot create /dev/null: Permission denied
R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Matrix products: default
BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0
LAPACK: /usr/lib/lapack/liblapack.so.3.0
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] sandwich_2.5-1 lmtest_0.9-37 zoo_1.8-5 drc_3.0-1 MASS_7.3-51.4
loaded via a namespace (and not attached):
[1] zip_2.0.1 Rcpp_1.0.1 cellranger_1.1.0 pillar_1.3.1
[5] compiler_3.4.4 forcats_0.4.0 tools_3.4.4 tibble_2.1.1
[9] lattice_0.20-38 pkgconfig_2.0.2 rlang_0.3.4 openxlsx_4.1.0
[13] Matrix_1.2-17 curl_3.3 mvtnorm_1.0-8 haven_2.1.0
[17] rio_0.5.16 gtools_3.8.1 hms_0.4.2 grid_3.4.4
[21] data.table_1.12.2 plotrix_3.7-5 readxl_1.3.1 survival_2.44-1.1
[25] foreign_0.8-71 multcomp_1.4-8 TH.data_1.0-10 carData_3.0-2
[29] car_3.0-2 magrittr_1.5 scales_1.0.0 codetools_0.2-16
[33] splines_3.4.4 abind_1.4-5 colorspace_1.4-1 munsell_0.5.0
[37] crayon_1.3.4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.