{smcl}
{* 26 April07}{...}
{hi:help fuzzy}{right: ({browse "http://www.stata-journal.com/article.html?article=st0140":SJ8-1: st0140})}
{hline}

{title:Title}

{p2colset 5 14 16 2}{...}
{p2col :{hi:fuzzy} {hline 2}}Fuzzy-set creation, testing, and reduction{p_end}
{p2colreset}{...}


{title:Syntax}

{p 8 14 2} {cmd:fuzzy} {varlist} [{it:{help if}}] {weight}
[{cmd:,}
 {opt lab:el(capital_letter_list)}
 {opt keeps:ets}
 {opt drop}
 {cmdab:sett:est(yvn yvo yavyb yvv cmvom mavmb)}
 {opt group(varname)}
 {opt conv:al(#)}
 {opt sig:only}
 {opt slev:el(#)} 
 {cmdab:great:er(col1} | {cmd:col2)}
 {opt comm:on}
 {opt cluster(varname)}
 {opt nec:essity}
 {cmdab:matx(suffnec} | {cmd:coincid)}
 {opt stand:ardized}
 {opt altd:isplay} 
 {opt reduc:e}
 {opt remain:ders(#)}
 {opt dnc(configlist)}
 {opt truth:tab(filename)} 
 {opt keepc:onfigs}]

{pstd}
{cmd:fweight}s, {cmd:iweight}s, and {cmd:pweight}s are allowed; see
{help weight}. 

{pstd}
The weights are applied with the {cmd:ratio} command, which is used to
calculate the consistency score for each configuration, but are not used in any
other parts of the routine (such as the creation of the {cmd:bestfit}
variable).


{title:Description}

{pstd}
{cmd:fuzzy} is a suite of tools that performs extensive qualitative comparative
analyses. Without any options specified, it generates a {cmd:bestfit} variable
containing the frequency of best-fitting cases (i.e., >.5) in each
configuration. With options, it performs a series of statistical tests on the
configurations and reduces identified configurations by using the
Quine-McCluskey algorithm.


{title:Options}

{p 4 8 2}
{opt label(capital_letter_list)} allows the user to specify what sets should be named when used in creating and displaying the resulting configurations.
This option is required if any of the variables in {it:varlist} are not
named with a single, capital letter.

{p 4 8 2}{cmd:keepsets} prevents the generic single, capital
letter version of variable from being deleted.  This is only applicable
when the {cmd:label()} option has not been specified and the original
variables are not already named as single, capital letters.

{p 4 8 2}{cmd:drop} automatically deletes any single, capital letter copies of 
variables entered in {it:varlist} when the program is terminated (only applicable if {cmd:label()} is also specified). (Note: This will not drop any
variables existing in the dataset prior to the execution of {cmd:fuzzy}.)

{p 4 8 2}
{opt settest(testlist)} defines which tests will be run and displayed:

{p 8 12 2}{cmd:yvn} performs and displays the results of the test between each configuration's y consistency versus its n consistency.

{p 8 12 2}{cmd:yvo} performs and displays the results of a test between each
set's y consistency and the y consistency of all other configurations
(excluding only the configuration in question).  

{p 8 12 2}{cmd:yvv} performs a test of each configuration's y consistency
versus a given numerical  value (default is 0.800) and displays the
configuration, y consistency, test value, F distribution, p-value, and number
of best-fitting observations.

{p 8 12 2}{cmd:yavyb} tests each configuration's y consistency for each of the
subgroups defined in {cmd:group()}.  {opt group(varname)} must be
specified with {cmd:settest(yavyb)}.

{p 8 12 2}{cmd:cmvom} operates similarly to {cmd:yvo}, but rather than using
the configuration's consistency, it calculates and displays each
configuration's weighted mean.

{p 8 12 2}{cmd:mavmb} operates similarly to {cmd:yavyb}, but it conducts the
test using the configuration's weighted mean by each group specified by
{cmd:group()}.  {opt group(varname)} must be specified with 
{cmd:settest(mavmb)}.

{p 4 8 2}
{opt group(varname)} defines the group variable used when invoking the
{cmd:yavyb} or {cmd:mavmb} test. {it:varname} must be a 2-category variable.

{p 4 8 2}
{opt conval(#)} changes the value against which to test each configuration's
y consistency if {cmd:settest(yvv)} is specified.  The value can be any number
between 0 and 1.  The default is {cmd:conval(.800)}.

{p 4 8 2}
{cmd:sigonly} restricts the display of any tests specified in
{cmd:settest()} to only those with significant p-values.

{p 4 8 2}
{opt slevel(#)} changes the significance level to be used in determining {cmd:sigonly}.  The default is {cmd:slevel(.05)}.

{p 4 8 2}
{cmd:greater(col1} | {cmd:col2)} restricts the display of any test specified in
{cmd:settest()} to only those in which the value in the designated column (of
the output) is greater than the other column.  The first column is always the
consistency (or mean) for each configuration, while the second column is what
that consistency is being tested against.

{p 4 8 2}
{cmd:common} displays only the configurations that pass all the
tests and conditions specified by {cmd:settest()}.

{p 4 8 2}
{opt cluster(varname)} allows the standard errors produced by the {cmd:ratio}
command when calculating consistencies to adjust for intragroup correlation.

{phang}
{cmd:necessity} produces a table of each configuration's necessity value
(similar to consistency except the denominator is the sum of the outcome
instead of the sum of the configuration).

{phang}
{opt matx(matlist)} defines which matrix to produce:

{phang2}
{cmd:suffnec} produces a sufficiency and necessity matrix for all the
variables entered in {it:varlist}.

{phang2}
{cmd:coincid} produces a coincidence matrix for all the variables 
entered in {it:varlist}.

{p 4 8 2}
{cmd:standardized} alters the coincidence scores by taking into account the
size of the sets.

{p 4 8 2}
{cmd:altdisplay} displays the sufficiency-necessity matrix to match a
visual scatterplot (i.e., sufficiency in the upper left, necessity in the lower
right).

{p 4 8 2}{cmd:reduce} uses the elements passed by {cmd:settest()} to implement
the Quine-McCluskey algorithm to produce a reduced final solution set and its
accompanying coverage statistics.

{p 4 8 2}
{opt remainders(#)} runs the reduction twice:  once with those configurations 
specified as remainders included in the reduction as "do-not-care"
configurations, and once with them excluded.

{p 4 8 2}
{opt dnc(configlist)} specifies configurations as "do-not-care" configurations.
The entered configurations are treated as do-not-care configurations regardless
of whether they pass any specified tests.

{p 4 8 2}
{opt truthtab(filename)} outsheets (and replaces) a file containing the
resulting truth table.  If no options are specified, it will outsheet the
entire truth table; otherwise, it operates similarly to {cmd:reduce} in how it
defines which configurations are included.  The {it:filename} should end in the
desired output type ({cmd:.dta}, {cmd:csv}, etc.).

{p 4 8 2}{cmd:keepconfigs} prevents generated configuration variables from
being deleted when {cmd:fuzzy} is terminated.


{title:Examples}

{p 4 8 2}{cmd:. fuzzy Y A B C}

{p 4 8 2}{cmd:. fuzzy drink age grades friends, label(D A G F) settest(yvn)}

{p 4 8 2}{cmd:. fuzzy D A G F, settest(yvn) sigonly greater(col1) reduce}

{p 4 8 2}{cmd:. fuzzy drink age grades friends, label(D A G F) matx(coincid) settest(yvv) conval(.9) greater(col1) reduce drop}


{title:Postestimation commands and stand-alones}

{pstd}
In addition to the base command and its options, the {cmd:fuzzy} program also
includes many of the same options as stand-alone programs, to be used in testing
specific configurations or as "postestimation" commands. Specifically, all 
the possible tests specified in {cmd:settest()}, the matrices in {cmd:matx()},
{cmd:truthtab()}, {cmd:coverage}, and {cmd:reduce} can all be used as
stand-alone or post{cmd:fuzzy} commands. In both cases, they accept all the
options that would pertain to them if specified in {cmd:fuzzy}. 

{pstd}
This will work if you wish to test specific sets, which are not required to
exist in the dataset, although the individual capitalized, single letter
version of each component must; or variables, which must exist in the dataset
and range from 0 to 1. If no {it:varlist} is specified, it will use
{it:varlist} from the last run fuzzy model.  

    {title:Postestimation commands}

	{helpb cmvom}		{helpb truthtab} 
	{helpb coincid}		{helpb yavyb}
	{helpb mavmb}		{helpb yvn}
	{helpb reduce}		{helpb yvo}
	{helpb suffnec}		{helpb yvv}

    {title:Stand-alone commands}

	{helpb cnfgen}
	{helpb coverage}
	{helpb fzplot}
	{helpb setgen}
	{helpb yvy}


{title:Postestimation and stand-alone examples}
	
{phang}{cmd:. fuzzy drink age grades friends, label(D A G F)}{p_end}
{phang}{cmd:. yvn}{p_end}
{phang}{cmd:. yvv, sig}{p_end}
{phang}{cmd:. yvo, last greater(col1) sig}

{phang}{cmd:. reduce D AGf Af agF}
	
{phang}{cmd:. fuzzy D A G F, keepconfigs}{p_end}
{phang}{cmd:. coincid agf- AGF}{p_end}  


{title:Also see}

{psee}
Article: {it:Stata Journal}, volume 8, number 1: {browse "http://www.stata-journal.com/article.html?article=st0140":st0140}
{p_end}
