buongiorno a tutti,

ho simulato un df di 1001 colonne in cui la colonna "age" é l'unica variabile indipendente.

Ció che vorrei fare é ripetere un nls su ogni colonna e salvare i rispettivi coefficienti.

questo é quello che ho scritto e non riesco a trovare l'errore!

Mx1$age<-1:10

it<-names(Mx1[,1:1000]) # it é il vettore che contiene i nomi delle colonne che in teroia dovrebbero inserirsi nel modello


models<-lapply (it, function(x) { nls(substitute (log(i/(1-i)) ~ a+b+c*exp(c*age),
start=list(a=0.1,b=-0.2,c=-0.1),
list(i = as.name(x),
data=Mx1)))})

summarise<-lapply(models, summary)

continua a darmi l'errore:

Error in substitute(log(i/(1 - i)) ~ a + b + c * exp(c * age), start = list(a = 0.1, : unused argument (start = list(a = 0.1, b = -0.2, c = -0.1))

credo sia qualcosa di semplice ma non riesco a venirne a capo :-(

se avete soluzioni alternative per raggiungere lo scopo sono ben accette!!

un saluto a tutti!

Matteo

Visualizzazioni: 50

Rispondi

Risposte a questa discussione

Ciao Matteo,

scusa il ritardo...

A parte che non credo che il modello da stimare abbia tutti i parametri stimabili, hai provato con qualcosa simile a quello che segue?

xx <- data.frame(matrix(rnunif(100*1001), ncol = 1001))
names(xx)[1001] <- "age"
start <- list(a=0.1,b=-0.2,c=-0.1)
mdls <- lapply(names(xx)[1:1000],
  function(i,data, start){
    nls(formula = as.formula(paste0("log(",i, "/(1-",i,")) ~ a + b + c*exp(c*age)")), data=data, start=start)
  },
  data=xx, start=start)

Ciao

Enrico

RSS

Social

 

Gruppi

© 2018   Creato da Duccio Schiavon.   Tecnologia

Badge  |  Segnala un problema  |  Politica sulla privacy  |  Termini del servizio