Logistic: erro ... 0 (non-NA) cases

Olá pessoal, estou usando um pacote drda para encontrar o melhor modelo

logístico (to fit logistic models).

Meu código do script:

library(tidyverse)

library(readxl)

library(drda)

dadosexp2 <-read.delim("~/Documents/Rstatistics/teste drda/dadosexp2_tab_txt.txt")

dados = dadosexp2

Este modelo dá erro:


fit_ll2v <- drda(viab2hcent ~ dose, data = dados, mean_function = "loglogistic2")

fit_l2v <- drda(viab2hcent ~ logdose, data = dados, mean_function = "logistic2")

Erro dos modelos acima:

Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, …) :

0 (non-NA) cases

Os modelos abaixo NÃO dão erro:

fit_lgzv <- drda(viab2hcent ~ dose, data = dados, mean_function = "loggompertz")

fit_ll4v <- drda(viab2hcent ~ dose, data = dados, mean_function = "loglogistic4")

fit_ll5v <- drda(viab2hcent ~ dose, data = dados, mean_function = "loglogistic5")

fit_lgzv <- drda(viab2hcent ~ logdose, data = dados, mean_function = "gompertz")

fit_l4v <- drda(viab2hcent ~ logdose, data = dados, mean_function = "logistic4")

fit_l5v <- drda(viab2hcent ~ logdose, data = dados, mean_function = "logistic5")

Somente o modelo logístico com 2 parâmetros é que dá erro.

Nos dados não há missing values NA, e todos os níveis de drogas tem o mesmo número de repetições (n-8).

Alguém tem alguma dica do que pode estar acontecendo?

Aqui está dos dados:

Olá,

Essa função drda é de qual pacote? Eu dei um google aqui e encontrei esse CRAN pacote drda.

Eu vejo duas causas:

(1°) O parâmetro mean_function = “loglogistic2” pode não convergir quando se tem 0’s. Tem que dar uma averiguada na função e estudar o que o parâmetro precisa para o seu bom funcionamento;
(2°) Como há 0’s no banco de dados, a matrix pode não ser singular de acordo com os parâmetros da função.

Mas ainda assim gostaria de dar uma olhada na função que você está usando para assim ter uma melhor conclusão. E lembre-se que a sua função está usando um lm.fit, ou seja, há pressuposições.

Fernanda, obrigado pelas considerações.
O pacote que uso é exatamente o que você encontrou: “drda: Dose-Response Data Analysis”.

Eu tenho um controle de viabilidade 100% então eu transformo tudo em percentuais e nos percentuais não tem zero.

Explicando melhor: onde eu tenho nível Zero de drogaivm eu tenho 100% de viabilidade celular. Eu faço a média deste nível zero e ajusto a média como sendo 100%.

Eu consegui resolver o problema do erro ajustando o meu controle de 100% como sendo 1. Ou seja, o valor médio do nível zero de doseivm passou a ser 1 e não 100. Então a amplitude dos dados ficaram em valores próximos a zero (mas não zero) e valor levemente superiores a 1. Desta forma o erro desapareceu e eu consegui fazer as análises. No entanto, eu não consegui descobrir exatamente o motivo deste erro. Possivelmente tem a ver com o que você mencionou “parâmetros da função”. Escrevi para a autora do pacote (na Finlândia) e ela ficou de replicar o erro como meus dados e me dar um retorno no entanto ainda não me respondeu até esta data.

Agora eu passei ajustar todos os dados de viabilidade de de zero a 1 e não mais de zero a 100.

Abraço.

Giovani

1 curtida

Fernanda, a pessoa que desenvolveu o drda enviou-me o seguinte:
“…In fact, you figure it out yourself, you should not use the percentage data for log-/logistic models with 2 parameters if you want to use our package. Given the current parametrization for drda, we constrain the lower and upper bounds to be within 0-1 range for 2-parameter models. If you would simply divide percentage values by 100 to make them with 0-1 range, then the algorithm will work…”

1 curtida