Regressione non lineare di dati sperimentali
Salve, devo effettuare una regressione di valori sperimentali di una cella a idrogeno, e naturalmente la funzione che mi aspetto non è lineare (logaritmi, arcoseni e altre belle cosucce). Siccome so di sicuro che Excel non ce la può fare, mi servirebbe che qualcuno mi dicesse:
1) Dove trovare su Internet (non sono ancora passato in biblioteca) una spiegazione su quale metodo impiegare, il professore ha parlato del Metodo di GAuss ma io ho trovato solo applicazioni per funzioni lineari http://forumtgmonline.futuregamer.it...lookaround.gif , oppure
2) Come implementare il tutto in MAtlab http://forumtgmonline.futuregamer.it...on_biggrin.gif
Io intanto continuo a cercare http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
Re: Regressione non lineare di dati sperimentali
Ho trovato un metodo polinomiale...il problema è che funziona per una sola variabile indipendente, mentre io ne ho 2.
http://forumtgmonline.futuregamer.it...cons/wip41.gif
Re: Regressione non lineare di dati sperimentali
la tecnica del "massimizzare la funzione di verosimiglianza" in teoria funziona per qualunque forma funzionale, anche se in genere da' luogo ad equazioni che puoi risolvere solo numericamente, per iterazione... http://forumtgmonline.futuregamer.it...n_confused.gif
io ti consiglierei, se la forma funzionale e' semplice, di tentare di ricondurti ad una retta. Es. se devi fittare y=exp(x) non lo fai cosi' ma fitti lny in funzione di lny.
in ogni caso non usare mai polinomi di grado troppo alto, piu' in generale non usare mai funzioni con "tanti" paramentri (di solito, con 5-6 parametri fitti piu' o meno tutto... e quindi non vuol dire niente... http://forumtgmonline.futuregamer.it...n_confused.gif )
Re: Regressione non lineare di dati sperimentali
guarda, non ho capito bene di cosa hai bisogno..però questo semestre ho usato sw statistici per il datamining tipo XLMiner e SPSS..li inserendo i dati puoi farci quello che vuoi, pure regressioni multiple e logaritmiche..
Re: Regressione non lineare di dati sperimentali
Citazione:
skywolf ha scritto lun, 06 febbraio 2006 alle 18:38
la tecnica del "massimizzare la funzione di verosimiglianza" in teoria funziona per qualunque forma funzionale, anche se in genere da' luogo ad equazioni che puoi risolvere solo numericamente, per iterazione...
http://forumtgmonline.futuregamer.it...n_confused.gif
io ti consiglierei, se la forma funzionale e' semplice, di tentare di ricondurti ad una retta. Es. se devi
fittare y=exp(x) non lo fai cosi' ma
fitti lny in funzione di lny.
in ogni caso non usare mai polinomi di grado troppo alto, piu' in generale non usare mai funzioni con "tanti" paramentri (di solito, con 5-6 parametri
fitti piu' o meno tutto... e quindi non vuol dire niente...
http://forumtgmonline.futuregamer.it...n_confused.gif )
ARGH. http://forumtgmonline.futuregamer.it..._surprised.gif non potevi scrivere "interpolare"? http://forumtgmonline.futuregamer.it...cons/mecry.gif
Re: Regressione non lineare di dati sperimentali
Citazione:
redbull1983 ha scritto mer, 08 febbraio 2006 alle 11:38
guarda, non ho capito bene di cosa hai bisogno..però questo semestre ho usato sw statistici per il datamining tipo XLMiner e SPSS..li inserendo i dati puoi farci quello che vuoi, pure regressioni multiple e logaritmiche..
Uhm, scaricabili o no ? Perchè il toolbox di matlab per interpolare l'ho trovato, ma fa soltanto polinomiali...che va già bene, ma non è esattamente quello che cerco io.
Re: Regressione non lineare di dati sperimentali
Citazione:
Styx ha scritto gio, 09 febbraio 2006 alle 09:20
Citazione:
redbull1983 ha scritto mer, 08 febbraio 2006 alle 11:38
guarda, non ho capito bene di cosa hai bisogno..però questo semestre ho usato sw statistici per il datamining tipo XLMiner e SPSS..li inserendo i dati puoi farci quello che vuoi, pure regressioni multiple e logaritmiche..
Uhm, scaricabili o no ? Perchè il toolbox di matlab per interpolare l'ho trovato, ma fa soltanto polinomiali...che va già bene, ma non è esattamente quello che cerco io.
procurati spss13, sono un centinaio di mb..e dagli un'occhiata
Re: Regressione non lineare di dati sperimentali
Re: Regressione non lineare di dati sperimentali
Citazione:
skywolf ha scritto lun, 13 febbraio 2006 alle 14:54
no.
ok http://forumtgmonline.futuregamer.it...lookaround.gif però mi fa molto "come potete vedere nelle slide che stanno shiftando, il gap tra le due funzioni..." http://forumtgmonline.futuregamer.it..._icons/asd.gif
però in effetti anche il mio prof di statistica diceva spesso "fittare", ho il sospetto che sia nato come inglesismo per poi avere connotato a sè, nevvero? http://forumtgmonline.futuregamer.it.../icon_razz.gif
Re: Regressione non lineare di dati sperimentali
Risolto, è bastato spulciare per bene il toolboc cftool di MATLab http://forumtgmonline.futuregamer.it...s/icon_nod.gif
Re: Regressione non lineare di dati sperimentali
facciamo passare la slide... sull'asse iupsilon, strutto pro capite... http://forumtgmonline.futuregamer.it..._icons/asd.gif
credo anch'io. In realta' inizi usando "fit" perche' e' + breve, ma a quel punto "non puoi" piu' dire "interpolare"... se il risultato e' il fit, l'operazione deve dirsi "fittaggi" http://forumtgmonline.futuregamer.it..._icons/asd.gif
http://forumtgmonline.futuregamer.it...cons/crasd.gif
Re: Regressione non lineare di dati sperimentali
Rispolvero quesro topic per un problema analogo: premesso che non trovo gli appunti di Trattamento delle Osservazioni, e comunque detti appunti eran solo un coacervo di formulacce male spiegate e perciò poco capite, mi trovo a dover determinare i parametri della curva di costo per la posa in opera di tubi d'acquedotto, la cui equazione è Ci=W0+W1*D^beta, in cui Cì è il costo d'impianto, D è il diametro della condotta (la mia bella e allegra variabile indipendente) e W0,W1 e beta sono i parametri che devo stimare http://forumtgmonline.futuregamer.it...ns/scratch.gif mi son dati alcuni diametri commerciali Dj e i rispettivi costi di impianto (Ci)j, e devo appunt ostimare per interpolazione i parametri della curva (anche se alla fin della fiera mi serve solo beta per scrivere la condizione economica di minima passività per ogni nodo in cui confluiscono n condutture), il problema è: come diablo faccio' minimi quadrati e via andare? Dubito, perchè ho tre parametri e non due http://forumtgmonline.futuregamer.it...ns/scratch.gif polinomio? dubito again, visto che il parametro mi compare a esponente http://forumtgmonline.futuregamer.it...ns/scratch.gif
Il libro di Costruzioni Idrauliche glissa, parlando semplicemente di "parametri che possono essere stimati con le usuali tecniche di regressione una volta noti i costi di costruzione per diversi diametri" http://forumtgmonline.futuregamer.it..._icons/ehm.gif il libro di analisi tratta solo i minimi quadrati ma con due parametri solamente, mentre i pochi fogli di Trattamento che ho in mano usan funzioni polinomiali in cui i parametri compaiono solo come coefficienti dei monomi http://forumtgmonline.futuregamer.it...cons/wip41.gif
Insomma, qua mi si stan dando per scontate cose che in realtà non ho mai visto manco a prezzo pieno http://forumtgmonline.futuregamer.it...cons/crasd.gif
Re: Regressione non lineare di dati sperimentali
Citazione:
siriochan ha scritto mer, 22 marzo 2006 alle 12:08
Rispolvero quesro topic per un problema analogo: premesso che non trovo gli appunti di Trattamento delle Osservazioni, e comunque detti appunti eran solo un coacervo di formulacce male spiegate e perciò poco capite, mi trovo a dover determinare i parametri della curva di costo per la posa in opera di tubi d'acquedotto, la cui equazione è Ci=W0+W1*D^beta, in cui Cì è il costo d'impianto, D è il diametro della condotta (la mia bella e allegra variabile indipendente) e W0,W1 e beta sono i parametri che devo stimare
http://forumtgmonline.futuregamer.it...ns/scratch.gif mi son dati alcuni diametri commerciali Dj e i rispettivi costi di impianto (Ci)j, e devo appunt ostimare per interpolazione i parametri della curva (anche se alla fin della fiera mi serve solo beta per scrivere la condizione economica di minima passività per ogni nodo in cui confluiscono n condutture), il problema è: come diablo faccio' minimi quadrati e via andare? Dubito, perchè ho tre parametri e non due
http://forumtgmonline.futuregamer.it...ns/scratch.gif polinomio? dubito again, visto che il parametro mi compare a esponente
http://forumtgmonline.futuregamer.it...ns/scratch.gif
Il libro di Costruzioni Idrauliche glissa, parlando semplicemente di "parametri che possono essere stimati con le usuali tecniche di regressione una volta noti i costi di costruzione per diversi diametri"
http://forumtgmonline.futuregamer.it..._icons/ehm.gif il libro di analisi tratta solo i minimi quadrati ma con due parametri solamente, mentre i pochi fogli di Trattamento che ho in mano usan funzioni polinomiali in cui i parametri compaiono solo come coefficienti dei monomi
http://forumtgmonline.futuregamer.it...cons/wip41.gif
Insomma, qua mi si stan dando per scontate cose che in realtà non ho mai visto manco a prezzo pieno
http://forumtgmonline.futuregamer.it...cons/crasd.gif
Usi Linux?
Se si', hai provato con il Nonlinear Curve Fitting di Xmgrace? Quello fitta di tutto... http://forumtgmonline.futuregamer.it...on_biggrin.gif
Re: Regressione non lineare di dati sperimentali
Chiaro e lindo: NO. Non uso linux http://forumtgmonline.futuregamer.it..._icons/asd.gif
Magari più tardi provo col Maple, ma mi interessava perlopiù la teoria, i passagi e le considerazioni da fare, poi i conti li sviluppo da me http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
Re: Regressione non lineare di dati sperimentali
Comincia col leggere:
http://it.wikipedia.org/wiki/Metodo_dell a_massima_verosimiglianza
In soldoni: Tu hai delle coppie (x,y) invece si soli "dati"; e allora invece di [(xi-mu)/sigma]^2 devi prendere una roba del tipo [(f(xi)-yi)/sigma]^2, dove gli xi sono i diametri e gli yi i costi d'impianto; la sigma non la sai, dunque fai finta che sia costante e -di fatto- sparira' dai conti. f() contiene i tuoi parametri ignoti W.
Tu derivi il log della funzione di verosimiglianza risp. ai parametri e poni a 0 (max verosimiglianza), e ottieni cosi' delle belle euqazioncine che non sai risolvere analiticamente, in linea di max, ma puoi risolvere numericamente coi metodi standard x risolvere eq. non lineari (metodo di Newton & co x intenderci).
Ti consiglio caldamente di provare come esercizio, a ricavare con passaggi algebricila formula standard x l'interpolazione lineare; se ti viene... hai fatto bene i conti e hai capito la procedura.
(ovviamente la regressione lin e' uno dei pochi casi risolubili analiticamente. http://forumtgmonline.futuregamer.it...icon_smile.gif )
Re: Regressione non lineare di dati sperimentali
ora mi ci metto di buzzo buono e leggo tutto per bene http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
però sul libro di Costruzioni Idrauliche si afferma che il parametro beta è di solito 1<beta<2 http://forumtgmonline.futuregamer.it...lookaround.gif potrei semmplificare il tutto ponendo beta come arbitrario e usare i minimi quadrati http://forumtgmonline.futuregamer.it...lookaround.gif in un esercizio svolto è data una curva di costo in cui beta è addirittura 1 http://forumtgmonline.futuregamer.it...ns/scratch.gif peccato che non ci sia un briciolo di spiegazione http://forumtgmonline.futuregamer.it...cons/wip41.gif potrei fare come farà la maggioranza di noi, ovvero prendere acriticamente i parametri dal libro, ma la mia CuriositàIngegneristicaSuperiore mi impone di ricavarli da me per poi adottare quelli del libro senza commettere apprezzabili errori http://forumtgmonline.futuregamer.it..._icons/asd.gif
Re: Regressione non lineare di dati sperimentali
Purtroppo la referenza di wiki non e' delle migliori perche' parla un po' d'altro, di media e varianza.... il mio libro di th. degli errori entrava nel vivo e ricavava esplicitamente la formula nel caso lineare, che e' poi quello che basta ed occorre per capire bene la teoria. Se hai altri problemi sono qua (forse http://forumtgmonline.futuregamer.it...lookaround.gif )
Re: Regressione non lineare di dati sperimentali
mmmmh, rileggendo il libro di analisi, fa un esempio in cui si usa il metodo dei minimi quadrati per una funzione nonlineare, ma se la cava passando ai logaritmi, e sottolinea che che le costanti che ottiene sono diverse da quelle che si sarebbero ottenute applivando il metodo al problema originario, di non agevole risoluzione http://forumtgmonline.futuregamer.it...ns/scratch.gif ma alla fin fine, mi basta scrivere la sommatoria di (Yi-F(Xi))^2 magari pure esplicitandola visto che ho solo una decina scarsa di valori (Xi,Yi), e derivare termine a termine rispetto ai tre parametri, per poi risolvere numericamente il sistema di tre equazioni che mi risulta, o no? http://forumtgmonline.futuregamer.it...lookaround.gif
In che senso le costanti ottenute son "diverse"? si adattano diversamente, o proprio non c'entrano un tubero? se si scostan poco, posso appliare il metodo della "variabile costante correttiva lungimirante di Siriochan", o "metodo dell'ipotesi di calcoli corretti sulla fiducia o con beneficio d'inventario", che consiste nell'introdurre un'opportuna variabile aleatoria che rende uguali i due risultati, per poi arrotondare tutto alle unità o alle decine a seconda delle esigenze e nascondere le tracce http://forumtgmonline.futuregamer.it..._icons/asd.gif
Re: Regressione non lineare di dati sperimentali
Citazione:
siriochan ha scritto mer, 22 marzo 2006 alle 15:26
mmmmh, rileggendo il libro di analisi, fa un esempio in cui si usa il metodo dei minimi quadrati per una funzione nonlineare, ma se la cava passando ai logaritmi, e sottolinea che che le costanti che ottiene sono diverse da quelle che si sarebbero ottenute applivando il metodo al problema originario, di non agevole risoluzione
http://forumtgmonline.futuregamer.it...ns/scratch.gif ma alla fin fine, mi basta scrivere la sommatoria di (Yi-F(Xi))^2 magari pure esplicitandola visto che ho solo una decina scarsa di valori (Xi,Yi), e derivare termine a termine rispetto ai tre parametri, per poi risolvere numericamente il sistema di tre equazioni che mi risulta, o no?
http://forumtgmonline.futuregamer.it...lookaround.gif
in teoria... http://forumtgmonline.futuregamer.it...n_confused.gif
se ho capito bene quello che scrivi... http://forumtgmonline.futuregamer.it...n_confused.gif
Citazione:
Quote:
In che senso le costanti ottenute son "diverse"? si adattano diversamente, o proprio non c'entrano un tubero? se si scostan poco, posso appliare il metodo della "variabile costante correttiva lungimirante di Siriochan", o "metodo dell'ipotesi di calcoli corretti sulla fiducia o con beneficio d'inventario", che consiste nell'introdurre un'opportuna variabile aleatoria che rende uguali i due risultati, per poi arrotondare tutto alle unità o alle decine a seconda delle esigenze e nascondere le tracce
http://forumtgmonline.futuregamer.it..._icons/asd.gif
In teoria fare la regressione lineare y=mx+q del loglog o applicare il metodo della max verosimiglianza con funzione di tipo y=A*x^B e' esattamente la stessa cosa, salvo approx numeriche... la relazione fra i parametri dovrebbe essere esattamente m=B, A=exp(q). http://forumtgmonline.futuregamer.it...y_icons/KA.gif
Re: Regressione non lineare di dati sperimentali
Dunque dunque: intendo, il metodo dei minimi quadrati lo posso applicare in teoria a ogni funzione, no? calcolare le derivate è una scemenza, il problema è che uguagliandole tutte a zero e calcolando la sommatoria sui 12 valori dati Maple si blocca e non mi risolve un tubazzo di niente http://forumtgmonline.futuregamer.it...cons/mecry.gif forse perchè si ritrova beta a esponente per 12x3=36 volte http://forumtgmonline.futuregamer.it..._icons/ehm.gif il libro afferma che di solito beta è compreso fra 1 e 2, ma anche mettendo questo vincolo la situazione non cambia http://forumtgmonline.futuregamer.it...ns/scratch.gif imponendo beta=1.5 lo risolve agevolmente, ma perchè ovviamente diventa un'interpolazione polinomiale semplice http://forumtgmonline.futuregamer.it...ns/scratch.gif tuttavia, restringendo il campo di possibili valori dei parametri ad un opportuno intorno di quelli nel caso polinomiale non cava lo stesso un ragno dal buco http://forumtgmonline.futuregamer.it...ns/scratch.gif
Devo cercare di capire come fare a richiedere una soluzione aprossimata http://forumtgmonline.futuregamer.it..._icons/ARG.gif
Re: Regressione non lineare di dati sperimentali
Esatto, esatto, risoluzione approssimata http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
Si fa sempre e comunque con metodi iterativi: si parte da un valore iniziale dei parametri e si cerca di stimare una sorta di errore, di misura di quanto fanno schifo i parametri scelti; allora si modificano gli stessi in base a questa misura, si ricalcola.... eccetera.
Salvo casi sfigati, il metodo converge ad una soluzione. http://forumtgmonline.futuregamer.it...icon_smile.gif
Re: Regressione non lineare di dati sperimentali
Sì sì, il metodo lo conosco, d'altra parte faccio Ingegneria http://forumtgmonline.futuregamer.it...on_biggrin.gif il problema ora è come richiedere al Maple una soluzione approssimata delle equazioni con una discreta tolleranza, visto che credo di essere riuscito a dargli un intervallo in cui cercare soluzioni http://forumtgmonline.futuregamer.it...ns/scratch.gif al limite, gli imposto semplicemente le tre equazioni e gliele faccio calcolare per valori arbitrari dei parametri, oppure vedo se esiste il modo di fargli fare un bel ciclo IF http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
Direi che ora è diventato un problema di implementazione e non più di matematica, la cui teoria tra l'altro credevo di non sapere http://forumtgmonline.futuregamer.it..._icons/asd.gif e invece gira e rigira stavo usando il metodo giusto http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif
grazie per il supporto tecnico (treppiede http://forumtgmonline.futuregamer.it...ns/sisi1xy.gif ) http://forumtgmonline.futuregamer.it...cons/allah.gif
Re: Regressione non lineare di dati sperimentali
Ohibò http://forumtgmonline.futuregamer.it...on_neutral.gif son riuscito a far fare i calcoli approssimati a Maple, ma come parametri mi restituisce quelli di una bella funzione costante http://forumtgmonline.futuregamer.it...on_neutral.gif ho provato a vedere come fossero distribuiti i valori sperimentali, e "corpo di mille moltiplicatori di Lagrange, Batman! Sono bene interpolati da una retta!" http://forumtgmonline.futuregamer.it..._icons/azz.gif a questo punto, i parametri faccio prima a misurarli direttamente con Autocad, interpolando "a occhio" con un bel segmento http://forumtgmonline.futuregamer.it..._icons/asd.gif
Però non caapisco come mai Maple mi dia, anzichè la retta, un bel segmento orizzontale passante per il punto medio dei miei dati sperimentali http://forumtgmonline.futuregamer.it...ns/scratch.gif
Re: Regressione non lineare di dati sperimentali
Forse non hai implementato bene il metodo? Forse in realta' non lo hai capito? http://forumtgmonline.futuregamer.it...n_confused.gif
Prova a fare i conti analiticamente usando come f(x) la forma funzionale di una retta; il risultato che deve venirti fuori lo sai; se lo riottieni, allora hai capito tutto, altrimenti stai sbagliando qualcosa. http://forumtgmonline.futuregamer.it...y_icons/KA.gif
Re: Regressione non lineare di dati sperimentali
Ehm, il metodo l'ho ben chiaro sia nel ragionamento che nelle metodiche, si trattava solo dei minimi quadrati in fondo, che ho e avevo ben capito già ad analisi, il dubbio sorgeva sul perchè maple che s'impastasse http://forumtgmonline.futuregamer.it.../icon_razz.gif (lo dico quasi con una punta di piccato orgoglio da studente d'ingegneria http://forumtgmonline.futuregamer.it..._icons/asd.gif )
Appurato che le formule eran scritte giuste (sommatoria dei quadrati degli scarti, poi calcolo delegato a maple delle derivate e scrittura del sistema di tre equazioni), ho provato a fare regressione lineare con due soli parametri, ponendo beta=1, e andava, poi ho provato a far ballare beta attorno a 1 calcolando la sommatoria dei quadrati degli scarti e variando beta a mano a seconda che quella aumentasse o calasse, e restituiva una pseudo-retta http://forumtgmonline.futuregamer.it...ns/scratch.gif ho provato a dare, nel sistema di tre equazioni, degli intorni di quei valori dei parametri come campo di ricerca per la risoluzione e nisba http://forumtgmonline.futuregamer.it...ns/scratch.gif
Poi ho provato a fargli plottare la funzione trovata prima e i dati sperimentali come confronto, e ce n'era uno molto al di fuori della retta http://forumtgmonline.futuregamer.it..._icons/ARG.gif avevo sbagliato a digitare un dato in Maple, mentre la verifica precedente l'avevo fatta con autocad immetendo i valori corretti http://forumtgmonline.futuregamer.it..._icons/ehm.gif corretto quello, pure il sistema con 3 incognite l'ha risolto al volo, ottenendo il valore esatto di beta alla IV cifra decimale: 0.989 http://forumtgmonline.futuregamer.it..._icons/ehm.gif http://forumtgmonline.futuregamer.it...s/icon_lol.gif ma baff'...