Autore Topic: [Risolto]Funzioni statistiche  (Letto 638 volte)

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
[Risolto]Funzioni statistiche
« il: 19 Giugno 2015, 13:03:04 »
In Gambas si possono usare funzioni statistiche come il calcolo della deviazione standard, la media o altro?

« Ultima modifica: 30 Giugno 2015, 17:37:42 da Akrobaticone »
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Funzioni statistiche
« Risposta #1 il: 20 Giugno 2015, 02:42:50 »
Potrebbe essere il componente gb.gsl, basato sulla libreria GSL - GNU Scientific Library ( http://www.gnu.org/software/gsl/ ).

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Funzioni statistiche
« Risposta #2 il: 20 Giugno 2015, 08:16:14 »
purtroppo non ci sono le funzioni che cerco
potrei provare a chiedere sulla mailing list internazionale

"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Funzioni statistiche
« Risposta #3 il: 20 Giugno 2015, 14:20:43 »
potrei creare una classe.....
"e il naufragar m'è dolce in questo mar"

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.723
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Funzioni statistiche
« Risposta #4 il: 20 Giugno 2015, 21:42:24 »
potrei creare una classe.....
Sì. Sarebbe buona cosa.

...oppure vedere se esiste una libreria esterna installabile che possegga le funzioni che tu cerchi.
Dovresti dare un'occhiata qua, scaricare - laddove presenti - i sorgenti e vedere nei file header .h le funzioni previste.
http://www.gnu.org/software/gsl/
http://www.gnu.org/software/dap/dap.html
http://www.gnu.org/software/octave/
http://www.gnu.org/software/pspp/pspp.html
https://projects.gnome.org/guppi/
http://www.itl.nist.gov/div898/software/dataplot/homepage.htm
http://gretl.sourceforge.net/
http://www.jmulti.de/
http://www.stat.umn.edu/macanova/
http://www.r-project.org/
http://www.statmethods.net/index.html
https://rkward.kde.org/
http://www.salstat.com/
http://wald.intevation.org/projects/statist
http://directory.fsf.org/wiki/StatistX
https://code.google.com/p/vilno/


Ad ogni modo nel componente gb.gsl sono state inserite solo poche funzioni rispetto a quelle presenti nella libreria GSL.
Si potrebbe cercare nei file header (.h) della libreria:
/usr/include/gsl
http://www.gnu.org/software/gsl/manual/html_node/
https://www.gnu.org/software/gsl/manual/html_node/Function-Index.html#Function-Index
https://fossies.org/dox/gsl-1.16/index.html
le funzioni che ti servono, poi chiamarle utilizzando la libreria esterna dinamica condivisa:
/usr/lib/libgsl.so.0.17.0



Potresti cominciare con una prova facile facile:    
Codice: gambas [Seleziona]
Public Sub Main()

  Dim p As Pointer
  Dim ver As String
  
    p = System.GetExternSymbol("libgsl:0.17.0", "gsl_version")
    
    ver = String@(Pointer@(p))
    
    Print "Libreria GSL - versione: "; ver

End



Va be'... qualcosa di più concreto utilizzando la libreria esterna:  
Codice: gambas [Seleziona]
Library "libgsl:0.17.0"

' double gsl_stats_mean (const double data[], const size_t stride, const size_t n)
' Returns the arithmetic mean of data, a dataset of length n with stride stride.
Private Extern gsl_stats_mean(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_variance (const double data[], const size_t stride, const size_t n)
' Returns the estimated, or sample, variance of data, a dataset of length n with stride stride.
Private Extern gsl_stats_variance(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_max (const double data[], const size_t stride, const size_t n)
' Returns the maximum value in data, a dataset of length n with stride stride.
Private Extern gsl_stats_max(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_min(const double data[], const size_t stride, const size_t n)
' Returns the minimum value in data, a dataset of length n with stride stride.
Private Extern gsl_stats_min(double_data As Float[], stride As Integer, n As Integer) As Float


Public Sub Main()

  Dim data As Float[] = [17.2, 18.1, 16.5, 18.3, 12.6]
  Dim media, varianza, grande, piccolo As Float

  media = gsl_stats_mean(data, 1, 5)
  varianza = gsl_stats_variance(data, 1, 5)
  grande = gsl_stats_max(data, 1, 5)
  piccolo = gsl_stats_min(data, 1, 5)

  Print "I dati sono: ";; data[0];; data[1];; data[2];; data[3];; data[4]

  Print "La media del campione è: ";; media
  Print "La varianza stimata è: ";; varianza
  Print "Il valore più grande è: ";; grande
  Print "Il valore più piccolo è: ";; piccolo

End
« Ultima modifica: 21 Giugno 2015, 14:54:45 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: Funzioni statistiche
« Risposta #5 il: 21 Giugno 2015, 20:31:16 »
Grazie Vuott!!!
in due parole mi hai risolto il problema
adesso ci studio un po e vedo cosa tirare fuori

Grazie
"e il naufragar m'è dolce in questo mar"

Offline akrobaticone

  • Gran Maestro dei Gamberi
  • *****
  • Post: 983
    • Mostra profilo
Re: [Risolto]Funzioni statistiche
« Risposta #6 il: 30 Giugno 2015, 17:39:08 »
ho messo risolto alla discussione
le funzioni funzionano benissimo, la deviazione standard è la radice quadrata della varianza ed è quello che mi serviva
grazie
"e il naufragar m'è dolce in questo mar"