<?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: Bootstrap Youden index in Statistical Procedures</title>
    <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/574804#M28348</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13684"&gt;@Rick_SAS&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;sorry for the delay I'm writing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Briefly, referring to the article You suggested to use, I've considered only the first dataset (roc) for simplicity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So.... this is what I've done up to now&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*estimating a cut-off value for alb*/
proc logistic data=roc plots=roc;
	model popind(event='0')=alb / outroc=roc_alb;
	roc 'alb' alb;
	output out=out_alb p=pred;
run;

/*Youden index*/
data roc_alb2(keep=cutoff prob Sensitivity Specificity Youden);
	set roc_alb;
	logit=log(_prob_/(1-_prob_));
	cutoff=(logit-2.4646)/-1.0520;
	prob=_prob_;
	Sensitivity=_SENSIT_;
	Specificity=1-_1MSPEC_;
	Youden=_SENSIT_+ (1-_1MSPEC_)-1;
run;

proc sort data=roc_alb2;
	by descending Youden;
run;

proc print data=roc_alb2;
	title 'cut off - alb';
run;

/*95%CI of cut-off*/
proc probit data=roc inversecl(prob=0.33370);
	model popind(event='0')=alb / d=logistic;
	title 'cut-off with 95% CI - alb';
run;

/*95%CI of Sensitivity and Specificity*/
data out_alb;
	set out_alb;
	if pred&amp;gt;0.33 then pop_alb=1;
	else pop_alb=0;
run;

title 'Sensitivity - pop_alb';
proc freq data=out_alb;
	where popind=0;
	tables pop_alb / binomial(level="1");
	exact binomial;
run;

title 'Specificity - pop_alb';
proc freq data=out_alb;
	where popind=1;
	tables pop_alb / binomial(level="0");
	exact binomial;
run;

/*likelihood ratio albumin*/
proc genmod data=out_alb descending;
	class popind pop_alb;
	model pop_alb=popind / dist=binomial link=identity noint;
	store genfit;
run;

data fd;
	length label f $32767;
	infile datalines delimiter=',';
	input label f;
	datalines;
      LR+, b_p1/b_p2
      LR-, (1-b_p1)/(1-b_p2)
      ;
    title 'Likelihood Ratio - pop_alb';
	%NLEST(instore=genfit, fdata=fd, df=10);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I've also attached the results I've found&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I finally come to my question: I'm wondering how to repeat these analyses after bootstrapping.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tks again&lt;/P&gt;</description>
    <pubDate>Thu, 18 Jul 2019 21:28:35 GMT</pubDate>
    <dc:creator>antor82</dc:creator>
    <dc:date>2019-07-18T21:28:35Z</dc:date>
    <item>
      <title>Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573445#M28343</link>
      <description>&lt;P&gt;Hi everybody&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;does anyone can help me in bootstrapping a cut off value with the youden index method?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can bootstrap AUC with 95%CI but I cannot repeat the same with cut off values (as well as sensitivity and specificity).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;tks in advance&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;a&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2019 06:15:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573445#M28343</guid>
      <dc:creator>antor82</dc:creator>
      <dc:date>2019-07-15T06:15:19Z</dc:date>
    </item>
    <item>
      <title>Re: Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573474#M28344</link>
      <description>&lt;P&gt;I don't know if&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13684"&gt;@Rick_SAS&lt;/a&gt; has an interest on it .&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2019 12:54:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573474#M28344</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2019-07-15T12:54:20Z</dc:date>
    </item>
    <item>
      <title>Re: Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573478#M28345</link>
      <description>&lt;P&gt;Show what you've done so far.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2019 12:56:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573478#M28345</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-07-15T12:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573498#M28346</link>
      <description>&lt;P&gt;Hi Rick_SAS&lt;/P&gt;&lt;P&gt;I've resampled my dataset with PROC SURVEYSELECT,&lt;/P&gt;&lt;P&gt;then&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%ODSOff
proc logistic data=BootOut;
	by Replicate;
	model Var1(event='1')=predictor;
	roc 'predictor' predictor;
	roccontrast;
	ods output Rocassociation=BootrocLVEF;
run;
%ODSOn
;

/*extracting only 'predictor' bootstrapped values and excluding 'model' from ads output*/
data BootrocLVEF;
set BootrocLVEF;
where  ROCModel='predictor';
run;

proc univariate data=rocdataLVEFB2_2 noprint;
   var Area;
   output out=WidePctls pctlpre=P_ pctlpts=2.5 97.5 mean=Mean Std=Std; 
run; 

proc print data=WidePctls noobs label;
   format Mean Std P_2_5 P_97_5 6.4;
   label Mean="BootMean" Std="BootStdErr" P_2_5="95% Lower CL" P_97_5="95% Upper CL";
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So far, I have boostrapped AUC with 95%CI.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also would like to find a cut-off value for this predictor.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In the original analysis, I run&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc logistic data=lucia.lucia plots=none;
	model Var1(event='1')=predictor /OUTROC=rocdataLVEF;
	roc 'LVEF' VS_LVEF;
	roccontrast;
run;

/*I see the intercept and predictor coefficient and report in the following code*/
data rocdata2LVEF(keep=cutoff prob Sensitivity Specificity Youden);
	set rocdataLVEF;
	logit=log(_prob_/(1-_prob_));
	cutoff=(logit+14.0995)/0.2727;
	prob=_prob_;
	Sensitivity=_SENSIT_;
	Specificity=1-_1MSPEC_;
	Youden=_SENSIT_+ (1-_1MSPEC_)-1;
run;

proc sort data=rocdata2LVEF;
	by descending Youden;
run;

proc print data=rocdata2LVEF;
title 'cut off - LVEF';
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;However, this is done on the original dataset but not after bootstrapping.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tks in advance&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2019 13:40:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573498#M28346</guid>
      <dc:creator>antor82</dc:creator>
      <dc:date>2019-07-15T13:40:50Z</dc:date>
    </item>
    <item>
      <title>Re: Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573600#M28347</link>
      <description>&lt;P&gt;I see. Based on your program, it looks like you have already seen the bootstrap analysis presented in the article &lt;SPAN&gt;"&lt;A href="https://blogs.sas.com/content/iml/2019/05/08/stability-binary-classifier.html" target="_self"&gt;Discrimination, accuracy, and stability in binary classifiers"&lt;/A&gt;?&amp;nbsp; Would it be possible to ask your question using the data in that article so that we all have access to the data?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jul 2019 16:52:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/573600#M28347</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2019-07-15T16:52:34Z</dc:date>
    </item>
    <item>
      <title>Re: Bootstrap Youden index</title>
      <link>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/574804#M28348</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13684"&gt;@Rick_SAS&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;sorry for the delay I'm writing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Briefly, referring to the article You suggested to use, I've considered only the first dataset (roc) for simplicity.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So.... this is what I've done up to now&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*estimating a cut-off value for alb*/
proc logistic data=roc plots=roc;
	model popind(event='0')=alb / outroc=roc_alb;
	roc 'alb' alb;
	output out=out_alb p=pred;
run;

/*Youden index*/
data roc_alb2(keep=cutoff prob Sensitivity Specificity Youden);
	set roc_alb;
	logit=log(_prob_/(1-_prob_));
	cutoff=(logit-2.4646)/-1.0520;
	prob=_prob_;
	Sensitivity=_SENSIT_;
	Specificity=1-_1MSPEC_;
	Youden=_SENSIT_+ (1-_1MSPEC_)-1;
run;

proc sort data=roc_alb2;
	by descending Youden;
run;

proc print data=roc_alb2;
	title 'cut off - alb';
run;

/*95%CI of cut-off*/
proc probit data=roc inversecl(prob=0.33370);
	model popind(event='0')=alb / d=logistic;
	title 'cut-off with 95% CI - alb';
run;

/*95%CI of Sensitivity and Specificity*/
data out_alb;
	set out_alb;
	if pred&amp;gt;0.33 then pop_alb=1;
	else pop_alb=0;
run;

title 'Sensitivity - pop_alb';
proc freq data=out_alb;
	where popind=0;
	tables pop_alb / binomial(level="1");
	exact binomial;
run;

title 'Specificity - pop_alb';
proc freq data=out_alb;
	where popind=1;
	tables pop_alb / binomial(level="0");
	exact binomial;
run;

/*likelihood ratio albumin*/
proc genmod data=out_alb descending;
	class popind pop_alb;
	model pop_alb=popind / dist=binomial link=identity noint;
	store genfit;
run;

data fd;
	length label f $32767;
	infile datalines delimiter=',';
	input label f;
	datalines;
      LR+, b_p1/b_p2
      LR-, (1-b_p1)/(1-b_p2)
      ;
    title 'Likelihood Ratio - pop_alb';
	%NLEST(instore=genfit, fdata=fd, df=10);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I've also attached the results I've found&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So I finally come to my question: I'm wondering how to repeat these analyses after bootstrapping.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Tks again&lt;/P&gt;</description>
      <pubDate>Thu, 18 Jul 2019 21:28:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Statistical-Procedures/Bootstrap-Youden-index/m-p/574804#M28348</guid>
      <dc:creator>antor82</dc:creator>
      <dc:date>2019-07-18T21:28:35Z</dc:date>
    </item>
  </channel>
</rss>

