model的目标是提供一个数据集的简单低维摘要,本书将使用model将数据分为patterns和residuals。
model有两部分:
1. 首先,定义a family of models,用来表达一个你想捕获的精确但通用的pattern。例如,pattern可以是一条直线或者一条二次曲线,用方程表示这个模型家族分别为y=a1*x+a2和y=a1*x^a2,其中x,y为来自数据集的已知变量,a1,a2为参数,不同的a1,a2可以表示不同的patterns。
2. 其次,从家族中找到一个最接近数据集的模型,即a fitted model。
mynote:首先需要确认的是用哪种方法,然后确定其参数。
modelr package 包含了base R中基本建模函数,使其可在pip中运行。
一个简单的构建model的例子:你有一组数据,绘制散点图之后观察到散点的分布有明显的集中在一条直线附近的趋势,因此你可以用一条直线(y=a1+a2*x)来表达这种模式,那我们接下来要做的事情就是确认a1和a2。
平面内有无数条直线,我们的目的是找出一条最能接近数据的直线,那么我们需要一种评价方法来评估谁是“最接近”的直线。一种方法是root-mean-squared deviation(均方根偏差)=root(mean((predicted value - actual)^2))。
书中描述了四种方法来确认a1和a2,包括定义一组随机数、grid search、optim()和直接使用lm()函数。这里只说,现在R中已经有很多model functions可以直接使用,我们通常要做的是根据你的数据特征、目的,将你的数据传递给某个model function,model functions会自动帮你构建model,构建model之后需要做一些评价model好坏的工作,直到找到最优model为止。
网友评论