<?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: Floating Point Errors and Overflows in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143420#M1205</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't follow everything that your program does, but here is my conjecture:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your population covariance matrix has an eigenvalue of 1.8e-6&amp;nbsp; (v=eigval(Cov);print v;), which means that it is very close to singular.&amp;nbsp; Each simulated set of MV Normal data will have a sample covariance that is close to (but not equal to) the population covariance. That means that you are constantly generating data for which the third variable is almost exactly a linear combination of the first two variables.&amp;nbsp; Eventually, you are hitting a singular condition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suspect that rounding the components greatly increases the chance of simulating degenerate data. To see if I'm right, try rounding to 0.01 and see if the singularity occurs more often. Try rounding to 1e-12 to see if the singularity occurs less often.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jan 2014 16:03:40 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2014-01-16T16:03:40Z</dc:date>
    <item>
      <title>Floating Point Errors and Overflows</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143419#M1204</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;I simulate time series model and in some point the simulation stops &lt;/P&gt;&lt;P&gt;and I get the message:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ERROR: Overflow error in &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ERROR: Matrix should be non-singular.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;so I don't get the full simulated data.&lt;/P&gt;&lt;P&gt;I saw in SAS documentation that this problem is a known one in MCMC procedure&amp;nbsp; (&lt;A href="http://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_mcmc_sect037.htm" title="http://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_mcmc_sect037.htm"&gt;SAS/STAT(R) 9.22 User's Guide&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I simulate in SAS/IML and not in these procedure but the idea is close.&lt;/P&gt;&lt;P&gt;In some point it can be seen in the results that there is a huge or really small simulated number.&lt;/P&gt;&lt;P&gt;I'll appreciate Ideas to solve the problem,&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Orit&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I enclose my program:&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;p = 1:240; /* 1 x 240 matrix, time trend */&lt;/P&gt;&lt;P&gt;tr = shape(p, 240, 1);/* 240 x 1 matrix, time trend */&lt;/P&gt;&lt;P&gt;tr2=tr##2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;n=10000;&lt;/P&gt;&lt;P&gt;b=j(8,n);&lt;/P&gt;&lt;P&gt;Ymean=j(n,1);&lt;/P&gt;&lt;P&gt;Ystd=j(n,1);&lt;/P&gt;&lt;P&gt;SLmean=j(n,1);&lt;/P&gt;&lt;P&gt;SLstd=j(n,1);&lt;/P&gt;&lt;P&gt;TLmean=j(n,1);&lt;/P&gt;&lt;P&gt;TLstd=j(n,1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to n;&lt;/P&gt;&lt;P&gt;&amp;nbsp; xtl=j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; xsl=j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; y=j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; xtl[1,1]=-0.020033;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl[1,1] = 6.25185;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y[1,1] =-0.064516129;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=0.25134 ;*first regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; k=0.40409;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ka=-0.01867;&lt;/P&gt;&lt;P&gt;&amp;nbsp; kb=1.83886;&lt;/P&gt;&lt;P&gt;&amp;nbsp; kc=-0.00105 ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; kd=-73.21356;&lt;/P&gt;&lt;P&gt;&amp;nbsp; f=-0.00327;&lt;/P&gt;&lt;P&gt;&amp;nbsp; g=0.00000900;&lt;/P&gt;&lt;P&gt;&amp;nbsp; c=0.05664; *second regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; e=0.09335;&lt;/P&gt;&lt;P&gt;&amp;nbsp; d=0.94819;&lt;/P&gt;&lt;P&gt;&amp;nbsp; h=-1.81474;&lt;/P&gt;&lt;P&gt;&amp;nbsp; n=-0.00073982;&lt;/P&gt;&lt;P&gt;&amp;nbsp; m=0.00183; *third regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; l=0.00132;&lt;/P&gt;&lt;P&gt;&amp;nbsp; q=-0.00046477;&lt;/P&gt;&lt;P&gt;&amp;nbsp; r=0.99164;&lt;/P&gt;&lt;P&gt;&amp;nbsp; t=-0.00001458;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /** specify the mean and covariance of the population **/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Mean = {0, 0, 0};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cov = {0.0046949688 0.0008310241 0.0000206459, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0008310241 0.0073176901 0.0000450616,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0.0000206459 0.0000450616 0.0000021738}; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NumSamples = 240;&lt;/P&gt;&lt;P&gt;&amp;nbsp; call randseed(0);&amp;nbsp; /** set seed for the RandNormal module **/&lt;/P&gt;&lt;P&gt;&amp;nbsp; U = RandNormal(NumSamples, Mean, Cov);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=2 to 240;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y[i,1]=a+k*y[(i-1),1]+ka*xsl[(i-1),1]+kb*xtl[(i-1),1]+kc*xsl[(i-1),1]##2+kd*xtl[(i-1),1]##2+f*i+g*i*i+u[i,1];&lt;/P&gt;&lt;P&gt;&amp;nbsp; Y[i,1]=round(Y[i,1],0.00001);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl[i,1]=c+e*y[(i-1),1]+d*xsl[(i-1),1]+h*xtl[(i-1),1]+u[i,2]+n*i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; xsl[i,1]=round(xsl[i,1],0.00001);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtl[i,1]=m+l*y[(i-1),1]+q*xsl[(i-1),1]+r*xtl[(i-1),1]+u[i,3]+t*i;&lt;/P&gt;&lt;P&gt;&amp;nbsp; xtl[i,1]=round( xtl[i,1],0.00001);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ylag=lag(y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl2=xsl##2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtl2=xtl##2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Step 1: Compute X`X and X`y */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = j(nrow(y), 1, 1) || ylag || xsl|| xtl || xsl2||xtl2||tr||tr2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* add intercept column */&lt;/P&gt;&lt;P&gt;&amp;nbsp; v = {1};&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; /* specify rows to exclude&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idx = setdif(1:nrow(x), v);&amp;nbsp; /* start with 1:240, exclude values in v */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xnew = x[idx, ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* extract submatrix&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xpx = xnew`* xnew;&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;&amp;nbsp; /* cross-products&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; v = {1};&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; /* specify rows to exclude&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idy = setdif(1:nrow(y), v);&amp;nbsp; /* start with 1:5, exclude values in v */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ynew = y[idx, ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* extract submatrix*/ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xpy = xnew` * ynew;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; b[,j]= solve(xpx, xpy);&lt;/P&gt;&lt;P&gt;&amp;nbsp; Ymean[j,]=mean(y);&lt;/P&gt;&lt;P&gt;&amp;nbsp; Ystd[j,]=std(y);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SLmean[j,]=mean(xsl);&lt;/P&gt;&lt;P&gt;&amp;nbsp; SLstd[j,]=std(xsl);&lt;/P&gt;&lt;P&gt;&amp;nbsp; TLmean[j,]=mean(xtl);&lt;/P&gt;&lt;P&gt;&amp;nbsp; TLstd[j,]=std(xtl);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; bt=b`;&lt;/P&gt;&lt;P&gt;&amp;nbsp; varNames = "b0":"b7";&lt;/P&gt;&lt;P&gt;&amp;nbsp; experiment="Sim1":"Sim10000";&lt;/P&gt;&lt;P&gt;&amp;nbsp; print bt[colname=varNames &lt;/P&gt;&lt;P&gt;&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; rowname=experiment&lt;/P&gt;&lt;P&gt;&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; label="Expanded Model"];&lt;/P&gt;&lt;P&gt;&amp;nbsp; print Ymean Ystd SLmean SLstd TLmean TLstd xsl2mean xsl2std xtl2mean xtl2std;&lt;/P&gt;&lt;P&gt;&amp;nbsp; create Mydata var {Ymean Ystd SLmean SLstd TLmean TLstd};&lt;/P&gt;&lt;P&gt;&amp;nbsp; append;&lt;/P&gt;&lt;P&gt;&amp;nbsp; close Mydata;&lt;/P&gt;&lt;P&gt;&amp;nbsp; quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jan 2014 15:12:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143419#M1204</guid>
      <dc:creator>oriti</dc:creator>
      <dc:date>2014-01-16T15:12:42Z</dc:date>
    </item>
    <item>
      <title>Re: Floating Point Errors and Overflows</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143420#M1205</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't follow everything that your program does, but here is my conjecture:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your population covariance matrix has an eigenvalue of 1.8e-6&amp;nbsp; (v=eigval(Cov);print v;), which means that it is very close to singular.&amp;nbsp; Each simulated set of MV Normal data will have a sample covariance that is close to (but not equal to) the population covariance. That means that you are constantly generating data for which the third variable is almost exactly a linear combination of the first two variables.&amp;nbsp; Eventually, you are hitting a singular condition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suspect that rounding the components greatly increases the chance of simulating degenerate data. To see if I'm right, try rounding to 0.01 and see if the singularity occurs more often. Try rounding to 1e-12 to see if the singularity occurs less often.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jan 2014 16:03:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143420#M1205</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2014-01-16T16:03:40Z</dc:date>
    </item>
    <item>
      <title>Re: Floating Point Errors and Overflows</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143421#M1206</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Rick, thank you for your heplful answer!!&lt;/P&gt;&lt;P&gt;and yes you're right.&lt;/P&gt;&lt;P&gt;Orit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 19 Jan 2014 10:44:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143421#M1206</guid>
      <dc:creator>oriti</dc:creator>
      <dc:date>2014-01-19T10:44:43Z</dc:date>
    </item>
    <item>
      <title>Re: Floating Point Errors and Overflows</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143422#M1207</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Rick,&lt;/P&gt;&lt;P&gt;I checked your hypothesis and I took a slight different model (just y is slight different)&lt;/P&gt;&lt;P&gt;with really close covariance matrix -&lt;STRONG&gt;with&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt; an eigenvalue of 1.8e-6&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12.727272033691406px; background-color: #ffffff;"&gt;and the simulation&lt;STRONG&gt; worked well.&lt;/STRONG&gt; I enclosed the program.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;What do you think? do you have an idea how can it be? and why the first simulation does not work?&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Orit&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;p = 1:240; /* 1 x 240 matrix, time trend */&lt;/P&gt;&lt;P&gt;tr = shape(p, 240, 1);/* 240 x 1 matrix, time trend */&lt;/P&gt;&lt;P&gt;tr2=tr##2;&lt;/P&gt;&lt;P&gt;*print tr,tr2;&lt;/P&gt;&lt;P&gt;n=10000;&lt;/P&gt;&lt;P&gt;b=j(8,n);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=1 to n;&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;&amp;nbsp;&amp;nbsp; *Number of simulations;&lt;/P&gt;&lt;P&gt;&amp;nbsp; xtl = j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; xsl=j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; y=j(240, 1);&lt;/P&gt;&lt;P&gt;&amp;nbsp; xtl[1,1]=0.929247076;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl[1,1] = 9.066849783;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; y[1,1] = 0.55;&lt;/P&gt;&lt;P&gt;&amp;nbsp; a=-149.25336 ;*first regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; k=0.75322;&lt;/P&gt;&lt;P&gt;&amp;nbsp; f=-0.00420;&lt;/P&gt;&lt;P&gt;&amp;nbsp; g=0.00002401;&lt;/P&gt;&lt;P&gt;&amp;nbsp; c=1.97709; *second regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; e=0.00982;&lt;/P&gt;&lt;P&gt;&amp;nbsp; d=0.94927;&lt;/P&gt;&lt;P&gt;&amp;nbsp; h=-1.88453;&lt;/P&gt;&lt;P&gt;&amp;nbsp; n=-0.00072129;&lt;/P&gt;&lt;P&gt;&amp;nbsp; m=0.01462; *third regression*;&lt;/P&gt;&lt;P&gt;&amp;nbsp; l=0.00042239;&lt;/P&gt;&lt;P&gt;&amp;nbsp; q=-0.00046726;&lt;/P&gt;&lt;P&gt;&amp;nbsp; r=0.98752;&lt;/P&gt;&lt;P&gt;&amp;nbsp; t=-0.00001485;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /** specify the mean and covariance of the population **/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Mean = {0, 0, 0};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cov = {0.0450507141 0.0020509943 0.0000558774, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0020509943 0.0073514024 0.0000450563,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 0.0000558774 0.0000450563 0.0000021530}; &lt;/P&gt;&lt;P&gt;&amp;nbsp; *v=eigval(Cov);*print v;&lt;/P&gt;&lt;P&gt;&amp;nbsp; NumSamples = 240;&lt;/P&gt;&lt;P&gt;&amp;nbsp; call randseed(0);&amp;nbsp; /** set seed for the RandNormal module **/&lt;/P&gt;&lt;P&gt;&amp;nbsp; U = RandNormal(NumSamples, Mean, Cov);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=2 to 240;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y[i,1]=a+k*y[(i-1),1]+f*i+g*i*i+u[i,1];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl[i,1]=c+e*y[(i-1),1]+d*xsl[(i-1),1]+h*xtl[(i-1),1]+u[i,2]+n*i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtl[i,1]=m+l*y[(i-1),1]+q*xsl[(i-1),1]+r*xtl[(i-1),1]+u[i,3]+t*i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ylag=lag(y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xsl2=xsl##2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xtl2=xtl##2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *print xsl xsl2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Step 1: Compute X`X and X`y */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = j(nrow(y), 1, 1) || ylag || xsl|| xtl || xsl2||xtl2||tr||tr2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* add intercept column */&lt;/P&gt;&lt;P&gt;&amp;nbsp; v = {1};&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; /* specify rows to exclude&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idx = setdif(1:nrow(x), v);&amp;nbsp; /* start with 1:5, exclude values in v */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xnew = x[idx, ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* extract submatrix&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xpx = xnew`* xnew;&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;&amp;nbsp; /* cross-products&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; v = {1};&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; /* specify rows to exclude&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&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; idy = setdif(1:nrow(y), v);&amp;nbsp; /* start with 1:5, exclude values in v */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ynew = y[idx, ];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* extract submatrix*/ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xpy = xnew` * ynew;&lt;/P&gt;&lt;P&gt;&amp;nbsp; b[,j]= solve(xpx, xpy);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; bt=b`;&lt;/P&gt;&lt;P&gt;&amp;nbsp; varNames = "b0":"b7";&lt;/P&gt;&lt;P&gt;&amp;nbsp; experiment="Sim1":"Sim10000";&lt;/P&gt;&lt;P&gt;&amp;nbsp; print bt[colname=varNames &lt;/P&gt;&lt;P&gt;&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; rowname=experiment&lt;/P&gt;&lt;P&gt;&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; label="Expanded Model"];&lt;/P&gt;&lt;P&gt;&amp;nbsp; quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Jan 2014 13:27:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143422#M1207</guid>
      <dc:creator>oriti</dc:creator>
      <dc:date>2014-01-20T13:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: Floating Point Errors and Overflows</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143423#M1208</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You didn't round, so the probability of a singular matrix is much lower.&amp;nbsp; If you are good at math and numerical linear algebra, here is an article about generating random matrices and the probability of generating a singular matrix: &lt;A href="http://blogs.sas.com/content/iml/2011/09/28/what-is-the-chance-that-a-random-matrix-is-singular/" title="http://blogs.sas.com/content/iml/2011/09/28/what-is-the-chance-that-a-random-matrix-is-singular/"&gt; What is the chance that a random matrix is singular? - The DO Loop&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Jan 2014 14:17:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Floating-Point-Errors-and-Overflows/m-p/143423#M1208</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2014-01-21T14:17:31Z</dc:date>
    </item>
  </channel>
</rss>

