Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Dubbio deviazione standard

    Ho un dubbio su come interpretare nello specifico la deviazione standard.

    L'algoritmo che sto testando (ormai famoso in questo forum ) tratta la ricostruzione di traiettorie di navigazione. Per ricostruirle ho varie funzioni euristiche di costo.

    Ora se la funzione H1 mi da come media dei tempi di esecuzione migliori, però ha una deviazione standard abbastanza alta, mentre la funzione H1-H2-H3 ha una media peggiore di H1 ma una deviazione standard migliore, posso asserire che:

    - H1 ci ritorna in media dei risultati migliori;
    - H1 ha dei risultati molto distanti tra loro quindi potrebbe essere che comunque in molti casi fa schifo;

    Questo va bene? E H1-H2-H3 avendo una deviazione standard più bassa di H1, posso dire che ha dei valori più vicini? Ed avendo una media molto vicina a quella di H1 potrei anche dire che è comunque buona ? Ovvero anche se ha una media un po' maggiore assume comunque valori molto vicini alla media stessa? (mentre H1 è il contrario)
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Ma ti riferisci a media e deviazione standard dei tempi di esecuzione o del risultato della funzione? O la media è riferita al tempo di esecuzione mentre la deviazione standard alla distanza tra il risultato fornito e il valore atteso?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Ma ti riferisci a media e deviazione standard dei tempi di esecuzione o del risultato della funzione? O la media è riferita al tempo di esecuzione mentre la deviazione standard alla distanza tra il risultato fornito e il valore atteso?
    Praticamente le due misure prese in considerazione sono sia il tempo di esecuzione che l'accuratezza del tragitto ricostruito (calcolata con la dtw che ti citai tempo fa). Sia per tempo di esecuzione che per l'accuratezza mi è stato fatto calcolare Media e Deviazione Standard.

    Ora la media è scontata, e mi dice che in media i valori hanno quel risultato. Ma potrebbe essere che il 50% dei valori me li calcola in 1 secondo, gli altri in 10 secondi e come risultato mi da 5 secondi che magari è un valore accettabile. La deviazione standard dovrebbe farmi capire che se sebbene la media è 5, se la deviazione è alta allora posso dedurre che i valori sono appunto molto distanti dalla media, o no?

    Steso identico discorso per i valori di accuratezza.


    Edit1: leggevo su wikipedia:

    Se non indicato diversamente, la deviazione standard è semplicemente la radice quadrata della varianza, la quale viene coerentemente rappresentata con il quadrato di sigma (σ²).
    Io su excel non ho indicato nulla, ho solo richiamato DEV.ST.

    Edit 2: Leggendo la descrizione sulla formula di excel ce scritto:

    Stima la deviazione standard sulla base di un campione. La deviazione standard è una misura che indica in che misura i valori si discostano dal valore medio (la media).
    Ergo una deviazione standard bassa mi dice che i valori sono molto vicini alla media, quindi media buona, deviazione standard buona, vuol dire che ho tutti valori buoni. Invece media buona e deviazione standard non buona indica che ho tanti valori buoni e tanti valori brutti, giusto?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  4. #4
    Come dice Wikipedia, la deviazione standard è normalmente la radice della varianza, ossia è un indice di quanto sono sparpagliati i dati attorno alla media. Se la distribuzione dei tuoi dati è gaussiana (e in genere misure affette da perturbazioni piccole e casuali più o meno lo sono) la deviazione standard ti dice che circa il 68% dei risultati cade entro una deviazione standard di distanza dalla media.

    In altre parole, se tu fai un istogramma dei tuoi risultati, facilmente ottieni una curva gaussiana del tipo:


    la media ti dice dove sta il centro della tua gaussiana, la deviazione standard quanto è larga.

    Per cui, sui tempi di elaborazione:
    - una media bassa ovviamente è preferibile (compatibilmente con l'accuratezza del risultato, naturalmente)
    - una deviazione standard bassa ti indica che più o meno ci mette sempre quel tempo lì; una deviazione standard alta, invece, indica che c'è grande variabilità sul tempo di elaborazione, per cui se ti serve avere una funzione con tempistiche molto consistenti (se, ad esempio, hai delle deadline temporali o altri problemi del genere) potresti dover cercare altrove.

    Per quanto riguarda i valori di accuratezza, dipende da come li misuri: se misuri semplicemente la discrepanza (non in valore assoluto), ovvero la differenza tra valore ottenuto e valore vero:
    - la media della discrepanza deve essere il più possibile vicina allo zero; se non lo è e la deviazione standard è piccola può essere indice di un errore sistematico
    - e se anche la media è perfettamente zero, qui il punto chiave è la deviazione standard: potresti avere una funzione che restituisce valori estremamente sballati verso l'alto e verso il basso, ma questi nella media si compensano; la deviazione standard, invece, ti indica lo sparpagliamento attorno alla media, per cui se è alta capisci subito che c'è il comportamento della funzione non è consistente.

    Se invece prendi la discrepanza in valore assoluto (o, anche meglio, al quadrato, in modo da far pesare di più discrepanze grosse), già dalla media hai un'indicazione sicura del fatto che la tua funzione sgarri sistematicamente, dato che, avendo a che fare con soli valori positivi, non è possibile avere compensazioni sulla media; la deviazione standard qui ti dice invece se lo "sgarro" è più o meno sempre costante (errore sistematico) o variabile.

    Una cosa interessante per vedere a colpo eventuali correlazioni può essere fare uno scatter plot, mettendo ad esempio sulle ascisse il tempo di esecuzione e sulle ordinate la discrepanza dal valore vero; in questo modo puoi vedere subito se c'è una qualche correlazione tra la velocità dell'algoritmo e la sua imprecisione. Ovviamente con altre scelte di grandezze da mettere nel grafico puoi cercare altre correlazioni.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da MItaly
    Come dice Wikipedia, la deviazione standard è normalmente la radice della varianza, ossia è un indice di quanto sono sparpagliati i dati attorno alla media. Se la distribuzione dei tuoi dati è gaussiana (e in genere misure affette da perturbazioni piccole e casuali più o meno lo sono) la deviazione standard ti dice che circa il 68% dei risultati cade entro una deviazione standard di distanza dalla media.

    In altre parole, se tu fai un istogramma dei tuoi risultati, facilmente ottieni una curva gaussiana del tipo:


    la media ti dice dove sta il centro della tua gaussiana, la deviazione standard quanto è larga.

    Per cui, sui tempi di elaborazione:
    - una media bassa ovviamente è preferibile (compatibilmente con l'accuratezza del risultato, naturalmente)
    - una deviazione standard bassa ti indica che più o meno ci mette sempre quel tempo lì; una deviazione standard alta, invece, indica che c'è grande variabilità sul tempo di elaborazione, per cui se ti serve avere una funzione con tempistiche molto consistenti (se, ad esempio, hai delle deadline temporali o altri problemi del genere) potresti dover cercare altrove.

    Per quanto riguarda i valori di accuratezza, dipende da come li misuri: se misuri semplicemente la discrepanza (non in valore assoluto), ovvero la differenza tra valore ottenuto e valore vero:
    - la media della discrepanza deve essere il più possibile vicina allo zero; se non lo è e la deviazione standard è piccola può essere indice di un errore sistematico
    - e se anche la media è perfettamente zero, qui il punto chiave è la deviazione standard: potresti avere una funzione che restituisce valori estremamente sballati verso l'alto e verso il basso, ma questi nella media si compensano; la deviazione standard, invece, ti indica lo sparpagliamento attorno alla media, per cui se è alta capisci subito che c'è il comportamento della funzione non è consistente.

    Se invece prendi la discrepanza in valore assoluto (o, anche meglio, al quadrato, in modo da far pesare di più discrepanze grosse), già dalla media hai un'indicazione sicura del fatto che la tua funzione sgarri sistematicamente, dato che, avendo a che fare con soli valori positivi, non è possibile avere compensazioni sulla media; la deviazione standard qui ti dice invece se lo "sgarro" è più o meno sempre costante (errore sistematico) o variabile.

    Una cosa interessante per vedere a colpo eventuali correlazioni può essere fare uno scatter plot, mettendo ad esempio sulle ascisse il tempo di esecuzione e sulle ordinate la discrepanza dal valore vero; in questo modo puoi vedere subito se c'è una qualche correlazione tra la velocità dell'algoritmo e la sua imprecisione. Ovviamente con altre scelte di grandezze da mettere nel grafico puoi cercare altre correlazioni.
    Ok, dunque, se so che 4 volte su 10 la funzione H1 ha dato il risultato migliore (le altre funzioni non sono arrivate a dare così tante volte il risultato migliore, quindi se mi fermassi qui potrei dire che è la migliore), sia in termini di tempo che di accuratezza (per l'accuratezza utilizzai quella formula della dtw citata tempo fa che dovrebbe calcolare la distanza tra due serie), la media è pure la più bassa ma la deviazione standard è molto alta, cosa posso dedurre?

    Posso dedurre che H1 ha restituito valori molto lontani dalla media, la media è bassa ma essendo i valori molto distanti allora avrò avuto risultati ottimi e risultati pessimi?

    Lo scopo dovrebbe essere tra tante funzioni, sapendo che non ce ne una migliore in assoluto, trovarne almeno una che vada meglio nella maggior parte dei casi. Ma con una media bassa e una deviazione standard alta immagino di non poter dedurre nulla?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  6. #6
    Molto dipende da quanto è alta la deviazione standard... se media+deviazione standard dell'accuratezza non supera i valori concorrenti, comunque vada nella gran parte dei casi (ad occhio, ≈84%) la funzione in questione risulterà comunque migliore delle altre, anche se non particolarmente consistente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Dati due campioni provvenienti da due li popolazioni differenti, puoi confrontarli con qualche test statistico volto a chiedersi se la media dell'uno sia significativamente maggiore/minore dell'altra data una certa confidenza (e quindi anche potenza) al test!

    Sicuramente piu formale che dire la varianza è "grande".


    Ma ad informatica non insegnano un po di statistica almeno da sapere cos'e e come si calcola una dev standard???? Sono proprio le basi...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.