IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[NaN] Calcul d'une régression linéaire


Sujet :

Langage Java

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 862
    Points : 4 835
    Points
    4 835
    Par défaut [NaN] Calcul d'une régression linéaire
    Bonjour

    Voici mon problème. Je dois convertir un code PHP vers Java. Une partie de ce code contient un calcul de régression linéaire. D'ores et déjà, j'avertis que je suis pas matheux
    Voici la méthode qui permet de faire ce calcul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public void calculate(Spectrum spectrum){
    		int n = spectrum.countPoints();
    		int n2 = n*n;
    		double sommeX = sumX(spectrum);
    		double sommeX2 = sumX2(spectrum);
    		double sommeY = sumY(spectrum);
    		double sommeY2 = sumY2(spectrum);
    		double sommeXY = sumXY(spectrum);
    		double covXY=(n*sommeXY-sommeX*sommeY)/n2;
    		double varX=(n*sommeX2-sommeX*sommeX)/n2;
    		double varY=(n*sommeY2-sommeY*sommeY)/n2;
     
    		double tmp=n*sommeX2-sommeX*sommeX;
     
    		b0=(sommeX2*sommeY-sommeX*sommeXY)/tmp;
    		b1=(n*sommeXY-sommeX*sommeY)/tmp;
    		double Q1 = (sommeY2+n*b0*b0+b1*b1*sommeX2+2*(b0*b1*sommeX-b0*sommeY-b1*sommeXY));
    		double Q2 = (n-2);
    		double Q3 = Q1/Q2;
    		sr=Math.sqrt(Q3);
    		s0=(sr*Math.sqrt(sommeX2/tmp));
    		s1=(sr*Math.sqrt(n/tmp));
    		r=(covXY/Math.sqrt(varX*varY));
    	}
    Mon problème est le suivant, j'ai des valeurs qui sont NaN. Par exemple, pour le calcul de la variable r, le Math.sqrt d'un nombre négatif sera NaN. Donc, évidemment, cela perturbe tout.
    Je précise que je suis sous JDK 1.4.2.
    Y aurait-il un mathématicien pour vérifier si le calcul est correct ? J'ai tiré ce code brut de décoffrage de PHP. Sans doute les opérations ne sont pas correctes ?

    Merci d'avance.

    @++

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 862
    Points : 4 835
    Points
    4 835
    Par défaut
    Bon, j'ai trouvé. En fait, l'erreur venait de PHP , ma méthode de calcul est juste, mais j'utilise des ArrayList alors que le codeur PHP utilisait une table de hachage. Ce qui fait qu'il y avait un problème dans les indices et de ce fait dans les calculs.

    Merci beaucoup.

    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Moyenne géométrique dans une régression linéaire
    Par Lilouche52 dans le forum SAS STAT
    Réponses: 2
    Dernier message: 06/06/2013, 09h13
  2. LaTeX PGFplots / Tikzpicture tracer une régression linéaire
    Par galaxie87 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 16/07/2010, 22h09
  3. Réponses: 1
    Dernier message: 30/06/2010, 08h47
  4. calcul de pente de régression linéaire
    Par I.Z.M.M dans le forum SSAS
    Réponses: 0
    Dernier message: 23/03/2010, 13h23
  5. Réponses: 2
    Dernier message: 22/12/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo