Ridge regression en crossvalidatie
Ridge regression en crossvalidatie
Ik moet op een set gegevens een ridge regression doorvoeren. Ik weet dat ik daarvoor een crossvalidatie moet doen om deze te gebruiken in deze ridge regression. Maar ik snap er helemaal niets van. Is er iemand die hier enige kennis van heeft en mij zou kunnen helpen?
Re: Ridge regression en crossvalidatie
Je bedoelt met crossvalidatie testen op multicolineariteit?Eline_t schreef:Ik weet dat ik daarvoor een crossvalidatie moet doen om deze te gebruiken in deze ridge regression. Maar ik snap er helemaal niets van. Is er iemand die hier enige kennis van heeft en mij zou kunnen helpen?
Re: Ridge regression en crossvalidatie
Eerlijk.. Ik heb er geen idee van. Omdat er grote onderlinge correlaties zijn tussen de onafhankelijke variabelen werd mij gezegd dat ik een ridge regression moest doorvoeren, en een cross validatie om de vector te vinden die nodig is voor deze regressie. Maar hoe vindt je die vector? In matlab kan de regressie worden doorgevoerd door: b = ridge(y,X,k) waarbij y de afhankelijke en x de onafhankelijke variabelen zijn. En k is a vector of ridge parameters staat in de help.
Re: Ridge regression en crossvalidatie
Ik kende ridge regression niet. Ik heb er intussen wat over gelezen en begrijp nu de idee erachter.
Blijkbaar is zo'n crossvalidation in Matlab niet standaard beschikbaar.
http://stats.stackexchange.com/question ... sion-model
Ben je verplicht om Matlab te gebruiken? In R is dat bvb wel standaard beschikbaar.
http://stackoverflow.com/questions/1524 ... -parameter
Blijkbaar is zo'n crossvalidation in Matlab niet standaard beschikbaar.
http://stats.stackexchange.com/question ... sion-model
Ben je verplicht om Matlab te gebruiken? In R is dat bvb wel standaard beschikbaar.
http://stackoverflow.com/questions/1524 ... -parameter
Re: Ridge regression en crossvalidatie
Ik snap nu ongeveer ook wat de ridge regression juist inhoudt. Maar kan je verklaren wat die k inhoudt? En klopt het dat ik dit kan vinden door die cross validation?
Er was mij aangeraden om matlab te gebruiken omdat we daarvan een licentie hebben op school. Ik weet niet niet hoe dat met R zit..
Er was mij aangeraden om matlab te gebruiken omdat we daarvan een licentie hebben op school. Ik weet niet niet hoe dat met R zit..
Re: Ridge regression en crossvalidatie
In R is het echt heel eenvoudig.
http://stackoverflow.com/questions/1524 ... -parameter
R is open source en een veelgebruikt pakket voor statistiek. Je kan het gratis downloaden.
http://www.r-project.org/
Normaal houd ik ook wel van Matlab, maar betreffende Ridge regressie is de uitleg in Matlab wel onduidelijk. Ik weet het ook niet juist.
http://stackoverflow.com/questions/1524 ... -parameter
R is open source en een veelgebruikt pakket voor statistiek. Je kan het gratis downloaden.
http://www.r-project.org/
Normaal houd ik ook wel van Matlab, maar betreffende Ridge regressie is de uitleg in Matlab wel onduidelijk. Ik weet het ook niet juist.
Re: Ridge regression en crossvalidatie
Ik probeerde in dit boek: http://www-stat.stanford.edu/~tibs/ElemStatLearn/ wat meer te weten te komen over de ridge regression. En daar staat op p 67 figuur 3.9 met de largest principal component. Kan je soms verklaren wat dit ermee te maken heeft? Ik snap nu wel dat er een extra component wordt toegevoegd op de diagonaal van de matrix omdat het kan zijn dat de matrix singulier is. Maar ik snap nog altijd niet juist van waar deze vandaan komt. Heeft dat dan iets te maken met dit figuur?
Re: Ridge regression en crossvalidatie
Bij het plaatje staat:
De bedoeling is de component van de coëfficienten waar de grootste spreiding op zit (dus in de richting van de principal component) te verkleinen, om zo te komen tot een resultaat dat in kleinste kwadraten zin misschien een groter residu heeft, maar wel een resultaat waarin de coëfficienten minder spreiding hebben.Principal components of some input data points. The largest prin-
cipal component is the direction that maximizes the variance of the projected data,
and the smallest principal component minimizes that variance. Ridge regression
projects y onto these components, and then shrinks the coefficients of the low–
variance components more than the high-variance components.
Re: Ridge regression en crossvalidatie
Ja, maar ik snapte niet zo goed wat ze daarmee juist bedoelen. Nu snap ik het al iets meer Nog een vraagje: ik heb dus 2 matrices, 1 met de waarden in van de verschillende variabelen en 1 met de oplossing in die moet bekomen worden.
Dus Y=XB.
Maar voor deze regressie en crossvalidatie toe te passen, moet ik dit dan doen op matrix X? Of op matrix X met een extra kolom bij met de Y-waarden?
Dus Y=XB.
Maar voor deze regressie en crossvalidatie toe te passen, moet ik dit dan doen op matrix X? Of op matrix X met een extra kolom bij met de Y-waarden?
Re: Ridge regression en crossvalidatie
Ok, sorry ik heb nu gezien dat het 2 aparte matrices zijn. Enige idee wat een lage k of lambda-waarde wil zeggen? Bij logisch redeneren wil dit denk ik zeggen dat het bijna geen nut heeft om zo een regressie door te voeren. Of zit ik hier mis?
Re: Ridge regression en crossvalidatie
Ja, als lambda naar nul gaat, vallen in de limiet gewone en ridge regressie tesamen.
Re: Ridge regression en crossvalidatie
En wanneer ik nu in R deze ridge.cv doorvoer bekom ik een waarde bij intercept die verschillend is van 0. Toch had ik bij de meervoudige lineaire regressie daar ingesteld dat er een intercept was van 0, zodat er geen beta0 in het model voorkwam. Of wil deze intercept iets anders zeggen? En zoniet, enig idee hoe ik deze op 0 kan krijgen?
Re: Ridge regression en crossvalidatie
Ik wil wel eens kijken. Kan je je data delen als ze niet confidentieel is?
Re: Ridge regression en crossvalidatie
Het lukt mij in R met deze code.
Code: Selecteer alles
n<-15 # number of observations
p<-5 # number of variables
X<-matrix(c(data verwijderd), nrow = n, ncol = p, byrow = TRUE)
y<-matrix(c(data verwijderd), nrow = n, ncol = 1, byrow = TRUE)
ridge.object<-ridge.cv(X,y)
ridge.object