photo4u.it


Aiuto con S-PLUS

 
Nuovo argomento   Intervieni in questo argomento    Indice del forum -> Off-Topic
Mostra argomento precedente :: Mostra argomento successivo  
Autore Messaggio
mingus
utente attivo


Iscritto: 12 Apr 2005
Messaggi: 3983

MessaggioInviato: Mer 25 Gen, 2006 5:41 pm    Oggetto: Aiuto con S-PLUS Rispondi con citazione

Qualcuno bravo ad usare il software S-PLUS o in alternativa R è disposto a darmi una mano con un piccolo problema?

Speriamo che ci sia qualcuno... Rolling Eyes

Grazie comunque
Andrea

_________________
mingus
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
Slater
utente attivo


Iscritto: 08 Apr 2005
Messaggi: 855
Località: Lodi

MessaggioInviato: Mer 25 Gen, 2006 9:29 pm    Oggetto: Rispondi con citazione

...non so quanta gente troverai che smanetta con software di data mining... Boh?
_________________
Canon Eos 40D | Canon 17-40/F4L , Canon 50 1,4 USM, Tamron 90 2.8 SP Di Macro, Canon 70-300 IS USM F4-5.6, Canon 28-70 F3.5-4.5 mkII, Canon Speedlite 580 EX II |
NextoDI 2700 Extreme 250GB | Manfrotto 190DB + Testa 390RC2 |Tamrac Velocity 9 |
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
mingus
utente attivo


Iscritto: 12 Apr 2005
Messaggi: 3983

MessaggioInviato: Mer 25 Gen, 2006 10:32 pm    Oggetto: Rispondi con citazione

Posso immaginarlo, ma magari photo4u mi stupisce Smile

Sto lavorando sulla tesi e S-Plus mi serve perchè è una forza nel massimizzare funzioni di verosimiglianza piuttosto complesse. E' un lavoro interessante ma che dal punto di vista computazionale è da mani nei capelli Rolling Eyes

Ciao
Andrea

_________________
mingus
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
Slater
utente attivo


Iscritto: 08 Apr 2005
Messaggi: 855
Località: Lodi

MessaggioInviato: Mer 25 Gen, 2006 10:36 pm    Oggetto: Rispondi con citazione

guarda, non so se posso esserti d'aiuto ma le ho studiate in basi di dati le data mining... se vuoi provare a postare qualcosa vedo se riesco ad aiutarti...ma non garantisco niente Smile
_________________
Canon Eos 40D | Canon 17-40/F4L , Canon 50 1,4 USM, Tamron 90 2.8 SP Di Macro, Canon 70-300 IS USM F4-5.6, Canon 28-70 F3.5-4.5 mkII, Canon Speedlite 580 EX II |
NextoDI 2700 Extreme 250GB | Manfrotto 190DB + Testa 390RC2 |Tamrac Velocity 9 |
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
mingus
utente attivo


Iscritto: 12 Apr 2005
Messaggi: 3983

MessaggioInviato: Gio 26 Gen, 2006 12:01 am    Oggetto: Rispondi con citazione

Il problema è nella programmazione in S-Plus.
Ho una routine che presi n valori li "sbatte" dentro una funzione e ne plotta l'andamento. Sullo stesso grafico ho anche una retta parallela all'asse delle ascisse che intercetta la prima curva 2 volte. Io devo trovare ardinata e ascissa dei 2 punti. Per l'ordinata non è un problema, il problema è nel determinare le ordinate. La funzione *non* è invertibile, quindi non posso buttargli dentro l'ordinata sperando che mi restituisca le ascisse.
E' proprio un problema di programmazione, che non è il mio campo. A differenza delle funzioni di verosimiglianza che ormai me le mangio a colazione Smile

Il codice comunque è questo:
Codice:
"gev.profxi"<-
function(z, xlow, xup, conf = 0.95, nint = 100)
{
#
# plots profile log-likelihood for shape parameter
# in gev model
#
   cat("If routine fails, try changing plotting interval", fill = T)
   assign("xdat", z$data, frame = 1)
   v <- NULL
   x <- seq(xup, xlow, length = nint)
   sol <- c(z$mle[1], z$mle[2])
   for(i in 1:(length(x))) {
      assign("xi", x[i], frame = 1)
      sol <- nlmin(gev.plikxi, sol, print = 0)$x
      v[i] <- gev.plikxi(sol)
   }
   plot(x,  - v, type = "l", xlab = "Shape Parameter", ylab =
      "Profile Log-likelihood")
   ma <-  - z$nllh
   abline(h = ma, col = 4)
   abline(h = ma - 0.5 * qchisq(conf, 1), col = 4)
   invisible()
}


Mi interessa trovare i punti di intersezione tra la retta orizzontale ma - 0.5 * qchisq(conf, 1) e la "curva" formata dall'unione dei cento valori -v.

Ciao
grazie comunque!
Andrea[/code]

_________________
mingus
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
Slater
utente attivo


Iscritto: 08 Apr 2005
Messaggi: 855
Località: Lodi

MessaggioInviato: Gio 26 Gen, 2006 12:33 am    Oggetto: Rispondi con citazione

non conoscendo il linguaggio non è che possa aiutarti molto.
magari sarò banale, ma hai provato a vedere se non esiste una funzione che dati in input le 2 curva/retta ti resituisca i punti di intersezione? perchè ho provato a pensare qualcosa ma non puoi manipolare 2 variabili matematicamente (nel senso pensando alla matematica non puoi applicare il principio di sostituzione su 2 variabili che hanno assegnate le due curve/retta)
....sorry.... di + non so come aiutarti Boh?

_________________
Canon Eos 40D | Canon 17-40/F4L , Canon 50 1,4 USM, Tamron 90 2.8 SP Di Macro, Canon 70-300 IS USM F4-5.6, Canon 28-70 F3.5-4.5 mkII, Canon Speedlite 580 EX II |
NextoDI 2700 Extreme 250GB | Manfrotto 190DB + Testa 390RC2 |Tamrac Velocity 9 |
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
photolais
utente


Iscritto: 07 Gen 2006
Messaggi: 340
Località: saronno

MessaggioInviato: Gio 26 Gen, 2006 1:01 am    Oggetto: Rispondi con citazione

v[i] e x[i] rappresentano le coordinate dei punti della curva ?
se si, allora forse puoi fare così (i dettagli dipendono dal linguaggio di programmazione che non so quale sia)
L'idea è che se le due curve si intersecano allora prima (dell'intersezione) una sta sopra, poi sotto.
Allora ad ogni ciclo calcolo la differenza di ordinata tra le due, quando cambia di segno ho il punto di intersezione (v[i],x[i])
Quindi nel dettaglio farei così:
utilizzo due variabili: deltaCorr e deltaPrec, inizializzate a +100000 (o comunque ad un valore sicuramente maggiore della differenza piu grande tra le due)
Nel ciclo che hai riportato, dopo l'ultima operazione (calcolo di v[i]) io calcolerei una variabile 'deltaCorr' così
delta1<-v[i]-yretta (cioè credo ma - 0.5 * qchisq(conf, 1))
if (deltaPrec=10000 ) or (deltaCorr*deltaPrec)>0 then
deltaPrec=deltaCorr
else
hai il punto cercato (v[i],x[i]) e te lo salvi o stampi come ti pare
ovviamente la sintassi può cambiare parecchio, il senso del test della if è il seguente:
deltaPrec=10000 --->siamo al primo giro, non ha senso considerare deltaPrec
(deltaCorr*deltaPrec)>0 i due delta hanno lo stesso segno--> le curve non si sono intersecate.
Spero ti possa servire Smile
Fammi sapere se va, se non va o se servono maggiori chiarimenti

Ciao
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
mingus
utente attivo


Iscritto: 12 Apr 2005
Messaggi: 3983

MessaggioInviato: Gio 26 Gen, 2006 9:46 am    Oggetto: Rispondi con citazione

Grazie mille ad entrambi.

photolais, ad una soluzione simile alla tua ci avevo pensato pure io Ok! ora devo studiarmi un po' meglio il linguaggio. Non sono mica un informatico, io! Very Happy

Se esce qualcosa vi farò sapere.

Ciao
Andrea

_________________
mingus
Vai ad inizio pagina
Vai a fine pagina
Mostra il profilo utente Galleria utente Invia un messaggio privato Bacheca utente
Mostra i messaggi a partire da:   
Nuovo argomento   Intervieni in questo argomento    Indice del forum -> Off-Topic Tutti gli orari del forum sono CET (Europa)
Pag. 1 di 1

 
Vai a:  
Non puoi iniziare nuovi argomenti
Non puoi rispondere ai messaggi
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
Non puoi allegare files in questo forum
Puoi scaricare gli allegati in questo forum



Tutti i contenuti presenti sul sito sono di proprieta' esclusiva degli autori, sono vietate la riproduzione e la distribuzione degli stessi senza previa esplicita autorizzazione.

Visualizza la policy con cui vengono gestiti i cookie.

© 2003, 2016 photo4u.it - contatti - based on phpBB - Andrea Giorgi