Data Set
Choose a data set that has at least four categorical variables and
four numerical variables. The sample size should be at least 200. You
can find a data set either from my teaching data repository or other
data sources. The data set should be cross-sectional (i.e., each of the
data points must be observed/collected/generated at the same time).
The data set must have both continuous and (ideally binary) category
variables so you can perform linear and logistic regression
modeling.
Description of
Data
The following information of the data should be provided in the
report:
A brief description of the data source.
How the data set is generated or collected.
Number of variables and their type (categorical or numerical) and
size of the data set.
List the variable names and their
description/definitions.
Problem Statements and
Candidate Models
Formulate at least two practical questions based on the continuous
and categorical response variables. Please make clear statements of the
practical questions and convert them into unambiguous analytic questions
so you can identify candidate models with sufficient justification to
address the practical questions.
Write model formulas and assumptions of all candidate models
explicitly.
Exploratory Data
Analysis and Feature Engineering
Perform the standard EDA to serve the following major purposes:
Inspecting data issues such as missing values, mistakenly
recorded data values, inconsist data formats, etc. and fix
them;
Identifying new patterns/insights to improve subsequent
modeling;
Checking assumptions of candidate models and perform appropriate
feature engineering methods
To present your EDA in clear logical order, you are encouraged to use
subsections to organize your work.
For each EDA and associated representation, you should
open a paragraph with one or few sentence to describe the reasons
for the specific EDA before actual analysis;
After the analysis, interpret what you observed and the
implication of potential feature engineering;
Perform feature engineering (if necessary) based on EDA findings,
and thoroughly document all steps to ensure reproducibility.
Creating Analytical
Data
Create an analytical data set that includes
- all original feature variables if no feature engineering is not
needed
- all feature engineered featured variables and exclude the
corresponding orginal variables
All variables will be called directly in subsequent models. Note that
all numerical feature variables needs to be standardized for predictive
modeling.
Wrapping Feature
Engineering Code
Wrapping feature engineering code into reusable
functions for predictive modeling. This ensures that the same
transformations applied during training can be seamlessly applied to new
raw data during inference.
Modularity: Each feature engineering step should
be a separate function.
Consistency: Transformations must behave
identically on training and new data.
Stateful Transformations: A term refers to
storing learned parameters (e.g., imputation values, scalers) during
training for reuse on new data.
LS0tDQp0aXRsZTogJ1BvcmplY3QgT25lOiBSZWdyZXNzaW9uIEFsZ29yaXRobXMgYW5kIENyb3NzLXZhbGlkYXRpb24gJw0KYXV0aG9yOiAiIFBhcnQgSS0gRURBIGFuZCBGZWF0dXJlIEVuZ2luZWVyaW5nIg0KZGF0ZTogIiBTVEEgNTExIC0gRm91ZGF0aW9ucyBvZiBEYXRhIFNjaWVuY2UiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA0DQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvY19jb2xsYXBzZWQ6IHllcw0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHNtb290aF9zY3JvbGw6IHllcw0KICAgIHRoZW1lOiBsdW1lbg0KICB3b3JkX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBrZWVwX21kOiB5ZXMNCiAgcGRmX2RvY3VtZW50OiANCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogNA0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIGZpZ193aWR0aDogMw0KICAgIGZpZ19oZWlnaHQ6IDMNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQ0KLS0tDQoNCmBgYHtjc3MsIGVjaG8gPSBGQUxTRX0NCmRpdiNUT0MgbGkgeyAgICAgLyogdGFibGUgb2YgY29udGVudCAgKi8NCiAgICBsaXN0LXN0eWxlOnVwcGVyLXJvbWFuOw0KICAgIGJhY2tncm91bmQtaW1hZ2U6bm9uZTsNCiAgICBiYWNrZ3JvdW5kLXJlcGVhdDpub25lOw0KICAgIGJhY2tncm91bmQtcG9zaXRpb246MDsNCn0NCg0KaDEudGl0bGUgeyAgICAvKiBsZXZlbCAxIGhlYWRlciBvZiB0aXRsZSAgKi8NCiAgZm9udC1zaXplOiAyNHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgY29sb3I6IERhcmtSZWQ7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCg0KaDQuYXV0aG9yIHsgLyogSGVhZGVyIDQgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgZm9udC1zaXplOiAxOHB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGNvbG9yOiBEYXJrUmVkOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCmg0LmRhdGUgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICBmb250LXNpemU6IDE4cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgY29sb3I6IERhcmtCbHVlOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCmgxIHsgLyogSGVhZGVyIDEgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDIwcHg7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQpoMiB7IC8qIEhlYWRlciAyIC0gYW5kIHRoZSBhdXRob3IgYW5kIGRhdGEgaGVhZGVycyB1c2UgdGhpcyB0b28gICovDQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGNvbG9yOiBuYXZ5Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQp9DQoNCmgzIHsgLyogSGVhZGVyIDMgLSBhbmQgdGhlIGF1dGhvciBhbmQgZGF0YSBoZWFkZXJzIHVzZSB0aGlzIHRvbyAgKi8NCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IG5hdnk7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KaDQgeyAvKiBIZWFkZXIgNCAtIGFuZCB0aGUgYXV0aG9yIGFuZCBkYXRhIGhlYWRlcnMgdXNlIHRoaXMgdG9vICAqLw0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgY29sb3I6IGRhcmtyZWQ7DQogICAgdGV4dC1hbGlnbjogbGVmdDsNCn0NCg0KLyogQWRkIGRvdHMgYWZ0ZXIgbnVtYmVyZWQgaGVhZGVycyAqLw0KLmhlYWRlci1zZWN0aW9uLW51bWJlcjo6YWZ0ZXIgew0KICBjb250ZW50OiAiLiI7DQp9DQpgYGANCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQojIGNvZGUgY2h1bmsgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIFIgY29kZSwgd2FybmluZ3MsIGFuZCBvdXRwdXQgDQojIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBmaWxlcy4NCmlmICghcmVxdWlyZSgia25pdHIiKSkgew0KICAgaW5zdGFsbC5wYWNrYWdlcygia25pdHIiKQ0KICAgbGlicmFyeShrbml0cikNCn0NCmlmICghcmVxdWlyZSgidGlkeXZlcnNlIikpIHsNCiAgIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCn0NCmlmICghcmVxdWlyZSgiR0dhbGx5IikpIHsNCiAgIGluc3RhbGwucGFja2FnZXMoIkdHYWxseSIpDQpsaWJyYXJ5KEdHYWxseSkNCn0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgICAgICAgIyBpbmNsdWRlIGNvZGUgY2h1bmsgaW4gdGhlIG91dHB1dCBmaWxlDQogICAgICAgICAgICAgICAgICAgICAgd2FybmluZ3MgPSBGQUxTRSwgICMgc29tZXRpbWVzLCB5b3UgY29kZSBtYXkgcHJvZHVjZSB3YXJuaW5nIG1lc3NhZ2VzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHlvdSBjYW4gY2hvb3NlIHRvIGluY2x1ZGUgdGhlIHdhcm5pbmcgbWVzc2FnZXMgaW4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgb3V0cHV0IGZpbGUuIA0KICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBUUlVFLCAgICAjIHlvdSBjYW4gYWxzbyBkZWNpZGUgd2hldGhlciB0byBpbmNsdWRlIHRoZSBvdXRwdXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgb3V0cHV0IGZpbGUuDQogICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IEZBTFNFLA0KICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBOQQ0KICAgICAgICAgICAgICAgICAgICAgICkgIA0KYGBgDQoNCg0KDQpcDQoNCiMgRGF0YSBTZXQNCg0KDQpDaG9vc2UgYSBkYXRhIHNldCB0aGF0IGhhcyBhdCBsZWFzdCBmb3VyIGNhdGVnb3JpY2FsIHZhcmlhYmxlcyBhbmQgZm91ciBudW1lcmljYWwgdmFyaWFibGVzLiBUaGUgc2FtcGxlIHNpemUgc2hvdWxkIGJlIGF0IGxlYXN0IDIwMC4gWW91IGNhbiBmaW5kIGEgZGF0YSBzZXQgZWl0aGVyIGZyb20gbXkgdGVhY2hpbmcgZGF0YSByZXBvc2l0b3J5IG9yIG90aGVyIGRhdGEgc291cmNlcy4gVGhlIGRhdGEgc2V0IHNob3VsZCBiZSBjcm9zcy1zZWN0aW9uYWwgKGkuZS4sIGVhY2ggb2YgdGhlIGRhdGEgcG9pbnRzIG11c3QgYmUgb2JzZXJ2ZWQvY29sbGVjdGVkL2dlbmVyYXRlZCBhdCB0aGUgc2FtZSB0aW1lKS4NCg0KVGhlIGRhdGEgc2V0IG11c3QgaGF2ZSBib3RoIGNvbnRpbnVvdXMgYW5kIChpZGVhbGx5IGJpbmFyeSkgY2F0ZWdvcnkgdmFyaWFibGVzIHNvIHlvdSBjYW4gcGVyZm9ybSBsaW5lYXIgYW5kIGxvZ2lzdGljIHJlZ3Jlc3Npb24gbW9kZWxpbmcuDQoNCiMgRGVzY3JpcHRpb24gb2YgRGF0YQ0KDQpUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIG9mIHRoZSBkYXRhIHNob3VsZCBiZSBwcm92aWRlZCBpbiB0aGUgcmVwb3J0Og0KDQoqIEEgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGRhdGEgc291cmNlLg0KDQoqIEhvdyB0aGUgZGF0YSBzZXQgaXMgZ2VuZXJhdGVkIG9yIGNvbGxlY3RlZC4NCg0KKiBOdW1iZXIgb2YgdmFyaWFibGVzIGFuZCB0aGVpciB0eXBlIChjYXRlZ29yaWNhbCBvciBudW1lcmljYWwpIGFuZCBzaXplIG9mIHRoZSBkYXRhIHNldC4NCg0KKiBMaXN0IHRoZSB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlaXIgZGVzY3JpcHRpb24vZGVmaW5pdGlvbnMuDQoNCg0KIyBQcm9ibGVtIFN0YXRlbWVudHMgYW5kIENhbmRpZGF0ZSBNb2RlbHMNCg0KRm9ybXVsYXRlIGF0IGxlYXN0IHR3byBwcmFjdGljYWwgcXVlc3Rpb25zIGJhc2VkIG9uIHRoZSBjb250aW51b3VzIGFuZCBjYXRlZ29yaWNhbCByZXNwb25zZSB2YXJpYWJsZXMuIFBsZWFzZSBtYWtlIGNsZWFyIHN0YXRlbWVudHMgb2YgdGhlIHByYWN0aWNhbCBxdWVzdGlvbnMgYW5kIGNvbnZlcnQgdGhlbSBpbnRvIHVuYW1iaWd1b3VzIGFuYWx5dGljIHF1ZXN0aW9ucyBzbyB5b3UgY2FuIGlkZW50aWZ5IGNhbmRpZGF0ZSBtb2RlbHMgd2l0aCBzdWZmaWNpZW50IGp1c3RpZmljYXRpb24gdG8gYWRkcmVzcyB0aGUgcHJhY3RpY2FsIHF1ZXN0aW9ucy4NCg0KV3JpdGUgbW9kZWwgZm9ybXVsYXMgYW5kIGFzc3VtcHRpb25zIG9mIGFsbCBjYW5kaWRhdGUgbW9kZWxzIGV4cGxpY2l0bHkuDQoNCg0KDQojIEV4cGxvcmF0b3J5IERhdGEgQW5hbHlzaXMgYW5kIEZlYXR1cmUgRW5naW5lZXJpbmcNCg0KUGVyZm9ybSB0aGUgc3RhbmRhcmQgRURBIHRvIHNlcnZlIHRoZSBmb2xsb3dpbmcgbWFqb3IgcHVycG9zZXM6DQoNCiogSW5zcGVjdGluZyBkYXRhIGlzc3VlcyBzdWNoIGFzIG1pc3NpbmcgdmFsdWVzLCBtaXN0YWtlbmx5IHJlY29yZGVkIGRhdGEgdmFsdWVzLCBpbmNvbnNpc3QgZGF0YSBmb3JtYXRzLCBldGMuIGFuZCBmaXggdGhlbTsNCg0KKiBJZGVudGlmeWluZyBuZXcgcGF0dGVybnMvaW5zaWdodHMgdG8gaW1wcm92ZSBzdWJzZXF1ZW50IG1vZGVsaW5nOw0KDQoqIENoZWNraW5nIGFzc3VtcHRpb25zIG9mIGNhbmRpZGF0ZSBtb2RlbHMgYW5kIHBlcmZvcm0gYXBwcm9wcmlhdGUgZmVhdHVyZSBlbmdpbmVlcmluZyBtZXRob2RzIA0KDQpUbyBwcmVzZW50IHlvdXIgRURBIGluIGNsZWFyIGxvZ2ljYWwgb3JkZXIsIHlvdSBhcmUgZW5jb3VyYWdlZCB0byB1c2Ugc3Vic2VjdGlvbnMgdG8gb3JnYW5pemUgeW91ciB3b3JrLg0KDQpGb3IgZWFjaCBFREEgYW5kIGFzc29jaWF0ZWQgcmVwcmVzZW50YXRpb24sIHlvdSBzaG91bGQgDQoNCiogb3BlbiBhIHBhcmFncmFwaCB3aXRoIG9uZSBvciBmZXcgc2VudGVuY2UgdG8gZGVzY3JpYmUgdGhlIHJlYXNvbnMgZm9yIHRoZSBzcGVjaWZpYyBFREEgYmVmb3JlIGFjdHVhbCBhbmFseXNpczsNCg0KKiBBZnRlciB0aGUgYW5hbHlzaXMsIGludGVycHJldCB3aGF0IHlvdSBvYnNlcnZlZCBhbmQgdGhlIGltcGxpY2F0aW9uIG9mIHBvdGVudGlhbCBmZWF0dXJlIGVuZ2luZWVyaW5nOw0KDQoqIFBlcmZvcm0gZmVhdHVyZSBlbmdpbmVlcmluZyAoaWYgbmVjZXNzYXJ5KSBiYXNlZCBvbiBFREEgZmluZGluZ3MsIGFuZCB0aG9yb3VnaGx5IGRvY3VtZW50IGFsbCBzdGVwcyB0byBlbnN1cmUgcmVwcm9kdWNpYmlsaXR5Lg0KDQoNCiMgQ3JlYXRpbmcgQW5hbHl0aWNhbCBEYXRhDQoNCkNyZWF0ZSBhbiBhbmFseXRpY2FsIGRhdGEgc2V0IHRoYXQgaW5jbHVkZXMNCg0KKiBhbGwgb3JpZ2luYWwgZmVhdHVyZSB2YXJpYWJsZXMgaWYgbm8gZmVhdHVyZSBlbmdpbmVlcmluZyBpcyBub3QgbmVlZGVkDQoqIGFsbCBmZWF0dXJlIGVuZ2luZWVyZWQgZmVhdHVyZWQgdmFyaWFibGVzIGFuZCBleGNsdWRlIHRoZSBjb3JyZXNwb25kaW5nIG9yZ2luYWwgdmFyaWFibGVzDQoNCkFsbCB2YXJpYWJsZXMgd2lsbCBiZSBjYWxsZWQgZGlyZWN0bHkgaW4gc3Vic2VxdWVudCBtb2RlbHMuIE5vdGUgdGhhdCBhbGwgbnVtZXJpY2FsIGZlYXR1cmUgdmFyaWFibGVzIG5lZWRzIHRvIGJlIHN0YW5kYXJkaXplZCBmb3IgcHJlZGljdGl2ZSBtb2RlbGluZy4gDQoNCg0KIyBXcmFwcGluZyBGZWF0dXJlIEVuZ2luZWVyaW5nIENvZGUNCg0KV3JhcHBpbmcgZmVhdHVyZSBlbmdpbmVlcmluZyBjb2RlIGludG8gKipyZXVzYWJsZSBmdW5jdGlvbnMqKiBmb3IgcHJlZGljdGl2ZSBtb2RlbGluZy4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHNhbWUgdHJhbnNmb3JtYXRpb25zIGFwcGxpZWQgZHVyaW5nIHRyYWluaW5nIGNhbiBiZSBzZWFtbGVzc2x5IGFwcGxpZWQgdG8gbmV3IHJhdyBkYXRhIGR1cmluZyBpbmZlcmVuY2UuDQoNCiogKipNb2R1bGFyaXR5Kio6IEVhY2ggZmVhdHVyZSBlbmdpbmVlcmluZyBzdGVwIHNob3VsZCBiZSBhIHNlcGFyYXRlIGZ1bmN0aW9uLg0KDQoqICoqQ29uc2lzdGVuY3kqKjogVHJhbnNmb3JtYXRpb25zIG11c3QgYmVoYXZlIGlkZW50aWNhbGx5IG9uIHRyYWluaW5nIGFuZCBuZXcgZGF0YS4NCg0KKiAqKlN0YXRlZnVsIFRyYW5zZm9ybWF0aW9ucyoqOiBBIHRlcm0gcmVmZXJzIHRvIHN0b3JpbmcgbGVhcm5lZCBwYXJhbWV0ZXJzIChlLmcuLCBpbXB1dGF0aW9uIHZhbHVlcywgc2NhbGVycykgZHVyaW5nIHRyYWluaW5nIGZvciByZXVzZSBvbiBuZXcgZGF0YS4gDQoNCg0KIyBSZXBvcnRpbmcgYW5kIGZvcm1hdA0KDQpVc2UgdGhlIHN1Z2dlc3RlZCByZXBvcnRpbmcgdGVtcGxhdGUgKHRoZSBSTWFya2Rvd24gU291cmNlIGNhbiBiZSBmb3VuZCBhdCA8aHR0cHM6Ly9wZW5nZHNjaS5naXRodWIuaW8vU1RBNTUxL3cwMS93MDEtUmVwb3J0aW5nUk1hcmtkb2VuU291cmNlLnR4dD4pIGFuZCB0aGUgcmVwb3J0IGNvbXBvbmVudCBhdCAoPGh0dHBzOi8vcGVuZ2RzY2kuZ2l0aHViLmlvL1NUQTU1MS93MDIvdzAyLUFzc2lnblN1bm1pc3Npb24uaHRtbD4pDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==