Visualizzazione risultati 1 fino 7 di 7

Discussione: moda mediana php mysql

  1. #1
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Arrow moda mediana php mysql

    ciao a tutti vorrei qualche consiglio su come ricavare la moda (il valore più frequente) e la mediana(il valore che sta nel mezzo) degli n valori del campo nvendite


    quindi

    Codice:
    SELECT nvendite FROM agenti
    mediana 2 casi:
    pari:
    a b c d---> la mediana e b+c/2
    dispari:
    a b c ---> la mediana è b




    e poi in php come si potrebbero calcolare ???
    Ultima modifica di giacomofabbian : 21-06-2011 alle ore 00.33.24

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Per la media c'è l'apposita funzione mysql AVG: http://dev.mysql.com/doc/refman/5.0/...functions.html

    Per la moda temo che te la devi calcolare a mano calcolando l'occorrenza di ogni valore e poi prendendo i valori con occorrenza pari al massimo.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Per la media c'è l'apposita funzione mysql AVG: http://dev.mysql.com/doc/refman/5.0/...functions.html

    Per la moda temo che te la devi calcolare a mano calcolando l'occorrenza di ogni valore e poi prendendo i valori con occorrenza pari al massimo.
    si si lo so la media l'ho già calcolata per la mediana pensavo di fare
    Codice:
    if cont%2==0
    
    V1=cont/2
    V2=(cont/2)+1
    
    mediana=(v1+v2)/2
    else
    
    med=(cont-1)/2
    per la moda invece sicuramente devo ciclare ma non riesco a capire come

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Una cosa così:

    Codice PHP:

    $valori
    = array(1, 2, 3, 4, 5, 3, 1, 4, 1, 1, 2, 3)
    $occorrenze = array();
    $massimoOccorrenze = 0;

    foreach (
    $valori as $v) {
    $occorrenze[$v]++
    if (
    $occorrenze[$v] > $massimoOccorrenze) $massimoOccorrenze = $occorrenze[$v];
    }

    foreach (
    $occorrenze as $k => $v) {
    if (
    $v == $massimoOccorrenze) echo $k, "\n";
    }
    Ovviamente ci possono essere più valori che raggiungono il $massimoOccorrenze.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    Una cosa così:

    Codice PHP:

    $valori
    = array(1, 2, 3, 4, 5, 3, 1, 4, 1, 1, 2, 3)
    $occorrenze = array();
    $massimoOccorrenze = 0;

    foreach (
    $valori as $v) {
    $occorrenze[$v]++
    if (
    $occorrenze[$v] > $massimoOccorrenze) $massimoOccorrenze = $occorrenze[$v];
    }

    foreach (
    $occorrenze as $k => $v) {
    if (
    $v == $massimoOccorrenze) echo $k, "\n";
    }
    Ovviamente ci possono essere più valori che raggiungono il $massimoOccorrenze.
    ok grazie ti sembra corretto il modo per fare la mediana???

  6. #6
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    La statistica non è mai stata il mio forte


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  7. #7
    Data registrazione
    15-03-2011
    Residenza
    Padova
    Messaggi
    194

    Predefinito

    Citazione Originalmente inviato da saitfainder Visualizza messaggio
    La statistica non è mai stata il mio forte
    Ok saitfainder riposto il codice in caso qualcuno voglia darci un'occhiata perchè conteneva un errore

    Codice:
    if cont%2==0{
    V1=cont/2
    V2=(cont/2)+1
    mediana=(v1+v2)/2
    }
    else{
    
    mediana=[(cont-1)/2]+1}
    Ultima modifica di giacomofabbian : 21-06-2011 alle ore 11.31.49

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •