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

    Urgente! Regressione lineare

    Salve,
    sono in un vicolo cieco e non ne esco!

    Devo fare un regressione lineare a calcolarmi i valori x e x quadro dell'equazione che ne esce fuori.

    Excel l'ha fa molto semplice, io dovrei riportare quanto fa excel sul mio programma in php invece.

    Ho provato a cercare in internet ma non sono riuscito a venirne fuori.

    Vi illustro un attimo la soluzione

    Ho i seguenti due array tra i quale fare la regressione lineare

    Array 1:

    14,5
    14,3
    20,8
    28,9
    39,2
    47,2
    57,4
    66,7
    78,0

    e

    Array 2:

    1600 40
    2500 50
    3600 60
    4900 70
    6400 80
    8100 90
    10000 100
    12100 110
    14400 120

    le formule utlizzare in excel sono le seguenti:

    1) =INDICE(REGR.LIN(O73:O81;S73:T81;FALSO);2) --> mi calcola x quadro
    2) =INDICE(REGR.LIN(O73:O81;S73:T81;FALSO);1) --> mi calcola x

    come faccio in PHP ha ricrearmi i seguenti risultati di x e x quadro?

    Chiunque sappia qualcosa mi dia una mano...sono veramente in emergenza!

    Grazie a tutti

  2. #2
    Intanto potresti partire dall'astrarre la formula della regressione lineare (quella reale non quella di excel).
    Fare o non fare....non c'è provare!

  3. #3
    Prova a dare un'occhiata QUI
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Ho provato a guardare un pò le formule matematiche ma tutte quelle che ho trovato negli esempi fanno uso di due vettori di uguale dimensione, io invece ho un vettore di 9 elementi e uno a quanto pare per come la formalu di excel prende i valori di 18 elementi...

    E' questa cosa che mi ha mandato in confusione e non riesco a comprendere...

    Perchè sennò avevo trovato anche la seguente funzione per calcolare la regressione e penso mi sarebbe tornata utile, ma non la posso usare o non so come usarla avendo due array di diversa dimensione

    function regressione($X,$Y)
    {
    if (!is_array($X) && !is_array($Y)) return false;
    if (count($X) <> count($Y)) return false;
    if (empty($X) || empty($Y)) return false;

    $regres = array();
    $n = count($X);
    $mx = array_sum($X)/$n; // media delle x
    $my = array_sum($Y)/$n; // media delle y
    $sxy = 0;
    $sxsqr = 0;

    for ($i=0;$i<$n;$i++){
    $sxy += ($X[$i] - $mx) * ($Y[$i] - $my);
    $sxsqr += pow(($X[$i] - $mx),2); // somma degli scarti quadratici medi
    }

    $m = $sxy / $sxsqr; // coefficiente angolare
    $q = $my - $m * $mx; // termine noto

    for ($i=0;$i<$n;$i++){
    $regres[$i] = $m * $X[$i] + $q;
    }

    return $regres;
    }

  5. #5
    Qualcuno che sappia darmi una soluzione a questi due array c'è gentilmente?

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.