r语言lm函数可以做非线性回归吗

Python012

r语言lm函数可以做非线性回归吗,第1张

模型拟合

对于人口模型可以采用Logistic增长函数形式,它考虑了初期的指数增长以及总资源的限制。其函数形式如下。

首先载入car包以便读取数据,然后使用nls函数进行建模,其中theta1、theta2、theta3表示三个待估计参数,start设置了参数初始值,设定trace为真以显示迭代过程。nls函数默认采用Gauss-Newton方法寻找极值,迭代过程中第一列为RSS值,后面三列是各参数估计值。然后用summary返回回归结果。

library(car)

pop.mod1 <- nls(population ~ theta1/(1+exp(-(theta2+theta3*year))),start=list(theta1 = 400, theta2 = -49, theta3 = 0.025), data=USPop, trace=T)

summary(pop.mod)

在上面的回归过程中我们直接指定参数初始值,另一种方法是采用搜索策略,首先确定参数取值范围,然后利用nls2包的暴力方法来得到最优参数。但这种方法相当费时。

还有一种更为简便的方法就是采用内置自启动模型(self-starting Models),此时我们只需要指定函数形式,而不需要指定参数初始值。本例的logistic函数所对应的selfstarting函数名为SSlogis

pop.mod2 <- nls(population ~ SSlogis(year,phi1,phi2,phi3),data=USPop)

二、判断拟合效果

非线性回归模型建立后需要判断拟合效果,因为有时候参数最优化过程会捕捉到局部极值点而非全局极值点。最直观的方法是在原始数据点上绘制拟合曲线。

library(ggplot2)

p <- ggplot(USPop,aes(year, population))

建模需要数据分析如下。

1、Excel:隶属于office三件套之一,其内置函数很多,它可以很简单的进行数据分析,绘制出一些基本图表,像一般散点图、数据预处理都是通过Excel来完成的。

2、R语言:R语言进行数据分析需要有一定的数学基础还有会R语言编程,门槛比Excel高。R语言是个开源项目,具有强大的统计计算及制图能力,是大数据分析必备的工具,R语言正在被大多数数据分析师作为数据分析主要工具。

3、Eviews:这是一个计量经济学常用软件,数学建模还是有不少题目和经济有关的。用它快速计算描述统计量:相关系数、协方差、自相关系数、互相关系数和直方图。进行T检验、方差分析、协整检验、Granger因果检验。

4、origin:这是一款超强的数学图形分析工具,软件为用户提供了专业的数学数据分析功能,支持几十种二维和三维绘图模板,,同时还有高端统计分析功能、三维曲面拟合、图像处理和信号处理功能。

5、SPSS:SPSS是全球领先的一款统计分析与数据挖掘软件,也是数学建模经常使用的数据分析软件,软件操作难度不大。被广泛用于通讯、医疗、银行、证券、保险、制造、商业、市场研究、科研教育等多个领域和行业。