Atualização da probabilidade de classificação em regressão logística ao longo do tempo

19

Estou construindo um modelo preditivo que prevê a probabilidade de sucesso de um aluno no final de um semestre. Estou especificamente interessado em saber se o aluno é bem-sucedido ou não, onde o sucesso é geralmente definido como a conclusão do curso e a obtenção de 70% ou mais pontos do total de pontos possíveis.

Quando implanto o modelo, a estimativa da probabilidade de sucesso precisa ser atualizada ao longo do tempo à medida que mais informações se tornam disponíveis - idealmente imediatamente após algo acontecer, como quando um aluno envia uma tarefa ou obtém uma nota em uma. Essa atualização me parece um pouco bayesiana, mas, dada minha formação em estatística educacional, isso está um pouco fora da minha zona de conforto.

Até agora, tenho usado regressão logística (na verdade laço) com um conjunto de dados históricos contendo instantâneos baseados em semanas. Este conjunto de dados correlacionou observações, uma vez que cada aluno possui observações ; as observações de um aluno estão correlacionadas. Não estou modelando especificamente a correlação nas observações semanais de um aluno em particular. Acredito que eu precisaria considerar isso apenas em um ambiente inferencial, pois os erros padrão seriam muito pequenos. Eu acho - mas não tenho certeza disso - que o único problema decorrente das observações correlacionadas é que preciso ter cuidado ao validar cruzadamente para manter as observações agrupadas em um subconjunto dos dados, para que eu não receba taxas de erro fora da amostra artificialmente baixas com base em fazer previsões sobre uma pessoa que o modelo já viu.TermLength/7

Estou usando o pacote glmnet do R para fazer um laço com um modelo logístico para gerar uma probabilidade de sucesso / falha e escolher automaticamente preditores para um curso específico. Eu tenho usado a variável semana como um fator, interagido com todos os outros preditores. Eu não acho que isso difere em geral apenas de estimar modelos individuais baseados em semanas, exceto que dá uma idéia de como pode haver algum modelo comum que se mantenha ao longo do prazo, que é ajustado por vários fatores de ajuste de risco em semanas diferentes.

Minha principal pergunta é a seguinte: existe uma maneira melhor de atualizar as probabilidades de classificação ao longo do tempo, em vez de apenas dividir os dados em snapshots semanais (ou outros intervalos), introduzindo uma variável de fator de período de tempo interagida com todos os outros recursos e usando recursos cumulativos (pontos acumulados ganhos, dias acumulados em sala de aula etc.)?

Minha segunda pergunta é: estou perdendo algo crítico aqui sobre modelagem preditiva com observações correlatas?

Minha terceira pergunta é: como posso generalizar isso para uma atualização em tempo real, pois estou fazendo snapshots semanais? Estou planejando apenas inserir variáveis ​​para o intervalo semanal atual, mas isso me parece um desdém.

Para sua informação, sou treinado em estatísticas educacionais aplicadas, mas tenho experiência em estatísticas matemáticas há muito tempo. Posso fazer algo mais sofisticado se fizer sentido, mas preciso explicá-lo em termos relativamente acessíveis.

Anne Z.
fonte

Respostas:

4

Você não pode chegar lá daqui. Você precisa começar com um modelo diferente. Eu manteria os instantâneos semanais e construiria um modelo estocástico em torno das transições na variável de estado de cada aluno. Suponha que haja 10 semanas, que fornece 11 pontos de "decisão", . O estado em é , onde é 1 ou 0, conforme o aluno esteja matriculado ou não ; e é a pontuação nesse ponto (a soma dos resultados dos testes e tarefas de casa até o momento) .Os valores iniciais são . Você tem duas transições para se preocupar: e a distribuição de .t i ( Z i , S i ) Z i S i ( 1 , 0 ) P r o b ( Z i = 0 | s i - 1 ) S it0,t1,,tnti(Zi,Si)ZiSi(1,0)Prob(zi=0|si1)Si

As probabilidades de desistência não são estacionárias, pois você receberá uma grande quantidade de desistências imediatamente antes da data final da dispensa sem penalidade. Mas você pode estimar isso a partir de dados anteriores. Você também pode estimar a probabilidade de desistência em função do desempenho atual (sombrio).

As pontuações são uma caminhada aleatória em um resultado binomial (número de respostas corretas em um teste de itens, digamos). Você provavelmente pode assumir independência condicional - assuma um parâmetro latente de "talento" para cada aluno e, dependendo desse valor, cada nova pontuação é independente do desempenho atual. Você poderia testar essa suposição com base em seus dados históricos ... os alunos reprovados mudam seus hábitos de estudo e conseguem uma vitória? Mas a maioria dos estudantes se comporta fielmente à forma ... então um modelo condicionalmente independente deve funcionar bem.nSn

Então, basicamente, um aluno falha se uma pontuação passa para 0 ou a pontuação falha ao cruzar o limite de aprovação de 70 \%.SZS

Vamos olhar mais de perto o processoPara simplificar o modelo, suponha que a avaliação envolva a obtenção de 70 pontos ou mais de um total de 100 pontos possíveis, obtidos de 10 itens de teste por semana.S

Na linha de base, a probabilidade de aprovação de um aluno é simplesmente a taxa de aprovação da turma anterior.

No momento 1, o aluno ganhou pontos (ou desistiu). Ele passa se conseguir ganhar pelo menos pontos em 90. esse é um problema binomial, que posso calcular facilmente se conheço a probabilidade de sucesso do aluno. Isso não será mais a "média da classe"; Preciso me ajustar à luz do sucesso do aluno até agora. Eu usaria uma tabela de experiências anteriores para isso, mas você poderia fazer uma média ponderada da taxa geral de sucesso das turmas e do sucesso pessoal do aluno. A regra de Bayes deve ajudar aqui. 70 - S 1S170S1

Como bônus, você pode calcular uma série de probabilidades, que devem diminuir à medida que o termo avança. De fato, estudantes fortes ultrapassarão a marca dos 70% antes do final do semestre, e seu sucesso será certo nesse ponto. Para alunos fracos, o fracasso também se tornará certo antes do final.

RE: pergunta 3. Você deve ir para o tempo contínuo? Eu não faria isso, porque isso coloca alguém no campo dos processos estocásticos de tempo contínuo e a matemática envolvida está acima da minha nota de pagamento. Além disso, é improvável que você obtenha um resultado substancialmente diferente.

A melhor maneira de atualizar o modelo que descrevi não é o tempo contínuo, mas o ajuste das probabilidades de transição com base na experiência anterior. Talvez os alunos fracos fiquem mais para trás do que um modelo de independência poderia prever. Incorporar a falta de homogeneidade melhoraria o modelo mais do que passar de um tempo discreto para um tempo contínuo.

Placidia
fonte
0

Ao treinar modelos preditivos para um tipo semelhante de implantação, garanto que meus conjuntos de dados tenham algum tipo de Term_End_Date, para que eu possa reduzir o tempo restante até o término do prazo. Provavelmente, isso acabará sendo um preditor significativo no seu modelo.

Em relação à questão das observações correlatas, suponho que seja importante o tamanho de um repositório de dados que você possui. Se possível, eu selecionaria aleatoriamente 1 observação para cada aluno, estratificada em [# de semanas até o final do período]. Eu também usaria termos mais antigos, se possível. Se você não tiver dados suficientes para fazer isso, talvez tente um método de re-amostragem, como o bootstrap.

Eu acho que a coisa mais importante se você tem um pequeno conjunto de dados é manter dados suficientes como reserva para garantir que seu modelo final seja estável.

Acho que quando terminar, e você tiver uma fórmula de pontuação, será muito fácil de implementar. Mas sim, você ainda deve conectar as variáveis ​​x semanais necessárias para calcular a pontuação - mas isso parece mais um problema de coleta de dados e menos sobre a implementação do modelo.

Josh
fonte