Comment obtenir une matrice de covariance pour un ajustement de régression contraint?

8

Existe-t-il un moyen facile d'obtenir la covariance des paramètres à partir d'un ajustement de régression contraint?

J'utilise la fonction PCLS dans le package MGCV dans R pour s'adapter à la régression contrainte, mais je suis ouvert à d'autres approches. La contrainte que j'impose est que les coefficients doivent être positifs.

Glen
la source
Quelle est la taille de votre échantillon?
jbowman
1
N'êtes-vous pas préoccupé par le fait qu'une matrice de covariance ne sera probablement pas une description utile de l'incertitude des paramètres pour toute estimation à ou près des contraintes?
whuber
L'échantillon est d'environ 500. @whuber Oui, c'est une préoccupation. Et comme je sais que certaines estimations seront proches des contraintes, il n'est peut-être même pas logique de penser à une matrice de covariance. Cependant, étant donné que la fonction PCLS effectue une sorte de procédure d'optimisation, vous penseriez pouvoir obtenir la matrice de Hesse, qui fournirait des informations.
Glen
@whuber Sous des contraintes de non-négativité, je calculerais cette matrice de covariance sur les coefficients estimés de bootstrap qui sont non nuls seulement ... C'est-à-dire que betahat = bootout $ t; betahat [betahat == 0] = NA # ignore les zéros car ils sont à la limite de contrainte; vcov = cov (betahat, use = "pairwise.complete.obs"); SEs = sqrt (diag (vcov)) - ce sera une meilleure description des paramètres estimés sous contraintes de non négativité. Si vous souhaitez simuler à partir de cette matrice vcov, il vous suffit de définir des valeurs négatives à zéro.
Tom Wenseleers
@ Tom Merci. Ma préoccupation était motivée par l'idée que la matrice de covariance peut être une mauvaise description de la distribution d'échantillonnage, en raison de la contrainte de limite. Peut-être, alors, une meilleure utilisation d'un bootstrap ou d'une autre procédure de rééchantillonnage ne serait pas d'estimer la matrice de covariance mais d'étudier directement la distribution des estimations des paramètres.
whuber

Réponses:

5

Au début, j'irais avec un bootstrap très simple.

Fondamentalement, quelque chose comme suit:

  1. Créez un nouvel ensemble de données en rééchantillonnant des paires de (x,y).
  2. Exécutez votre régression sur ce nouvel ensemble de données et vous obtiendrez certains paramètres β^.
  3. Répétez 1 et 2 autant de fois que possible. Maintenant, vous aurez un grand nombre deβ^
  4. Prenez maintenant l'échantillon de covariance de votre β^.
  5. Terminé
CarrKnight
la source
Voilà ce que je pensais. Pouvez-vous élaborer un peu à l'étape 1? Rééchantillonner avec remplacement? Ou...?
Macro
Oui. Le bootstrap vanille échantillonne avec remplacement. ainsi, par exemple, si vos données sont(x,y)={(1,1);(1,2);(1,3)} un nouvel ensemble de données serait (1,3);(1,3);(1,1). Ce n'est pas le seul type de rééchantillonnage possible bien sûr. Un autre est de réutiliser tous lesX et choquant tous Ouipar un bruit. Mais le rééchantillonnage des paires est le plus simple et le plus agnostique
CarrKnight
J'ai beaucoup lu sur le bootstrap mais je n'ai jamais entendu le terme bootstrap vanille. C'est peut-être l'équivalent de ce qu'on appelle le bootstrap ordinaire ou naïf. En ce qui concerne les paires d'amorçage par rapport aux résidus d'amorçage, les paires d'amorçage sont plus simples, mais qu'entendez-vous par agnostique (pas fortement dépendant du modèle?)?
Michael R. Chernick
3
@MichaelChernick: Vanilla est un terme familier pour la version "régulière", "habituelle" ou "simple" de quelque chose.
cardinal
1
@MichaelChernick: Je ne sais pas dans quelle mesure un langage régional que l'utilisation de la vanille pourrait être. (Je pensais que vous l'auriez probablement entendu.) Quoi qu'il en soit, ce que je voulais dire (mais je n'ai pas dit très clairement), c'est que je suis presque certain que CarrKnight n'utilisait pas le terme d'une manière spécifique au bootstrap . :)
cardinal