begin process at 2012 05 27 16:07:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > ESTIMATION LOI STABLE (MC KULLOCH) POUR UN DLL POUR EXCEL

ESTIMATION LOI STABLE (MC KULLOCH) POUR UN DLL POUR EXCEL


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :stable, distribution, alpha, levy Niveau :Initié Date de création :03/06/2004 Date de mise à jour :10/05/2006 23:04:59 Vu / téléchargé :9 988 / 529

Auteur : hitcher

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

IL s'agit donc d'un code permettant d'estimer  une loi qui généralise la loi normale et permet de tenir compte de l'assymétrie, queu de distribution épaisse,...
Le code est conçue de manière a être compilé pour créer un dll pour excel (*.def), le dll et la .xla sont fournit dans le zip prés à l'emploi.
on retrouve l'estimation des 4 paramétres de cette loi: l'équivalent de la moyenne m, de l'écart type s , du coefficient d'asymétrie b et du paramétre de valeur extréme a.
Pour le cas multivarié: la codifférence, la covariation et l'alpha corrélation ainsi que le coefficient regressions linéaire
Un générateur de nombre aléatoir suivant une loi stable  a aussi été implémenté à partir de MersenneTwister.
Le fichier texte VBA (*.xla) contient le code source pour "charger" le dll sous excel (il faut modifier l'adresse du dll ex c:\ ) Il suffit de le référencer dans excel et VBA.
Un pdf présente rapidement les lois stable (généralisation en terme de distribution de la loi normale: extension du théorême centrale limite)


 Conclusion

Le code VBA présente une petite singularité, étant donné les difficulté de fair passer un tableau de VBA à un Dll, je n'en passe qu'un à chaque fois. C'est à dire que pour deux série dont l'on veut mesurer la codifférence et qui sont de longueur N, je dimensionne dans VBA un tableau de longeur 2*N avec 0,N-1 la premiere série et en N,2*N la deuxiéme. Le Dll se débrouille tous seul après.
Dernière singularité mais statistique, le calcul du paramétress alpha d'un vecteur stable étant particulièrement "inefficace" dans la littérature (il s'oppose à tous process d'industrialisation, peu fiable en plus,...) j'ai obté pour une simple moyenne pondéré des lpah des séries.

J'ai aussi rajouté un petit fichier texte permettant de "pricer" une option sur un actif suivant une loi log stable de Mac Cullought pour Gauss. Désolé j'ai pas trop le temps de l'implémenter: si cela branche quelqu'un...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 octobre 2004 15:40:49 :
*Ajout d'un générateur de Loi Stable *Un fichier XLa a été rajouté pour l'install sous Excell *Fixation des Bugs pour la class Multivarié
10 mai 2006 23:04:59 :
Cette mise à jour comprend l'implémentation de la fonction de distribution(pdf) grâce à l'algoryhtme DNI que j'ai trouvé dans le mémoire d'Estelle Adam. J'ai aussi implémenté la fonction de répartition (cdf) (et cela n'a pas été simple) de J.P Nolan.

 Sources du même auteur

OPTIMISATION PAR GOLDEN SECTION SEARCH À UNE DIMENSION
Source avec Zip ROMBERG INTEGRATION
DAUBCHIES D4 WAVELET : TRANSFORM ET INVERSE TRANSFORM

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip BINFORGE (REPOSITORY SYSTEM) par psykocrash
Source avec Zip SKINNED MESH par Itsuki2
Source avec Zip DESSINER UNE IMAGE TRANSPARENTE (WIN32) par vecchio56
Source avec Zip Source avec une capture AWELE C par tucobouch
Source avec Zip Source avec une capture EQUIPOTENTIELS ET LIGNES DE CHAMPS par JCDjcd

Commentaires et avis

Commentaire de BruNews le 03/06/2004 12:56:00 administrateur CS

pour obtenir *ptrTab en param dans ta DLL, tu passes bien tab(0) en byref depuis vb ?

Vois que les questions se posent dans le forum, une source doit etre un exemple FONCTIONNANT.
Si pas de maj de la source dans la soiree, je me verrai contraint d'enlever.

ciao...
BruNews, Admin CS, MVP Visual C++

Commentaire de BruNews le 04/06/2004 00:16:58 administrateur CS

Je vais essayer de trouver un moment pour te faire une dll appelee depuis Excel avec fonction prenant *double et int en params.

Commentaire de BruNews le 04/06/2004 00:59:31 administrateur CS

Ben voila c'est deja fini et va impec.
Si prob tu postes ton mail et je t'envoie le proj et le xls.

Fichier CPP de SortXls.dll, je compile en mode C (non C++).

#include <windows.h>

int WINAPI DllMain(HINSTANCE hinst, unsigned long reason, void* x)
{
  return 1;
}

int dblComp(const void *arg1, const void *arg2)
{
  if(*(double*)arg1 > *(double*)arg2) return 1;
  if(*(double*)arg1 < *(double*)arg2) return -1;
  return 0;
}

// ICI LA FONCTION EXPORTEE, tableau double a trier croissant
// pas trouve plus court comme exemple
void __stdcall bnSortDbl(double *pdbl, int n)
{
  if(n < 2) return;
  qsort(pdbl, n, sizeof(double), dblComp);
}

----------------------------
Fichier SortXls.def

LIBRARY SortXls
EXPORTS
  bnSortDbl      @1

----------------------------
Module VB a inserer dans un Excel:

Option Explicit

Declare Sub bnSortDbl Lib "D:\SortXls.dll" (pArray As Double, ByVal nElem As Long)

Sub Test()
  Dim dArray(8) As Double, i As Long
  dArray(7) = 1.25
  dArray(6) = 5.25
  dArray(5) = 6.25
  dArray(4) = 4.25
  dArray(3) = 2.25
  dArray(2) = 3.25
  dArray(1) = 7.25
  dArray(0) = 8.25
  bnSortDbl dArray(0), 8
  For i = 0 To 7
    Debug.Print dArray(i)
  Next i
End Sub

Commentaire de lpele le 30/07/2008 00:18:28

Hitcher, c'est pas mal ton code, je cherchais justement un .
un générateur de nombres pseudo-aléatoire qui suit la loi stable pour faire du Monte-Carlo.

Penses tu que ton algorithme est plus performant que celui se trouvant sur http://en.wikipedia.org/wiki/Lévy_distribution
(il transforme un générateur de nombre aléatoire qui suit la loi uniforme- ce que j'ai déjà- en générateur suivant la loi de Lévy, cas particulier de la loi stable)

Commentaire de hitcher le 30/07/2008 22:34:28

LPELE, bien écoute tout dépend de ce que tu veux faire. D'après ton lien la loi de Lévy ne prend en compte que moyenne  (ou paramètre de localisation) supérieure à 0 ce qui est assez limitatif. J'aurais donc tendance à préférer la loi alpha stable moins contraignante.
Comme çà, apres avoir lu la page wiki rapidement je suis pas emballer par les processus de Levy sa m'a l'air du sous alpha stable contraint (c'est un cas particulier). Je ne connais pas par contre les méthodes d'estimation des processus de Levy, peut être sont ils plus performants (j'ai des doutes).
Personnellement, je resterais sur les lois alpha stable qui sont une généralisation des processus de Lévy.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

WM_MOUSELEAVE [ par JackosKing ] Pkoi j'ai l'erreur suivante:E:\tmp\TinyShell\Twiny.cpp(89) : error C2065: 'WM_MOUSELEAVE' : undeclared identifierquabnd je fais: case WM_MOUSEMOVE : classement alpha... [ par supergrey ] salut, jai créé une dialog avec listbox a laquel je n'est pas attribué le classement alphabetique, je voudrai savoir comment le donner cette propriet SVP - ULTRA URGENT - Prob Distribution prog Win98 [ par marcel6566 ] Bonjour,J'ai créé un programme d'aide à la lecture pour 4 classes de CP dans une école primaire. Mon programme est réalisé sous XP avec VC++ version 6 algorithme d'un cercle avec opengl [ par jfk20004 ] quelqu'un peut il me donner le code d'un algo d'un tracé de cercleutilisant opengl. Par exx=r*cos(alpha)+cos(beta);y=r*sin(alpha)+cos(beta);j'imagine gtk(mm) dessiner avec de l'alpha [ par Ricool ] Bonjour,J'ai une petite question sur l'apha et gtk (gdk).Je dois dessiner des courbes qui se superpose (coube composée de rectangle plein). Je ve OpenGL : Couleur Transparente (composante alpha) [ par smoove5198 ] Bonjour, Je fait de l'affichage 3D avec opengl et je souhaite utiliser le principe de couleur transparente. Apres m'etre un peu renseigné j'ai distribution uniforme c++ [ par imanedaoudi ] bonjour ,je veux générer des valeurs qui soient plus au moins uniforme et qui ont des valeurs comprise entre deux valeurs extremes xmin et x Compilation DEC Alpha -> Intel [ par demidali ] Bonjour !J'ai un programme écrit en C qui tourne sur le Unix DEC Alpha.  Lorsque je compile le programme sur un Intel Linux, pas de probl&#2 Problème de transparence avec directX [ par brosse_adan ] Bonjour à tous!J'ai un petit souci avec le alpha...Je simplifie un peu : ma scène est constituée de deux objets texturés, et j'aim transparences en openGL [ par vangeurmasker ] J'ai un probleme dans un projet en OpenGL. J'utilise le canal alpha de mes textures pour gérér les transparences. Mais le probleme est qu'au


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales