eliminação para trás / seleção para frente na regressão multilinear em Julia

fdabhi

Eu sou muito novo para Julia.

Existe um pacote no Julia que ajuda a automatizar a eliminação para trás ou para a frente de recursos para um problema de regressão linear múltipla.

Eu encontrei o código em python aqui e aqui, mas não consigo encontrar nenhum em Julia.

Desde já, obrigado !

Bogumił Kamiński

Se não houver resposta, provavelmente não haverá suporte :). O motivo é mais provável que normalmente Lasso etc. sejam preferidos à seleção para frente / para trás. E você tem suporte para regularização, por exemplo, em Regression.jl.

No entanto, é muito simples escrever sua própria seleção passo a passo:

using DataFrames
using RDatasets
using StatsBase
using GLM

function compose(lhs::Symbol, rhs::AbstractVector{Symbol})
    Formula(lhs, Expr(:call, :+, [1;rhs]...))
end

function step(df, lhs::Symbol, rhs::AbstractVector{Symbol},
              forward::Bool, use_aic::Bool)
    options = forward ? setdiff(names(df), [lhs; rhs]) : rhs
    fun = use_aic ? aic : bic
    isempty(options) && return (rhs, false)
    best_fun = fun(lm(compose(lhs, rhs), df))
    improved = false
    best_rhs = rhs
    for opt in options
        this_rhs = forward ? [rhs; opt] : setdiff(rhs, [opt])
        this_fun = fun(lm(compose(lhs, this_rhs), df))
        if this_fun < best_fun
            best_fun = this_fun
            best_rhs = this_rhs
            improved = true
        end
    end
    (best_rhs, improved)
end

function stepwise(df, lhs::Symbol, forward::Bool, use_aic::Bool)
    rhs = forward ? Symbol[] : setdiff(names(df), [lhs])
    while true
        rhs, improved = step(df, lhs, rhs, forward, use_aic)
        improved || return lm(compose(lhs, sort(rhs)), df)
    end
end

Dois parâmetros principais acima são forward(fazemos a seleção para frente ou para trás) e use_aic(usamos AIC ou BIC). Claro que tudo isso pode ser facilmente alterado. A implementação não é otimizada para velocidade, mas deve ser boa o suficiente em casos simples.

Aqui está como você pode usá-lo:

df = dataset("datasets", "swiss")[2:end]
stepwise(df, :Fertility, true, false)
stepwise(df, :Fertility, true, true)
stepwise(df, :Fertility, false, true)
stepwise(df, :Fertility, false, false)

(todas as opções retornam o mesmo modelo e são consistentes com um exemplo de referência em R)

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como posso realizar uma seleção para frente, uma seleção para trás e uma regressão stepwise em R?

Deslize o gesto para frente / para trás em UIWebView?

Como encontrar um tempo de seleção do usuário para a frente ou para trás em javascript?

O que são passes para frente e para trás em redes neurais?

Barra para frente e barra para trás para o caminho do arquivo em git bash

Criação de botões para frente / para trás em html para dados da tabela

Como definir um movimento para a frente e para trás na junta de rotação Libgdx?

olhar para a frente e olhar para trás na expressão regular

olhar para a frente e olhar para trás na expressão regular

animação de componentes estilizados para frente e para trás com base em adereços

Corte a partir de um espaço ou guia para frente ou para trás em Java

Como fazer o agrupamento de dados para trás / para a frente em um dataframe?

RaphaelJS: animação para frente e para trás repetida

Animação CSS para frente e para trás

Animação SVG para frente e para trás

A lista vinculada substitui o nó da frente em vez de voltar para trás

Como extrair o número de trás para frente em javascript de maneira otimizada

Lendo o soquete de URL de trás para frente em Python

Iterar uma coleção de trás para frente em Pharo Smalltalk

Como fazer o objeto orbitar de trás para frente?

Como implementar comandos para seleção de tréenodos na visualização em árvore do WPF

Vuejs transição para frente e para trás pulando para a frente para o último quadro nas costas

Eliminação para trás em grandes conjuntos de dados em python

Sintaxe para regressão segmentada de três peças usando NLS em R quando côncava

Sintaxe para regressão segmentada de três peças usando NLS em R quando côncava

Como posso recuperar os recursos da última etapa da regressão para trás em R

como fazer uma função para mudar o texto para trás e para frente

Por que não olhar para frente e para trás do trabalho da Regex em Kotlin?

Realizar a observação do último fator para frente e para trás no grupo de linhas em R

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo