Mise à jour de la probabilité de classification dans la régression logistique dans le temps

19

Je construis un modèle prédictif qui prévoit la probabilité de réussite d'un étudiant à la fin d'un trimestre. Je m'intéresse particulièrement à savoir si l'étudiant réussit ou échoue, où le succès est généralement défini comme la réussite du cours et l'obtention de 70% ou plus de points sur le total des points possibles.

Lorsque je déploie le modèle, l'estimation de la probabilité de réussite doit être mise à jour au fur et à mesure que plus d'informations deviennent disponibles - idéalement immédiatement après que quelque chose se produit, comme lorsqu'un étudiant soumet un devoir ou obtient une note pour celui-ci. Cette mise à jour me semble en quelque sorte bayésienne, mais étant donné ma formation en statistique de l'éducation, c'est un peu en dehors de ma zone de confort.

Jusqu'à présent, j'ai utilisé la régression logistique (en fait le lasso) avec un ensemble de données historiques contenant des instantanés basés sur la semaine. Cet ensemble de données a des observations corrélées, car chaque élève a TermLength/septobservations; les observations d'un étudiant sont corrélées. Je ne modélise pas spécifiquement la corrélation dans les observations hebdomadaires d'un élève particulier. Je crois que je n'aurais qu'à considérer cela dans un cadre déductif, car les erreurs standard seraient trop petites. Je pense - mais je ne suis pas sûr à ce sujet - que le seul problème résultant des observations corrélées est que je dois être prudent lorsque je fais une validation croisée pour conserver les observations groupées dans un sous-ensemble des données, afin de ne pas obtenir taux d'erreur hors échantillon artificiellement bas basés sur des prédictions sur une personne que le modèle a déjà vue.

J'utilise le package glmnet de R pour faire un lasso avec un modèle logistique afin de générer une probabilité de réussite / d'échec et de choisir automatiquement des prédicteurs pour un cours particulier. J'ai utilisé la variable semaine comme facteur, interagi avec tous les autres prédicteurs. Je ne pense pas que cela diffère en général de simplement estimer les modèles individuels basés sur une semaine, sauf qu'il donne une idée de la façon dont il peut y avoir un modèle commun qui tient tout au long du terme qui est ajusté via divers facteurs d'ajustement du risque à différentes semaines.

Ma principale question est la suivante: existe-t-il un meilleur moyen de mettre à jour les probabilités de classification au fil du temps plutôt que de simplement diviser l'ensemble de données en instantanés hebdomadaires (ou d'autres intervalles), en introduisant une variable de facteur de période interagissant avec toutes les autres fonctionnalités, et utiliser des fonctionnalités cumulatives (points cumulés gagnés, jours cumulés en classe, etc.)?

Ma deuxième question est: manque-t-il ici quelque chose de critique à propos de la modélisation prédictive avec des observations corrélées?

Ma troisième question est: comment puis-je généraliser cela à une mise à jour en temps réel, étant donné que je fais des instantanés hebdomadaires? Je prévois simplement de brancher des variables pour l'intervalle hebdomadaire en cours, mais cela me semble compliqué.

Pour info, je suis formé en statistiques éducatives appliquées mais j'ai une formation en statistiques mathématiques d'il y a longtemps. Je peux faire quelque chose de plus sophistiqué si cela a du sens, mais j'ai besoin que cela soit expliqué en termes relativement accessibles.

Anne Z.
la source

Réponses:

4

t0,t1,,tntje(Zje,Sje)ZjeSje(1,0)Prob(zje=0|sje-1)Sje

Les probabilités d'abandon ne sont pas stationnaires, car vous obtiendrez une frénésie d'abandons juste avant la date finale d'abandon sans pénalité. Mais vous pouvez les estimer à partir des données passées.Vous pouvez également estimer la probabilité de décrochage en fonction des performances actuelles (lamentables).

Sn

ZS score ne franchit pas le seuil de réussite de 70 \%.

S processusPour simplifier le modèle, supposons que l'évaluation implique l'obtention de 70 points ou plus sur un total de 100 points possibles, obtenus à partir de 10 éléments de test chaque semaine.

Au départ, la probabilité de réussite d'un élève est simplement le taux de réussite de la classe précédente.

S170-S1 points sur 90. c'est un problème binomial, que je peux facilement calculer si je connais la probabilité de réussite de l'élève. Ce ne sera plus la "moyenne de classe"; Je dois m'adapter à la lumière de la réussite de l'étudiant jusqu'à présent. J'utiliserais un tableau de l'expérience passée pour cela, mais vous pourriez faire une moyenne pondérée du taux de réussite global de la classe et de la réussite personnelle de l'élève. La règle de Bayes devrait aider ici.

En prime, vous pouvez calculer une plage de probabilités, qui devrait se rétrécir à mesure que le terme progresse. En fait, les étudiants forts franchiront la barre des 70 \% avant la fin du trimestre et leur succès sera certain à ce moment-là. Pour les élèves faibles, l'échec deviendra également certain avant la fin.

RE: question 3. Faut-il aller en temps continu? Je ne le ferais pas, car cela place l'un dans le domaine des processus stochastiques à temps continu et les mathématiques impliquées sont au-dessus de ma note de rémunération. Non seulement cela, il est peu probable que vous obteniez un résultat sensiblement différent.

La meilleure façon de mettre à niveau le modèle que j'ai décrit n'est pas de passer au temps continu, mais d'ajuster les probabilités de transition sur la base de l'expérience antérieure. Peut-être que les étudiants faibles accusent un retard plus important qu'un modèle d'indépendance ne le prévoirait. L'intégration de l'homégénité améliorerait davantage le modèle que le passage du temps discret au temps continu.

Placidia
la source
0

Lorsque je forme des modèles prédictifs pour un type de déploiement similaire, je m'assure que mes ensembles de données ont une sorte de Term_End_Date afin que je puisse déterminer la durée restante jusqu'à la fin du terme. Cela finira probablement par être un prédicteur important dans votre modèle.

En ce qui concerne la question des observations corrélées, je suppose que la taille d'un référentiel de données dont vous disposez est importante. Si possible, je sélectionnerais au hasard 1 observation pour chaque étudiant, stratifiée sur [# de semaines jusqu'à la fin du trimestre]. Si possible, je prendrais également des termes plus anciens. Si vous n'avez pas suffisamment de données pour le faire, vous pouvez peut-être essayer une méthode de rééchantillonnage comme le bootstrap.

Je pense que la chose la plus importante si vous avez un petit ensemble de données est de conserver suffisamment de données comme rétention pour vous assurer que votre modèle final est stable.

Je pense que lorsque vous avez terminé et que vous avez une formule de notation, ce sera assez facile à mettre en œuvre. Mais oui, vous devriez toujours brancher les variables hebdomadaires x dont vous aurez besoin pour calculer le score - mais cela ressemble plus à un problème de collecte de données et moins à la mise en œuvre du modèle.

Josh
la source