<?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: Variance Estimation PROC SURVEYREG in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216625#M2246</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It turns that the problem is with the data and not the code. Thank you so much.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Raphael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 31 May 2015 14:50:42 GMT</pubDate>
    <dc:creator>R_Fraser</dc:creator>
    <dc:date>2015-05-31T14:50:42Z</dc:date>
    <item>
      <title>Variance Estimation PROC SURVEYREG</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216622#M2243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear ALL,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am testing some code to compute the variance via Taylor series linearization for a stratified cluster design. However my answer is only correct up to 2 significant digits. Can anyone offer suggestions as to why my answer is not exactly the same as when done with PROC SURVEYREG. &lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;See link for formulas &lt;/SPAN&gt;&lt;A href="http://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_surveyreg_a0000000273.htm" title="http://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_surveyreg_a0000000273.htm"&gt;SAS/STAT(R) 9.22 User's Guide&lt;/A&gt;. I initially thought that the inv( ) function was the culprit but that does not seem to be the case here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;/* TEST CODE */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;proc surveyreg data=exexx;&lt;/P&gt;&lt;P&gt;&amp;nbsp; model ptincom = cage white;&lt;/P&gt;&lt;P&gt;&amp;nbsp; weight suppwgt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cluster keyfitz;&lt;/P&gt;&lt;P&gt;&amp;nbsp; strata strata;&lt;/P&gt;&lt;P&gt;&amp;nbsp; output out = simex residual = res;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use simex;&lt;/P&gt;&lt;P&gt;read all var {cage white} into X;&lt;/P&gt;&lt;P&gt;read all var {ptincom} into y;&lt;/P&gt;&lt;P&gt;read all var {suppwgt} into w;&lt;/P&gt;&lt;P&gt;read all var {strata} into strata;&lt;/P&gt;&lt;P&gt;read all var {keyfitz} into psu;&lt;/P&gt;&lt;P&gt;read all var {res} into e;&lt;/P&gt;&lt;P&gt;close simex;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;X = J(nrow(y),1) || X;&lt;/P&gt;&lt;P&gt;M = J(3,3,0);&lt;/P&gt;&lt;P&gt;ustrata = unique(strata);&lt;/P&gt;&lt;P&gt;do h = 1 to ncol(ustrata);&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; /* strata index*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hx = loc(strata = ustrata&lt;H&gt;);&lt;/H&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ww = w[hx];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ee = e[hx];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XX = X[hx,];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clx = psu[hx];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uclx = unique(clx);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U = J(3,ncol(uclx),.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to ncol(uclx);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cluster (PSU) index*/&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; dx = loc(clx = uclx&lt;I&gt;);&lt;/I&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; d = ww[dx]#ee[dx]; &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; P = t(d#XX[dx,]);&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; eb = P[,+];&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; /* (p x 1) sum columns */&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; U[,i] = eb;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Z = U[,:];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* row means */&lt;/P&gt;&lt;P&gt;&amp;nbsp; nh = ncol(U);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* number of PSUs in each stratum */&lt;/P&gt;&lt;P&gt;&amp;nbsp; R = nh/(nh - 1)*(U - Z)*t(U - Z);&lt;/P&gt;&lt;P&gt;&amp;nbsp; M = M + R;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;n = nrow(X);&lt;/P&gt;&lt;P&gt;M = (n-1)/(n-3)*M;&lt;/P&gt;&lt;P&gt;B = t(X)*(w#X); /* X' D X where D = diag(w) */&lt;/P&gt;&lt;P&gt;V = inv(B)*M*inv(B); /* covariance estimation&amp;nbsp; */&lt;/P&gt;&lt;P&gt;se = sqrt(vecdiag(V)); /* estimated standard error */&lt;/P&gt;&lt;P&gt;print se;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Raphael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 May 2015 15:59:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216622#M2243</guid>
      <dc:creator>R_Fraser</dc:creator>
      <dc:date>2015-05-18T15:59:17Z</dc:date>
    </item>
    <item>
      <title>Re: Variance Estimation PROC SURVEYREG</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216623#M2244</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Interesting program.&amp;nbsp;&amp;nbsp; I am not an expert in survey statistics, but I don't see anything obviously wrong.&amp;nbsp; Do you have any missing values in your data? Any degenerate strata? That might affect DOF computations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is &lt;A href="http://support.sas.com/kb/24/addl/fusion24985_1_sregsub.sas.txt"&gt;a SAS macro that does computations similar to SURVEYREG&lt;/A&gt;. You might try the macro and see what results it gives.&amp;nbsp; If it matches the PROC, then look at the code it calls and see if you can find where it differs from your code. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You didn't include data, so no way for anyone to run your code.&amp;nbsp; The following simulation code creates a data set that may or may not be similar to your data. For this data set, the standard errors from SURVEYREG and IML match, so I assume that there is something special about your data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data exexx;&lt;/P&gt;&lt;P&gt;call streaminit(1234);&lt;/P&gt;&lt;P&gt;do strata = 1 to 5;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do keyfitz = 1 to 4;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to 3+rand("poisson",5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cage=rand("Normal");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; white=rand("Normal");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptincom=3+0.5*cage-1.9*white + rand("Normal");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; suppwgt=strata+10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 19:07:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216623#M2244</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2015-05-19T19:07:35Z</dc:date>
    </item>
    <item>
      <title>Re: Variance Estimation PROC SURVEYREG</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216624#M2245</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Do any of the variables used in the surveyreg except the weight variable have a format assigned? If so, might it cause some grouping?&lt;/P&gt;&lt;P&gt;If you have values in the data of 12345.678 and 12345.999 and the format is f5. then both could be treated as 12345 in any calculations.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 May 2015 19:37:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216624#M2245</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2015-05-19T19:37:20Z</dc:date>
    </item>
    <item>
      <title>Re: Variance Estimation PROC SURVEYREG</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216625#M2246</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It turns that the problem is with the data and not the code. Thank you so much.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Raphael&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 31 May 2015 14:50:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Variance-Estimation-PROC-SURVEYREG/m-p/216625#M2246</guid>
      <dc:creator>R_Fraser</dc:creator>
      <dc:date>2015-05-31T14:50:42Z</dc:date>
    </item>
  </channel>
</rss>

