Regression Analysis
回归分析是非常有用的分析方法,而线性回归又是回归分析中常用的方法。有一个著名的说法,90% 的问题可以用regression analysis解决。
这一节介绍regression analysis,并通过一个例子来说明现行回归分析在实际业务中的应用。
我们使用 http://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/
的dataset作为演示的例子。
pima <- read.table(file="pima-indians-diabetes.data", header=F, sep=",")
glucose,bmi, insulin的最小值都是0。这有些异常。bmi不太可能是0。这里的0有可能是缺失的数据,NA。我们需要对这样的数据重新编码,因为0 会被当做一个数值,从而影响最后的结果。
对缺失的数据进行编码
> pima$glucose[pima$glucose==0] <- NA
> pima$bp[pima$bp==0] <- NA
> pima$triceps[pima$triceps==0] <- NA
> pima$insulin[pima$insulin==0] <- NA
> pima$bmi[pima$bmi==0] <- NA
同样的,class应该表示类别,而不是简单的一个数值。我们让class作为categorical data。
pima$class <- factor(pima$class)
重新再检查一下数据
可以做一个简单的linear model :
> test.lm <- lm(bmi ~ triceps, data = pima)
multiple regression
结果显示,npreg,age 与bmi没有显著的线性关系。R square 只有 45.7%。model fit的并不好。