J'ai des données de séries chronologiques où la variable mesurée est des entiers positifs discrets (comptes). Je veux tester s'il y a une tendance à la hausse dans le temps (ou non). La variable indépendante (x) est comprise entre 0 et 500 et la variable dépendante (y) est comprise entre 0 et 8.
J'ai pensé répondre à cela en ajustant une régression de la forme en y = floor(a*x + b)
utilisant les moindres carrés ordinaires (OLS).
Comment pourrais-je procéder en utilisant R (ou Python)? Y a-t-il un package existant pour cela, ou suis-je mieux d'écrire mon propre algorithme?
PS: Je sais que ce n'est pas la technique idéale, mais je dois faire une analyse relativement simple que je peux réellement comprendre - mon expérience est la biologie et non les mathématiques. Je sais que je viole les hypothèses sur l'erreur dans la variable mesurée et l'indépendance des mesures dans le temps.
la source
Réponses:
Vous pouvez adapter le modèle que vous énoncez en utilisant la fonction
nls
(moindres carrés non linéaires)R
, mais comme vous l'avez dit, cela violera de nombreuses hypothèses et n'aura probablement pas beaucoup de sens (vous dites que le résultat prévu est aléatoire autour d'une étape fonction, et non des valeurs entières autour d'une relation qui augmente progressivement).La façon la plus courante d'ajuster les données de comptage consiste à utiliser la régression de Poisson à l'aide de la
glm
fonction dansR
, le premier exemple sur la page d'aide est une régression de Poisson, mais si vous n'êtes pas familier avec les statistiques, il serait préférable de consulter un statisticien pour vous assurer que vous faites les choses correctement.Si la valeur de 8 est un maximum absolu (impossible de voir un nombre plus élevé, ce n'est pas seulement ce que vous avez vu), vous pouvez envisager la régression logistique des cotes proportionnelles, il existe quelques outils pour le faire dans les packages
R
, mais vous devrait vraiment impliquer un statisticien si vous voulez le faire.la source
Cependant, le modèle que vous proposez peut se produire par exemple lorsque vous observez des données arrondies: avec les erreurs normales iid .
Je pense que c'est intéressant de voir ce qu'on peut en faire. Je note le cdf de la variable normale standard. Si , alors utilisant des notations informatiques familières.F ϵ∼N(0,σ2)
Vous observez des points de données . La vraisemblance de log est donnée par Ce n'est pas identique aux moindres carrés. Vous pouvez essayer de maximiser cela avec une méthode numérique. Voici une illustration dans R:(xi,yi)
En rouge et bleu, les lignes trouvées par maximisation numérique de cette vraisemblance, et moindres carrés, respectivement. L'escalier vert est pour trouvé par la probabilité maximale ... cela suggère que vous pourriez utiliser le moins de carrés, jusqu'à une traduction de par 0,5, et obtenir à peu près le même résultat; ou, que les moindres carrés correspondent bien au modèle où est l'entier le plus proche. Les données arrondies sont si souvent rencontrées que je suis sûr que cela est connu et a été étudié de manière approfondie ...ax+b ⌊ax+b⌋ a,b b
la source