// Elie Sadaka novembre 2006
// jview Statistic
// cd C:\Documents and Settings\Elie
Sadaka\My Documents\Java-Statistic
import java.util.*; import java.applet.*; import java.awt.*;
public class Statistic extends Applet{
public int N; // effectif total public double pr1[]; public double pr2[]; public double coeff[][];
public Statistic(int N1){
N=N1;
pr1= new
double[N1];
pr2= new
double[N1];
coeff = new
double[N1][N1];
}
public Statistic(double[] pr1t,double[] pr2t){
N=pr1t.length ;
pr1= new
double[pr1t.length];
pr2= new
double[pr2t.length];
coeff = new
double[pr1t.length][pr1t.length];
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// Minimum de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double minX(double[] a){
double m = a[0];
for (int i=1; i<a.length; i++){
if (m > a[i]) m = a[i];
}
return m;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// Extraire le Minimum de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] extractMinX(double[] a){
double m = a[0];
double[] b = new double[a.length-1];
int j=0;
//localiser le n° du min
for (int i=1; i<a.length; i++) {
if (m > a[i]) {
m = a[i];
j=i;
}
}
for (int i=0; i<j; i++) {
b[i]=a[i];
}
for (int i=j; i<a.length-1; i++)
{
b[i]=a[i+1];
}
return b;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// ajouter à la fin de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] addEndX(double v,double[] a){
double[] b = new long[a.length+1];
for (int i=0; i<a.length; i++)
{
b[i]=a[i];
}
b[a.length] = v;
return b;
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// Maximum de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double maxX(double[] a){
double m = a[0];
for (int i=1; i<a.length; i++)
{
if (m < a[i]) m = a[i];
}
return m;
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// Ordonner la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] ordonneInc(double[] a){
double[] b = new double[a.length];
int d=a.length;
double temp=0;
for(int i = 0; i < d ;i++){
temp=minX(a);
a = extractMinX(a);
b[i] = temp;
}
return b;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// card ensemble de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static int cardEnsemble(double[] a){
double[] b = ordonneInc(a);
int d = a.length;
int temp = 1;
for(int i = 1; i < a.length ;i++){
if(b[i-1]!= b[i]) temp++;
}
return temp;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// première coordonnée de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public
static double[]
pr1X(double[][] a){
double[] b = new double[a.length];
int d=a.length;
for(int i = 0; i < d ;i++){
b[i] = a[i][0];
}
return b;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// deuxième coordonnée de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] pr2X(double[][] a){
double[] b = new double[a.length];
int d=a.length;
for(int i = 0; i < d ;i++){
b[i] = a[i][1];
}
return b;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// les fréquences de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[][] frequenceX(double[] a){
int d = cardEnsemble(a);
double[] b = ordonneInc(a);
double[][] temp = new double[d][2];
double c=1.0;
double k=0;
int f=0;
for(int i = 0; i < b.length-1
;i++){
if(b[i+1]!=b[i]) {
temp[f][0]= b[i];
temp[f][1] = c;
f++;
c = 0;
}
c= c+1; //compteur
d'une classe
}
temp[d-1][0]= b[b.length-1];
temp[d-1][1] = c;
return temp;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// le mode de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double modeX(double[] a){
int d = pr2X(frequenceX(a)).length;
double r = maxX(pr2X(frequenceX(a)));
double temp=0;
int c=0;
for (int i=0; i<d; i++){
if(frequenceX(a)[i][1]== r){
temp = frequenceX(a)[i][0];
c++;
}
}
if(c==1) return temp; else return maxX(a)*10;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// Formater la donnée pour l'affichage static
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static String toString(double[] a){
String data =" ";
for (int i=0; i<a.length; i++){
data += a[i]+" ";
}
data += "\n";
return data;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// Formater la série double fréquence
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static String toString(double[][] a){
String data =" ";
for (int i=0; i<a.length; i++){
data += " ("+ a[i][0]+";"+a[i][1]+"); ";
}
data += "\n";
return data;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// q1 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double q1X(double[] a){
return ordonneInc(a)[(int)(a.length/4)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// q2 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double q2X(double[] a){
return ordonneInc(a)[(int)(a.length/2)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// q3 de la série double
//- - -
- - - - - - - - - - - - - - - - - - - - - - - - -
public static double q3X(double[] a){
return ordonneInc(a)[(int)(3*a.length/4)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d1 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d1X(double[] a){
return ordonneInc(a)[(int)(1*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d2 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d2X(double[] a){
return ordonneInc(a)[(int)(2*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d3 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d3X(double[] a){
return ordonneInc(a)[(int)(3*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d4 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d4X(double[] a){
return ordonneInc(a)[(int)(4*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d6 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d6X(double[] a){
return ordonneInc(a)[(int)(6*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d7 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d7X(double[] a){
return ordonneInc(a)[(int)(7*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// d8 de la série double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d8X(double[] a){
return ordonneInc(a)[(int)(8*a.length/10)];
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// d1 de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double d9X(double[] a){
return ordonneInc(a)[(int)(9*a.length/10)];
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// la moyenne de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double moyenneX(double[] a){
double S=0;
for (int i=0; i<a.length; i++){
S += a[i];}
return S/a.length;
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// la série centrée
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] centreX(double[] a){
double[] b=new double[a.length];
for (int i=0; i<a.length;
i++){
b[i]= a[i] - moyenneX(a);
}
return b;
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// la série centrée carrée
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double[] centreCarreX(double[] a){
double[] b=new double[a.length];
for (int i=0; i<a.length; i++){
b[i]= (a[i]-moyenneX(a))*(a[i]- moyenneX(a));
}
return b;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// la variance de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double varianceX(double[] a){
return moyenneX(centreCarreX(a));
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// l'écart type de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double sdX(double[] a){
return Math.sqrt(varianceX(a));
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// premier intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static String
confidence1X(double[] a){
return "["+precision(
moyenneX(a)-sdX(a),2)+
" ; "+ precision( moyenneX(a)+sdX(a),2)+"]";
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// pourcentage du premier intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double pourcent1X(double[] a){
int temp=0;
for (int i=0; i<a.length; i++){
if((moyenneX(a)-sdX(a))<=a[i] && a[i]<=(moyenneX(a)+sdX(a))) temp++;
}return 100*temp/a.length;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// second intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static String confidence2X(double[] a){
return "["+precision( moyenneX(a)-2*sdX(a),2)+
" ; "+ precision( moyenneX(a)+2*sdX(a),2)+"]";
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// pourcentage du second intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double pourcent2X(double[] a){
int temp=0;
for (int i=0; i<a.length; i++){
if((moyenneX(a)-2*sdX(a))<=a[i]
&& a[i]<=(moyenneX(a)+2*sdX(a))) temp++; }return 100*temp/a.length;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// troisième intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static String confidence3X(double[] a){
return "["+precision( moyenneX(a)-3*sdX(a),2)+
" ; "+ precision( moyenneX(a)+3*sdX(a),2)+"]";
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// pourcentage du troisième intervalle de confidence de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double pourcent3X(double[] a){
int temp=0;
for (int i=0; i<a.length; i++){
if((moyenneX(a)-3*sdX(a))<=a[i]
&& a[i]<=(moyenneX(a)+3*sdX(a))) temp++; }return 100*temp/a.length;
}
//- - - - - - - - - - - - - - -
- - - - - - - - - - - - -
// triplet pour la normalité de la série
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double precision(double x, int digi ){
return (int)(Math.pow(10,digi)*x)/Math.pow(10,digi);
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// conversion string int
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static int sti(String st) {
return Integer.parseInt(st);
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
// conversion string double
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public static double std(String st) {
Double ast;
ast = Double.valueOf(st);
return ast.doubleValue();
}
//- - - - - - - - - - - - - - - - - - - - - - - - -
- - -
//
//- - - - - - - - - - - - - - - - - - - - - - - - - - - -
public
static void
main (String arg[]){
double a[] = {8,7,6,5,1,2,3,4,5,3,4,4,3,4};
System.out.println(toString(a));
System.out.println(toString(ordonneInc(a)));
//System.out.println(""+ cardEnsemble(a));
System.out.println(toString(frequenceX(a)));
//System.out.println(toString(pr1X(frequenceX(a))));
//System.out.println(toString(pr2X(frequenceX(a))));
//System.out.println(""
+ maxX(a));
System.out.println("Mode
= (pas de mode si la reponse depasse le max) " + modeX(a));
System.out.println(""+ precision(q1X(a),2));
System.out.println(""+ q2X(a));
System.out.println(""+ q3X(a));
System.out.println(""+precision(moyenneX(a),2));
System.out.println(""+precision(varianceX(a) ,2));
System.out.println(""+precision(sdX(a),2));
System.out.println(confidence1X(a));
System.out.println(confidence2X(a));
System.out.println(confidence3X(a));
System.out.println("
" + pourcent1X(a));
System.out.println("
" + pourcent2X(a));
System.out.println("
" + pourcent3X(a));
}
}