<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Ridge Regression in Statistical Procedures</title>
    <link>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130630#M6843</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, for your quick replay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 11 Mar 2013 13:41:54 GMT</pubDate>
    <dc:creator>Ben_E</dc:creator>
    <dc:date>2013-03-11T13:41:54Z</dc:date>
    <item>
      <title>Ridge Regression</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130628#M6841</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried to perform a simple ridge regression in SAS, but I am a bit confused by the results, since they do not correspond with the results in R or even with the results in proc IML, if I do the estimation by hand. The formula I used is beta =&amp;nbsp; inv(T(X) * X + delta) * (T(X) * Y) , where delta is the penalty matrix with the ridge parameters on the diagonal. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have used the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;/*Ridge regression*/&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;proc reg data=ridgedat outvif outest=ridge1_est ridge=0.4;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt; ods select collindiag;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt; ods output collindiag=ridge1_eigenvalues;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt; ridge1: model y = x1 x2 x3 x4 x5 x6 ;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;proc print data=ridge1_est noobs;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt; var _type_ intercept x1 x2 x3 x4 x5 x6;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;run;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;/*Ridge regression by hand*/&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;proc iml;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USE work.ridgedat;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Open data set for reading */&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ ALL var {x1 x2 x3 x4 x5 x6} INTO X;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Place independent variables into X */&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ ALL var {y} INTO y;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Place dependent variable into Y */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLOSE work.ridgedat;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Close data set */&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = J(nrow(X),1,1) || X;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Add col with 1s for estimating the intercept to the X matrix */&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Create diagonal matrix for the ridge parameter*/&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ridge = J(1,ncol(X),0.4);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delta = diag(ridge);&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Calculate paramter*/&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b =&amp;nbsp; inv(T(X) * X + delta) * (T(X) * y) ;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT b;&lt;/P&gt;&lt;P style="padding-left: 150px;"&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The results:&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="jiveImage" src="https://communities.sas.com/legacyfs/online/3163_pastedImage_1.png" style="width: 649px; height: 517px;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As it can be seen, the values differ significantly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What happens? What is doing the ridge regression in proc reg? Sadly it is a black box, but maybe somone can enlighten me. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.sas.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;The data are attached, the x variables are standardized with mean 0 and sd 1. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Mar 2013 22:40:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130628#M6841</guid>
      <dc:creator>Ben_E</dc:creator>
      <dc:date>2013-03-07T22:40:17Z</dc:date>
    </item>
    <item>
      <title>Re: Ridge Regression</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130629#M6842</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are using the wrong formula. The PROC REG method is documented in the section "&lt;A href="http://support.sas.com/documentation/cdl/en/statug/63962/HTML/default/viewer.htm#statug_reg_sect044.htm"&gt;Computations for Ridge Regression and IPC Analysis&lt;/A&gt;."&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Mar 2013 13:42:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130629#M6842</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2013-03-08T13:42:24Z</dc:date>
    </item>
    <item>
      <title>Re: Ridge Regression</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130630#M6843</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you very much, for your quick replay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Ben&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Mar 2013 13:41:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130630#M6843</guid>
      <dc:creator>Ben_E</dc:creator>
      <dc:date>2013-03-11T13:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: Ridge Regression</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130631#M6844</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For a more complete write-up and a description of how to use SAS/IML to implement the formula, see &lt;A href="http://blogs.sas.com/content/iml/2013/03/20/compute-ridge-regression/" title="http://blogs.sas.com/content/iml/2013/03/20/compute-ridge-regression/"&gt; Got Matrix? Reach for the SAS/IML language - The DO Loop&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Mar 2013 13:20:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Ridge-Regression/m-p/130631#M6844</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2013-03-20T13:20:10Z</dc:date>
    </item>
  </channel>
</rss>

