Pourquoi faut-il longtemps à R pour adapter un modèle avec un facteur à plusieurs niveaux?

12

J'adapte un modèle avec un facteur à plusieurs niveaux et il faut très longtemps à R pour s'adapter à ce modèle. Pourquoi est-ce?

Par exemple, si j'adapte une régression pour prédire les salaires des joueurs et que j'inclus un facteur prédictif pour toutes les nationalités respectives des joueurs, cela prendrait plus de temps que d'adapter un modèle de salaire de joueurs avec un prédicteur continu, comme celui des joueurs. hauteurs.

Goldisfine
la source
5
Il pourrait être utile de se rendre compte que, bien que le facteur ressemble à une variable (c'est une colonne dans le bloc de données, un élément dans la spécification du modèle, etc.), dans les coulisses, il sera en fait traité comme un tas de prédicteurs distincts. Le modèle est donc beaucoup plus compliqué qu'un modèle à prédicteur unique (continu).
Gala du

Réponses:

13

R est typique - comme la plupart des logiciels de statistiques, il utilise la décomposition QR pour la régression.

Pour fixe , où , le simple calcul de la décomposition est en fait quadratique en - doubler le nombre de prédicteurs multipliera le temps de calcul par environ 4.np<<np

Donc, si vous passez de (régression linéaire) à , vous vous attendriez à ce que cela prenne quelque chose de l'ordre de 600 fois plus longtemps (en réalité probablement un peu moins, pour diverses raisons).p=2p=50

Ainsi, l'ajout de nombreux prédicteurs signifiera une attente considérablement plus longue.

Glen_b -Reinstate Monica
la source
7

En effet, avec un facteur ayant niveaux, R crée variables d'indicateur. Donc, supposons qu'il y ait nationalités, vous ajustez un modèle de régression multiple avec prédicteurs, par rapport à une régression linéaire simple si vous le traitez comme continu (ce que vous ne devriez pas). Peut-être pourriez-vous créer un nouveau facteur qui est le continent ou un autre regroupement plus grossier de nationalités, afin d'accélérer les choses et d'obtenir un modèle plus parcimonieux.kk1k=5049

Russ Lenth
la source