J'ai une question simple: donné p points (non colinéaires) dans R^pi trouver l'hyperplan passant par ces points (pour aider à clarifier je tape tout dans R):(toutes les) directions perpendiculaires à l'hyperplan à travers p points de données
p<-2
x<-matrix(rnorm(p^2),p,p)
b<-solve(crossprod(cbind(1,x[,-2])))%*%crossprod(cbind(1,x[,-2]),x[,2])
alors, étant donné un p + 1^point e pas colinéaires avec les premiers p points, je trouve la direction perpendiculaire à b:
x2<-matrix(rnorm(p),p,1)
b2<-solve(c(-b[-1],1)%*%t(c(-b[-1],1))+x2%*%t(x2))%*%x2
Autrement dit, b2 définit hyperplan ap dimensions perpendiculaires à b et en passant par x2. Maintenant, mes questions sont:
La formule vient de my interpretation of this wikipedia entry ("solve (A)" est la commande R pour A^-1). Pourquoi cela ne fonctionne pas pour p> 2? Qu'est-ce que je fais mal ? PS: J'ai vu ce post (sur stakeoverflow edit: désolé, je ne peux pas poster plus d'un lien) mais de toute façon cela ne m'aide pas.
Merci à l'avance,
i ont une implémentation problème/compréhension de la solution de Liu lorsque p> 2:
ne devrait pas le produit scalaire entre la décomposition qr de la matrice sweeped et la direction du hyperplan être 0? (À savoir si les vecteurs qr sont perpendiculaires à l'hyperplan)
i.e., lorsque p = 2 ce
c(-b[2:p],1)%*%c(a1)
donne 0. Lorsque p> 2, il ne le fait pas.
Voici ma tentative de mettre en œuvre la solution de Victor Liu.
a) étant donné les observations p linéairement indépendantes par R^p:
p<-2;x<-matrix(rnorm(p^2),p,p);x
[,1] [,2]
[1,] -0.4634923 -0.2978151
[2,] 1.0284040 -0.3165424
b) jeu entre eux dans une matrice et soustraire la première ligne:
a0<-sweep(x,2,x[1,],FUN="-");a0
[,1] [,2]
[1,] 0.000000 0.00000000
[2,] 1.491896 -0.01872726
c) effectuer une décomposition QR de la matrice a0. Le vecteur dans l'espace nul est la direction im recherchant:
qr(a0)
[,1] [,2]
[1,] -1.491896 0.01872726
[2,] 1.000000 0.00000000
En effet; cette direction est la même que celle donnée par application de la formule de wikipedia (en utilisant x2 = (0.4965321,0.6373157)):
[,1]
[1,] 2.04694853
[2,] -0.02569464
... avec l'avantage que cela fonctionne dans des dimensions supérieures.
J'ai une dernière question: quelle est la signification de l'autre p-1 (c'est-à-dire (1,0) ici) vecteur QR lorsque p> 2? -Merci à l'avance,
@Moderator: marqué comme "delete-me". PAS de contexte de programmation. –
@Xencor: Il a été marqué comme géométrie. http://stackoverflow.com/questions/tagged/math @Modo: je l'ai étiqueté comme géométrie et vecteurs ... peut-être que je devrais ajouter une balise comme "math" ... je ne sais pas comment ajouter un tag au-dessus de "delete-me" – user189035
@Xencor: serait heureux de fournir plus de "contexte de programmation" à condition d'expliquer ce que vous entendez exactement par là (tant que je peux garder le poste court et non obstrué). – user189035