Eu sei que a rpart
função de R mantém os dados necessários para implementar a divisão multivariada, mas não sei se ele está realmente executando divisões multivariadas. Eu tentei pesquisá-lo on-line, olhando para os rpart
documentos, mas não vejo nenhuma informação que ele possa fazer ou esteja fazendo. Alguém sabe ao certo?
r
multivariate-analysis
cart
chubbsondubs
fonte
fonte
Respostas:
O Rpart fornece apenas divisões univariadas. Acredito, com base na sua pergunta, que você não está totalmente familiarizado com a diferença entre um método de particionamento univariado e um método de particionamento multivariado. Fiz o meu melhor para explicar isso abaixo, além de fornecer algumas referências para pesquisas adicionais e sugerir alguns pacotes R para implementar esses métodos.
Rpart é um classificador baseado em árvore que usa particionamento recursivo. Com os métodos de particionamento, você deve definir os pontos nos seus dados nos quais uma divisão deve ser feita. O algoritmo rpart em R faz isso encontrando a variável e o ponto que melhor divide (e, portanto, reduz) o RSS. Como as divisões acontecem apenas ao longo de uma variável por vez, essas são divisões univariadas. Uma divisão multivariada é normalmente definida como um particionamento simultâneo ao longo de vários eixos (portanto, multivariada), ou seja, o primeiro nó rpart pode se dividir ao longo de Idade> 35, o segundo nó pode se dividir em Renda> 25.000 e o terceiro nó pode se dividir nas cidades a oeste de o Mississippi. O segundo e o terceiro nós são divididos em subconjuntos menores dos dados gerais, portanto, no segundo nó, o critério de renda divide melhor o RSS apenas para as pessoas com mais de 35 anos, não se aplica a observações não encontradas neste nó, o mesmo se aplica ao critério Cidades. Pode-se continuar fazendo isso até que exista um nó para cada observação em seu conjunto de dados (rpart usa uma função de tamanho mínimo de bucket além de um critério de tamanho mínimo de nó e um parâmetro cp que é o mínimo que o valor do quadrado r deve aumentar para continue ajustando).
Um método multivariado, como o Método de Indução de Regras do Paciente (o pacote prim em R), seria dividido simultaneamente, selecionando, por exemplo, Todas as observações em que a renda fosse superior a 22.000, Idade> 32 e Cidades a oeste de Atlanta. A razão pela qual o ajuste pode ser diferente é porque o cálculo para o ajuste é multivariado em vez de univariado, o ajuste desses três critérios é calculado com base no ajuste simultâneo das três variáveis em todas as observações que atendem a esse critério, em vez de particionar iterativamente com base no divisões univariadas (como com rpart).
Existem várias crenças no que diz respeito à eficácia dos métodos de particionamento univariado versus multivariado. Geralmente, o que eu vi na prática é que a maioria das pessoas prefere o particionamento univariado (como o rpart) para fins explicativos (só é usado na previsão quando se lida com um problema em que a estrutura está muito bem definida e a variação entre as variáveis é bastante constante, é por isso que estes são frequentemente utilizados na medicina). Modelos de árvore univariados são tipicamente combinados com alunos de ensemble quando usados para previsão (isto é, uma floresta aleatória). As pessoas que usam particionamento ou agrupamento multivariado (que está intimamente relacionado ao particionamento multivariado) costumam fazer isso para problemas complexos que os métodos univariados se encaixam muito mal, e o fazem principalmente para previsão ou para agrupar observações em categorias.
Eu recomendo o livro de Julian Faraway, Estendendo o modelo linear com R. O capítulo 13 é inteiramente dedicado ao uso de árvores (todas univariadas). Se você estiver mais interessado em métodos multivariados, Elements of Statistical Learning de Hastie et. al, fornece uma excelente visão geral de muitos métodos multivariados, incluindo o PRIM (embora Friedman em Stanford tenha seu artigo original sobre o método publicado em seu site), bem como os métodos de agrupamento.
No que diz respeito aos pacotes R para utilizar esses métodos, acredito que você já esteja usando o pacote rpart, e mencionei o pacote prim acima. Existem várias rotinas de cluster embutidas e eu gosto bastante do pacote de partes mencionado por outra pessoa neste segmento, devido à sua implementação de inferência condicional no processo de criação da árvore de decisão. O pacote optpart permite executar o particionamento multivariado, e o pacote mvpart (também mencionado por outra pessoa) permite executar árvores rpart multivariadas, no entanto, eu pessoalmente prefiro usar o partDSA, que permite combinar nós mais abaixo na sua árvore para ajudar a impedir o particionamento de similares observações, se achar que parte e parte não são adequadas para meus propósitos de modelagem.
Nota: No meu exemplo de uma árvore rpart no parágrafo 2, descrevo como o particionamento funciona com números de nós. Se alguém desenhar essa árvore, o particionamento continuará para a esquerda se a regra para a divisão for verdadeira, no entanto no RI acredite que a divisão realmente prossiga para a direita se a regra for verdadeira.
fonte
Por mais que eu saiba, isso não acontece; mas não o usa há um tempo. Se eu te entendo bem, você pode querer olhar para o pacote mvpart .
fonte
Sua terminologia é confusa. Por que você quer dizer divisões usando mais de uma variável ou uma árvore que permita uma resposta multivariada (em oposição a uma univariada)? Eu presumo o último.
F. Tusell apontou para o pacote mvpart, que adiciona um critério multivariado para a impureza do nó que é avaliado para todas as divisões possíveis em cada estágio da construção da árvore.
Uma alternativa é o pacote de terceiros , cuja função
ctree()
pode lidar com respostas multivariadas.fonte
rpart
, a divisão binária é formada pela pesquisa sobre todas as variáveis e todos os possíveis locais de divisão dentro de cada variável.rpart
também armazena informações sobre divisões substitutas que podem ser usadas quando há dados ausentes em suas variáveis. Isso ajuda?rpart
não trata desse caso.As divisões multivariadas conforme definidas no livro CART não são implementadas
rpart
. O pacote de software CART da Salford Systems possui esse recurso, mas o AFAIK utiliza um algoritmo proprietário licenciado pela Breiman, Friedman et al.fonte