SAS Programming with Medicare Administrative Data. Matthew Gillingham
minds in policy research, and benefit from supportive, caring, and compassionate leadership. I simply cannot imagine working anywhere else.
I would like to thank my reviewers at Mathematica: Sandi Nelson, Jeffrey Holt, Scott McCracken, and Ken Peckham. Their thoughtful reviews and commentaries, as well as their support and friendship, made this book much better than its original conception. In addition, I owe a debt of gratitude to Scott Greiner, Patrick Wang, Ken Peckham, and Scott McCracken, who assisted me with the creation of dummy data, and Susie Clausen, who did a wonderful job formatting my written materials. Carmen Ferro and Mathematica’s communications department acted as a creative force in the promotion of the book and the book’s cover design. I would like to thank John West, my editor at SAS Publishing, for his patience and guidance. Importantly, I would also like to thank the book’s technical reviewers, Gerri Barosso, Russ Tyndall, John Shipway, Bernadette Johnson, Craig Dickstein, and Deidra Peacock, for their thorough and thoughtful review of my manuscript.
My supervisor, Edward Hoke, provided supportive guidance and encouragement. Ed certainly cannot fathom what a wonderful influence he has been in my life. Senior leaders at Mathematica, Dr. Myles Maxfield, Dr. Craig Thornton, Adam Coyne, Pam Tapscott, Tamara Barnes, Andrea Darling, Patricia Guroff, and Mary Harrington, not only provided encouragement, but helpful guidance as well. Finally, my staff at Mathematica’s Ann Arbor office (Dean Miller, Ken Peckham, Kelly Zidar, Kevin Bradway, Gregory Bee, Rachel Thompson, Gerry Skurski, Anne Harlow, and Nate Darter), as well as close colleagues like Justin Oh, offered encouragement, support, and guidance.
Friends and family supported me and helped me see the project through to completion. My mom, dad, and sister taught me to believe in myself and dream big dreams. Anne, Owen, and Lucy provided a safe, loving, and nurturing place to rest and relax after long workdays. Anne, in particular, never let me forget that I could see this project through to the end. Lastly, my good friend Chris Thieme not only provided encouragement, but he also taught me much of what I know about SAS (although any mistakes are my own!). He will always be the most skilled, and coolest, SAS programmer I know.
These people allowed me to achieve a lifelong dream. I owe them a debt that I will never be able to repay. I hope they take some pride of ownership of this project, because it is just as much their project as it is mine.
Chapter 1: Introduction
Introduction and Purpose of This Book
Introduction and Purpose of This Book
Welcome to the world of SAS® programming with Medicare data! This book provides beginner, intermediate, and advanced SAS users with the information needed to execute a research programming project using Medicare administrative data. It introduces the reader to common, important, and frequently used concepts encountered when programming with Medicare data. The focus of this book is decidedly on the data and the policies that drive the content of the data, using the SAS syntax as a tool to answer common research questions. This approach is very intentional; in my experience, the SAS syntax is the easiest part of programming with Medicare data! The most challenging aspect of my job is to understand the data and how to properly use them to correctly answer research questions.1
Medicare data are unlike any other health care data, and the uniqueness of Medicare data is driven by the uniqueness of the Medicare program. For example, public policy decisions largely influence decisions surrounding what services Medicare covers and how those services are paid for. This differs from the decision making process of a commercial health plan, which seeks to maximize profits. Here are a few examples, some of which we will discuss in coming chapters:
• Medicare generally covers elderly beneficiaries without regard to medical history. Therefore, the Medicare population is generally sicker than the population of most commercial health plans.
• Part D prescription drug data contains information for out-of-hospital prescription drug fills. Prescription drugs administered during a hospital stay may not appear in the claims data at all.
• Services paid for by Medicare Part C (Medicare Advantage) may not appear in the administrative claims files because they are paid for by managed care providers.
• Medicare pays for some services (e.g., home health agencies, hospice, or acute inpatient hospitals) using what are called prospective payment systems (PPS).
These examples are supposed to whet your appetite for learning about Medicare data. I am hoping that you have not run screaming from your desk! If you have, please come back! We will learn about all of these concepts and more! The point I am trying to make is that the more you understand the Medicare program, the more you will understand how to properly use Medicare administrative data for research purposes. To this end, this book will describe the Medicare program, Medicare data, how the two interact, and how that affects the SAS programmer who uses the data. These concepts and techniques will be illustrated through the completion of an example research project.
Learning how to use Medicare data is a lifetime pursuit. It takes many, many years to build subject matter expertise due to the sheer volume of information on topics like Medicare policy, payment systems, and data. What’s more, the world of Medicare data is changing rapidly due to increased attention on Medicare costs, quality, and the use of information technology in health care delivery. For example, the use of electronic health records (EHRs) in the measurement of utilization, cost, and quality is on the horizon. EHRs will supplement, or perhaps someday replace, the administrative claims data we use in this book. In addition, Medicare is exploring different methods of payment, such as the bundling of services previously paid on an individual basis. As such, we will never be able to cover every topic you will run into. However, we will build a very strong foundation in standard concepts, such as specifying and coding continuous enrollment algorithms and identifying and summarizing common services and events. My hope is that the reader can apply this foundation to programming projects that use Medicare data and use it to gain a broader perspective on the use of health care administrative data in general.
Framework of This Book
This book is organized as an approach to completing a research programming project. The basic framework below can be used as a blueprint for programming most any research project, including the example we will use in this book.
1. Plan the project by identifying the research questions to be answered and thinking through how we will construct our code to provide those answers. Prior to writing any code, we will create a data flow diagram of our programming plan and use that plan to request data. Typically, prior to writing any SAS code you would write programming specifications (or business requirements or functional requirements) that state exactly how you plan to answer the research questions using SAS code. For illustrative purposes, we will write the specifications as we code (i.e., the specifications will be our explanation of the code).
2. Obtain the needed data. There are many different types of data you can use, depending on the nature of the project and its requirements. Our project will focus on using administrative claims and enrollment data.
3. Develop code to create the analytic files needed to answer research questions. Analytic files are essentially summaries