报告格式
- Introduction 介绍你的项目大概流程,最终目标是什么?比如:母亲吸烟与新生儿的重量相关?
- Data 描述数据(来源,收集方式,每一个column是什么意思,一些特殊的label是什么意思)
- Background 背景知识,可以引用别人的论文
- Investigation 调查:
- numerical summary 数据描述(min max mean mode median, 正态分布,1st Quartile, 3rd Quartile, Kurtosis, Skewness)
- Graphical Comparison 画图对比:对比不同的group 之间的图。通常会用的包括:Histogram,boxplot,QQ-plot
- Hypothesis testing+p-value
- Chi-square test
- t-test (前提是大概normally distributed)
- Theory/Concepts used,介绍、解释前面用到的一些概念
- Conclusion/Discussion 结论
- Work Citation 引用文献
Preprocessing
数据清理
- 把数据类的列从str改成datetime objects
- 一些较为复杂的column name改成简单易懂/容易打字的
- 处理np.nan
- 数据标准化,e.g. 一些国家名称有两种说法,统一改成一个。
- 将df根据我们的需求划分成多个sub_df
- 数据格式修改,to_numeric
Defining Functions
(一些会用很多次的function提前define)
General Analysis/Exploratory Analysis
描述数据
- average/min/max/mode,ratio。
- groupby,排序(前十名)
- 有多少条数据 多少列
- pandas dataframe颜色功能,更直观看出来哪些数据更突出
correlation 关联性
- seaborn的heatmap函数
- Pandas的correlation table
Visualization 作图
作图pacakge
- map 可用package:folium
- 最基础作图工具:matplotlib
- 好看一点的作图工具:plotly
可以画的图类别
- Scatter plot/Line chart 用于和时间有关的数据。比如:新冠多个国家的确诊数量的line chart进行比较,描述趋势的不同。这些国家之间需要有一定的关联和可比性。比如邻近国家。
- pie chart,如果我们比较在意占比
- 增长趋势(line chart),growth factor ,也通常是跟时间有关的图。比如:新冠每日增长。grow
- bar chart 如果是category不同的话
Hypothesis Testing 假设测试
- Null Hypothesis:variables之间没有关联
- Alternative Hypothesis:两个variable之间有关联。A --> higher B or A --> lower B 。比如吸烟的母亲更有可能生出重量不足的新生儿。A和B可能是数字,也可能是categorical variable。
- p-value:通常设置为0.05,相对应的置信区间就是95%。p-value is the chance your results could be random
permutation: 两个sample是否来自同一个population distribution
-
方法:通过随机分配label来模拟如果两个sample属于同一个distribution的情况,再和真实情况进行比较。
-
具体操作:将通过shuffle得到的test statistic存在一个list中,并计算置信区间,如果the actual mean不在这个置信区间中(aka p-value < 约定的值),那么我们就认定两个sample不来自于同一个distribution。
-
2 sample T-test:需要两个sample都是大致正态分布且有接近的variance。上面是具体计算T score的方法。再根据T-score对照表找到对应的p-score. 不过如果用Python或R的话简单许多,计算机可以帮你算。
-
ANOVA:多个sample的T-test
Chi-Square Test for Independence
Welch’s T-test
类似T-test,但是不需要两个sample有接近的variance
模型
Regression
- cross validation:随机分成两部分数据,training和testing
- 先把图画出来看看比较符合哪一种regression,如果是linear那就没得说-linear(Least Squares或least absolute deviations);如果有弧度可以试试take log再用linear model;其他的还包括polynomial、Bayesian Bridge、SVM等等,用sklearn都可以实现
- Residual图:如果Residual图有一定的规律,说明这个model不合适;residual应该随机分布