The American Heritage Dictionary (3d ed., 1992) in a word history note
describes "Yankee" as "an excellent example of a widely known word about whose
origins cannot be determined."  They opt for it being a nickname from the Dutch
Janke (Jan/John), used derisively by the British in the the 18th century for
New Englander.  H. L. Mencken in "The American Language - Supplement One"(1945)
opts for Jan kees (John Cheese), but has an extended discussion of other
derivations (pp. 192-96).
Natalie Naylor, Hofstra University