Autore |
Discussione |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 10 maggio 2009 : 23:46:23
|
Ciao a tutti. Ho una serie di punti che attreverso il curve fitting toolbox, ho trovato una spline che li interpola in modo ottimale. A me piacerebbe trovare i valori che assume la spline in certi punti prestabiliti. Sapete come potrei fare?
|
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 11 maggio 2009 : 00:38:44
|
Non conosco il tool che hai indicato, nè sono molto pratico di matlab: però in octave (alternativa free a matlab) lo puoi fare in due modi.
Il primo é che la funzione spline restituisce in output un polinomio, che puoi applicare su altri punto con ppval:
>>> x = linspace(1, 100, 100);
>>> y = x*2;
>>> pp = spline(x, y);
>>> xi = linspace(1, 100, 10);
>>> yi = ppval(pp, xi)
yi =
2 24 46 68 90 112 134 156 178 200
>>> plot(xi, yi)
oppure, lo puoi fare direttamente nella chiamata a spline. Se leggi nella documentazione di spline in octave, ti dice che può essere chiamata con un parametro opzionale xi, contenente i valori per cui vuoi ottenere la spline: l:
>>> x = linspace(1, 100, 100);
>>> xi = linspace(1, 100, 10);
>>> y = x*2;
>>> yi = spline(x, y, xi)
yi =
2 24 46 68 90 112 134 156 178 200
>>> plot(xi, yi)
su matlab, la sintassi dovrebbe essere la stessa. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 11 maggio 2009 : 16:10:27
|
ti ringrazio proverò a cercare |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 13 maggio 2009 : 14:03:59
|
Citazione: Messaggio inserito da chick80
Lo puoi fare anche con R c'è una funzione chiamata smooth.spline
Vedi l'esempio qui: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/smooth.spline.html
non sapevo che anche R avesse questa opzione, proverò a darci una vista. Per ora ho risolto con matlab, la sintassi è identica a quella di octave |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 13 maggio 2009 : 15:37:22
|
Ci sono anche altri pacchetti più complessi per il fitting in R.
Se cerchi un po' su CRAN troverai un sacco di cose!
|
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 13 maggio 2009 : 16:38:01
|
Beh, a questo punto si puó dire che anche python (scipy.interpolate) puo' calcolare splines e altre interpolate!! |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 14 maggio 2009 : 16:31:56
|
phyton non lo sò usare. Cerco di focalizzarmi su matlab perchè si trova molto materiale. Ho un altro dubbio in merito. Dai punti estrapolati dalla spline che interpola eccellentemente i miei punti , ho ricavato un modello di una funzione secondo un modello da me desiderato) e da questa funzione ho ricavato un vettore contenente i punti ad essa appartenenti. C'è un modo per verificare la bontà del modello da me creato? In altre parole voglio vedere di quanto il vettore dei punti della modello da me creato "distano" dalla vettore dei punti della spline. Ho provato il coefficiente di pearson ma non fà al mio caso, considerando anche che il mio non'è lineare. La somma degli scarti dite che può essere fare al mio caso? Che comandi potrei usare? |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
|
serbring
Utente Junior
486 Messaggi |
Inserito il - 18 maggio 2009 : 01:04:30
|
Citazione: Messaggio inserito da chick80
Penso che il test di Kolmogorov-Smirnov potrebbe fare al caso tuo. Purtroppo non so dirti i comandi di Matlab, sorry.
ho visto ma leggendo mi dice se la distribuzione è assimilabile ad una normale, quindi non mi sembrerebbe il caso che fà per me. Stavo pensando che nel mio caso potrebbe andar bene l'indice di correlazione di pearson in quanto io grafico la y della spline con la y dei dati interpolati con il mio modello matematica, quindi se i dati sono interpolati bene io dovrei avere una relazione lineare, solamente che usandolo ottengo degli indici molto alti, dell'ordine dello 0.98 anche in casi in cui l'andamento mi sembra un po' differente. C'è qualcosa di sbagliato? Forse non'è l'indice adatto? |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 18 maggio 2009 : 08:37:06
|
No, puoi usare Kolgomorov Smirnov per testare una qualsiasi distribuzione. Forse l'esempio che hai visto usava una normale giusto come esempio (anche se per la normalità esistono altri test specifici).
Qui trovi un esempio: http://www.physics.csbsju.edu/stats/KS-test.html
Inoltre, ora che mi ricordo, sul Curve Fitting Toolbox (e in generale il fitting) trovi un po' di info/esempi/commenti sull'ottimo libro "Exploratory data analysis with MATLAB" di Martinez e Martinez (verso metà libro)
---
Per Pearson non ti saprei rispondere sinceramente... |
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
|
Discussione |
|