BookmarkSubscribeRSS Feed
metrics
Calcite | Level 5

Bonjour,

Je ne comprends pas comment SAS calcule la D-Efficience. En effet, lorsque je calcule la D-Efficience étape par étape manuellement, je ne trouve pas le même résultat que SAS. Je me base pourtant sur la même formule que SAS et sur le même codage du plan, à savoir l’Orthogonal coding.

 

L’article auquel je fais référence dans mes calculs est le suivant :

https://documentation.sas.com/doc/da/pgmsascdc/v_040/qcug/qcug_optex_details31.htm

qui utilise l'algorithme d'échange de Mitchell and Miller (1970) (EXCHANGE) ou celui de Mitchell (1974a) pour le DETMAX.

 

Pour le codage je fais comme dans cet article de Warren F. Kuhfeld p.74 (https://support.sas.com/techsup/technote/mr2010c.pdf) (p.63 pour la D-Efficience)

 

Pour illustrer cela, voici mon plan de départ:

 

A

B

C

D

E

2

2

2

3

1

2

1

1

2

1

2

1

1

1

2

1

2

2

1

1

1

2

1

2

2

1

1

2

3

2

1

1

2

2

1

1

1

1

4

1

 

En orthogonal coding, cela me donne la matrice X suivante :

-1

-1

-1

0

0

1,732051

1

-1

1

1

0

1,632993

-0,57735

1

-1

1

1

1,414214

-0,8165

-0,57735

-1

1

-1

-1

1,414214

-0,8165

-0,57735

1

1

-1

1

0

1,632993

-0,57735

-1

1

1

-1

0

0

1,732051

-1

1

1

-1

0

1,632993

-0,57735

1

1

1

1

-1,41421

-0,8165

-0,57735

1

 

L’inverse de la transposé de cette matrice X multipliée par cette même matrice X me donne (inv(X’X)) :

       

0,250000011

1,80422E-09

0,25

0,176777

2,21E-09

0,216506

0,125

1,80422E-09

0,1375

-0,025

0,026516

-0,0051

0,007217

1,8E-09

0,250000018

-0,025

0,55

0,30052

0,010206

0,418579

0,25

0,176776655

0,026516498

0,30052

0,36875

0,025259

0,270464

0,176777

2,20971E-09

-0,0051031

0,010206

0,025259

0,10625

0,026517

2,21E-09

0,216506368

0,007216882

0,418579

0,270464

0,026517

0,4625

0,216506

0,125000011

1,80422E-09

0,25

0,176777

2,21E-09

0,216506

0,25

 

Le déterminant de la matrice ci-dessus est égal à 3,05176E-06, le nombre de paramètres à estimer qui est égal au nombre de colonnes de X est égal à 7 (=p) et le nombre de lignes est égale à 8 (=ND).

 

Si j’applique la formule de la D-Efficience : 

metrics_4-1747330889870.png

J’obtiens une D-Efficience égale à 76,70637702.

metrics_5-1747330971194.png

 

Or sur SAS je trouve une D-Efficience de 59.4604 lorsque je lance un EXCHANGE ou DETMAX sur mon plan de départ (codé 1,2,3,4) avec une seule itération.

Voici la D-Efficience donnée par SAS:

 

metrics_3-1747330830605.png

SAS me donne la valeur de 59,4604, alors que j'obtiens la valeur de 76,7063 lorsque je fais le calcul manuellement. Pourquoi n'ai-je pas les mêmes résultats?

 

Merci d'avance pour vos réponses.

 

Pour info, voici également mes lignes de codes sur SAS pour obtenir la D-Efficience:

 

/*Le plan de départ*/

DATA dataForEff;

INPUT A $ B $ C $ D $ E;

CARDS;

2 2 2 3 1
2 1 1 2 1
2 1 1 1 2
1 2 2 1 1
1 2 1 2 2
1 1 2 3 2
1 1 2 2 1
1 1 1 4 1
;

/* Plan D-Optimal*/

proc optex data= dataForEff;

class A B C D E;

model A B C D E;

generate n=8 iter=1 method=detmax;

output out= dataForEff_value;

run;

/*view dataset*/

proc print data= dataForEff _value;run;

1 REPLY 1
metrics
Calcite | Level 5

You will find below the question about D-Efficiency in English.

 

Hello,

 

I don't understand how SAS calculates D-efficiency. Indeed, when I manually calculate D-efficiency step by step, I don't get the same result as SAS. However, I'm using the same formula as SAS and the same design coding, namely orthogonal coding.

 

The article I'm referring to in my calculations is the following:

https://documentation.sas.com/doc/da/pgmsascdc/v_040/qcug/qcug_optex_details31.htm

which uses the exchange algorithm of Mitchell and Miller (1970) (EXCHANGE) or Mitchell (1974a) for DETMAX.

 

For the design coding, I follow the same approach as described in Warren F. Kuhfeld article (p. 74) (https://support.sas.com/techsup/technote/mr2010c.pdf) (p. 63 for D-Efficiency).

 

To illustrate this, in my message above you will find my design plan X and how I processed (the orthogonal coding of X, inverse of (X’X))).

The determinant of (inv(X’X)) is equal to 3.05176E-06, the number of parameters to be estimated, which is equal to the number of columns of X, is 7 (=p), and the number of rows is 8 (=ND).

When I apply the D-Efficiency formula, I have a D-Efficiency equal to 76.70637702.

However, in SAS, I have a D-Efficiency equal to 59.4604 when I run an optex proc on this design with the method=EXCHANGE or DETMAX.

 

Why is my D-Efficiency value not equal to SAS result?

 

I thank you in advance for your answers.

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 2034 views
  • 0 likes
  • 1 in conversation