data extro; input i1-i10; array items i1-i10; do over items; if items eq . then delete; end; if _N_ le 101; cards; 4 5 5 5 5 5 5 4 4 4 3 5 4 3 5 5 4 3 4 3 2 3 4 3 4 4 4 3 2 4 1 4 2 1 2 4 3 1 1 1 4 5 3 4 1 5 5 3 5 3 3 3 4 3 1 3 3 2 4 3 4 2 3 3 3 3 2 4 4 2 2 4 4 4 4 4 3 2 2 2 1 2 3 2 2 3 1 2 2 2 3 2 4 3 4 2 4 2 4 2 4 5 5 5 5 5 5 4 5 4 3 5 3 4 3 4 4 4 4 1 5 4 4 4 4 4 4 3 5 2 4 5 4 4 5 5 3 5 5 4 2 2 4 2 3 4 2 2 4 2 2 1 2 3 3 2 3 1 2 1 4 2 4 2 4 5 2 1 2 2 2 5 5 4 3 4 5 1 1 4 1 3 5 5 5 5 5 3 5 5 3 5 3 3 3 5 2 3 3 3 2 1 4 2 4 4 2 2 2 2 3 4 4 4 4 5 4 3 3 4 3 3 4 3 5 4 3 3 3 3 3 4 4 3 3 4 4 2 3 3 4 5 4 3 5 5 5 2 5 2 1 5 4 3 4 5 2 4 4 1 2 3 3 3 3 3 2 2 2 1 2 3 2 3 3 3 2 2 2 3 3 5 4 3 4 5 3 1 2 4 3 4 4 3 4 4 2 2 2 2 4 5 4 4 4 4 2 3 3 4 4 5 4 4 5 4 4 2 3 2 2 2 3 2 2 2 2 2 3 2 3 4 4 4 3 4 3 2 3 2 3 4 4 4 4 5 3 3 4 4 1 4 4 4 4 5 2 2 3 2 3 3 4 4 4 4 3 4 5 4 3 4 3 2 1 3 3 3 3 1 2 3 3 2 4 3 4 3 2 4 4 4 3 4 4 3 4 2 4 2 4 4 5 4 5 4 4 3 4 4 4 4 3 4 5 4 4 4 5 3 4 5 4 5 2 2 3 4 5 3 3 5 4 3 5 5 4 3 4 3 1 4 2 3 5 3 2 4 2 4 3 5 5 5 5 5 5 1 4 4 3 2 4 4 5 5 2 4 5 4 4 5 4 4 4 5 4 3 5 3 4 5 4 4 5 5 5 1 . 1 3 3 4 3 4 2 4 3 4 3 3 4 2 3 3 3 3 2 2 3 4 4 5 4 4 5 4 3 4 4 4 5 4 4 4 4 1 2 2 2 3 5 5 4 5 4 3 2 3 2 3 4 4 3 3 4 3 1 4 3 4 5 4 5 4 5 4 3 3 5 4 5 4 5 4 5 5 5 5 4 3 5 5 5 5 4 5 2 4 3 4 5 5 4 4 4 5 3 4 4 3 3 4 3 3 4 2 2 3 2 2 3 4 3 4 4 4 1 1 4 1 1 3 2 3 1 2 3 2 2 3 4 5 3 4 5 5 4 2 2 4 5 5 4 5 5 5 3 5 4 4 5 5 5 5 4 5 4 5 5 5 5 5 5 5 4 5 5 5 3 3 4 4 4 4 5 3 2 4 4 5 5 4 4 4 5 4 3 5 5 4 5 5 5 4 5 4 5 5 4 4 5 5 5 5 5 5 2 5 5 1 3 3 2 2 4 1 2 1 1 4 5 2 5 5 5 1 5 5 2 1 3 2 1 4 5 1 3 4 3 3 4 4 3 3 4 3 3 4 3 3 4 5 4 4 5 5 2 4 3 5 3 3 5 4 5 4 3 5 4 5 5 1 4 5 5 5 4 5 5 1 2 1 1 1 1 1 1 1 1 2 3 4 3 5 3 4 2 3 3 2 2 4 2 4 4 3 2 2 3 1 1 3 2 2 2 2 1 1 1 3 2 4 3 3 3 3 2 3 2 3 2 3 3 2 3 2 2 2 2 4 5 4 5 4 5 4 4 4 4 4 5 5 5 5 5 4 4 5 4 3 5 4 5 5 5 4 3 5 4 2 4 4 2 4 4 2 2 2 2 4 4 5 4 4 4 4 3 4 4 3 2 3 2 3 4 3 2 4 2 2 5 3 4 2 5 2 3 4 1 3 2 2 2 2 4 2 1 3 1 2 3 5 4 3 3 2 2 4 2 3 5 5 5 4 5 4 1 3 2 5 5 5 5 5 5 5 1 5 1 3 2 3 2 4 3 3 2 4 3 4 4 5 4 5 5 5 2 4 5 1 4 5 3 5 5 5 1 3 2 3 2 3 2 4 4 2 2 3 2 4 2 1 2 2 2 1 1 3 1 2 4 4 3 4 5 3 3 3 4 1 3 4 5 2 2 2 4 4 2 3 2 4 3 3 2 3 3 4 2 3 2 2 1 1 2 4 1 1 1 2 2 3 2 3 4 2 2 2 2 1 4 4 2 4 1 1 1 2 1 3 4 4 4 4 4 4 3 3 3 2 4 4 3 4 4 3 2 3 2 4 4 5 4 5 5 5 3 4 3 4 4 4 4 4 4 4 3 4 4 2 3 3 4 3 3 4 2 2 2 1 4 4 1 4 4 3 2 1 3 5 5 4 5 5 5 5 4 4 5 4 3 2 3 3 4 3 1 2 1 3 2 4 3 1 3 2 1 2 1 2 3 3 5 4 3 3 4 3 4 3 5 4 4 5 4 3 4 4 4 1 4 2 4 2 3 2 2 2 2 1 1 3 1 3 3 1 1 1 1 4 5 4 5 4 5 3 4 5 4 4 5 4 5 5 4 4 4 5 5 3 4 5 5 1 1 4 1 1 5 3 4 4 4 4 4 3 3 4 1 1 2 2 2 2 3 1 5 2 2 4 5 1 2 3 4 1 1 1 1 3 5 4 3 4 5 3 3 4 1 3 2 4 3 2 2 2 2 3 2 3 5 4 4 4 5 3 2 3 3 4 5 4 5 5 5 3 4 5 3 4 5 5 4 4 5 4 3 4 3 3 2 4 3 3 3 3 3 3 2 4 5 4 4 4 3 4 3 4 3 3 4 5 5 5 5 4 4 5 2 4 4 4 4 4 4 3 4 5 2 3 3 4 3 3 4 4 3 3 3 4 5 1 5 5 5 5 5 5 5 3 3 3 3 3 4 3 3 4 2 2 4 2 3 2 3 4 5 4 4 4 4 4 4 3 4 4 4 5 2 3 4 4 4 3 3 3 3 3 2 4 4 4 2 2 4 2 3 4 1 4 5 4 4 3 3 2 3 2 2 2 3 2 1 2 4 2 4 2 1 3 3 3 3 3 3 3 2 2 3 5 3 4 4 3 5 2 4 5 4 5 5 4 1 4 5 4 5 5 1 2 4 3 4 3 4 2 4 2 4 1 3 4 1 4 1 5 1 1 1 1 4 2 2 2 2 1 4 2 1 4 5 5 4 5 4 5 4 5 4 3 3 3 4 2 4 5 4 3 4 2 4 3 2 4 5 2 3 2 2 4 5 3 4 4 5 3 4 4 4 3 3 3 3 4 2 3 1 4 4 3 5 3 4 4 5 3 3 4 3 3 4 4 4 4 3 2 3 4 4 3 4 4 3 4 4 2 3 4 3 1 2 3 2 2 3 1 3 3 1 4 3 4 4 3 4 4 3 4 3 4 5 5 5 5 5 5 5 5 2 4 5 5 5 5 5 5 4 5 5 3 3 3 3 4 3 3 3 3 3 3 5 4 3 4 4 3 3 4 4 4 5 5 5 5 5 5 4 5 5 3 4 4 5 4 4 5 2 3 4 2 5 5 5 5 5 4 4 4 5 4 5 5 5 5 5 5 4 5 4 1 4 2 3 2 2 2 1 1 2 3 4 4 4 4 4 4 4 5 4 2 5 5 4 5 5 2 3 5 4 4 5 5 2 5 5 5 2 5 4 3 1 2 1 4 3 1 1 2 1 1 3 2 1 2 4 1 1 1 1 1 2 1 1 1 2 1 1 1 1 3 1 4 1 2 4 1 1 5 1 3 2 4 2 4 4 4 3 3 2 2 2 2 2 2 2 2 1 2 2 3 4 2 3 4 4 3 4 4 3 3 4 4 4 4 . . . . . 4 5 5 4 5 4 5 4 4 4 3 4 5 3 5 3 3 2 3 3 2 3 5 3 3 4 3 3 4 3 3 3 4 5 3 5 2 4 5 4 3 2 3 3 2 3 3 4 4 1 4 5 4 4 5 5 5 2 4 2 4 3 4 2 4 3 4 1 3 1 4 5 4 4 4 4 5 2 3 4 1 3 2 2 2 4 3 2 1 1 4 4 5 4 5 5 4 2 4 5 5 3 4 5 1 3 3 4 5 4 1 4 3 2 2 3 1 1 1 2 2 1 1 2 2 4 1 3 4 1 1 2 3 1 1 4 1 1 1 2 2 1 3 2 1 3 1 3 2 1 3 3 3 2 3 3 2 2 3 2 3 4 4 4 4 2 4 3 3 2 1 2 3 2 2 3 1 1 1 1 4 5 4 3 4 5 4 3 4 4 proc iml; ********************************************************************* * The algorithm in this program is due to * Michael Brannick. It is a bootstrap estimation procedure. *********************************************************************; use extro var{i1 i2 i3 i4 i5 i6 i7 i8 i9 i10}; **********************************************************************; * the dataset name that you want to analyze follows the word 'use'. * The name of the variables in the dataset are named after 'var'. **********************************************************************; read all var{i1 i2 i3 i4 i5 i6 i7 i8 i9 i10} into x; *x contains the raw data - it has items as columns and people as rows; *********************************************************************** *** Set up bootstrap estimates ***********************************************************************; numbitem = ncol(x); * find the number of items in the scale; numbsubj = nrow(x); * find the number of people, the sample size; iter = 100000; out1 = j(iter,1,-9); * placeholder for alpha estimates; do boot = 1 to iter; * main loop to compute number of estimates; sample = j(numbsubj,numbitem,-9); * placeholder for raw data; ******************************************************************; do sam = 1 to numbsubj; * pick a sample with replacement; row = uniform(0)*100; row = round(row); if row < 1 then row = 1; if row > 100 then row =100; sample[sam,] = x[row,]; end; * sample should fill with data; *print sample; * check on the data to see if it's legit; *******************************************************************; * Compute Alpha *******************************************************************; bigone = j(numbsubj, 1); means = ((bigone`)*sample)/numbsubj; xd = sample-(bigone*means); itemcov = (1/(numbsubj-1))*((xd`)*xd); **************************************; *itemcov is the item covariance matrix; **************************************; one = j(numbitem,1); jtphij = (one`)*itemcov*one; myalpha = 1 - ((trace(itemcov))/jtphij); myalpha = (numbitem/(numbitem-1))*myalpha; ******************************************************************; out1[boot,] = myalpha; * Save alpha for the Nth sample; end; *******************************************************************; *Output the results; Create out1 from out1; append from out1; data d2; set out1; proc univariate plot normal; quit; run;