如何在r语言中用支持向量机回归分析来拟合出一条曲线

Python08

如何在r语言中用支持向量机回归分析来拟合出一条曲线,第1张

使用R做回归分析整体上是比较常规的一类数据分析内容,下面我们具体的了解用R语言做回归分析的过程。

首先,我们先构造一个分析的数据集

x<-data.frame(y=c(102,115,124,135,148,156,162,176,183,195),

var1=runif(10,min=1,max=50),

var2=runif(10,min=100,max=200),

var3=c(235,321,412,511,654,745,821,932,1020,1123))

接下来,我们进行简单的一元回归分析,选择y作为因变量,var1作为自变量。

在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价、身高、GDP、学生成绩等,发现这些被预测的变量都属于连续型变量。然而有些情况下,被预测变量可能是二元变量,即成功或失败、流失或不流失、涨或跌等,对于这类问题,线性回归将束手无策。这个时候就需要另一种回归方法进行预测,即Logistic回归。

在实际应用中,Logistic模型主要有三大用途:

1)寻找危险因素,找到某些影响因变量的"坏因素",一般可以通过优势比发现危险因素;

2)用于预测,可以预测某种情况发生的概率或可能性大小;

3)用于判别,判断某个新样本所属的类别。

Logistic模型实际上是一种回归模型,但这种模型又与普通的线性回归模型又有一定的区别:

1)Logistic回归模型的因变量为二分类变量;

2)该模型的因变量和自变量之间不存在线性关系;

3)一般线性回归模型中需要假设独立同分布、方差齐性等,而Logistic回归模型不需要;

4)Logistic回归没有关于自变量分布的假设条件,可以是连续变量、离散变量和虚拟变量;

5)由于因变量和自变量之间不存在线性关系,所以参数(偏回归系数)使用最大似然估计法计算。

logistic回归模型概述

广义线性回归是探索“响应变量的期望”与“自变量”的关系,以实现对非线性关系的某种拟合。这里面涉及到一个“连接函数”和一个“误差函数”,“响应变量的期望”经过连接函数作用后,与“自变量”存在线性关系。选取不同的“连接函数”与“误差函数”可以构造不同的广义回归模型。当误差函数取“二项分布”而连接函数取“logit函数”时,就是常见的“logistic回归模型”,在0-1响应的问题中得到了大量的应用。

Logistic回归主要通过构造一个重要的指标:发生比来判定因变量的类别。在这里我们引入概率的概念,把事件发生定义为Y=1,事件未发生定义为Y=0,那么事件发生的概率为p,事件未发生的概率为1-p,把p看成x的线性函数;

回归中,最常用的估计是最小二乘估计,因为使得p在[0,1]之间变换,最小二乘估计不太合适,有木有一种估计法能让p在趋近与0和1的时候变换缓慢一些(不敏感),这种变换是我们想要的,于是引入Logit变换,对p/(1-p)也就是发生与不发生的比值取对数,也称对数差异比。经过变换后,p对x就不是线性关系了。

模型拟合 于口模型采用Logistic增函数形式考虑初期指数增及总资源限制其函数形式 首先载入car包便读取数据使用nls函数进行建模其theta一、theta二、theta三表示三待估计参数start设置参数初始值设定trace真显示迭代程nls函数默认采用Gauss-Newton寻找极值迭代程第列RSS值面三列各参数估计值用summary返归结 library(car) pop.mod一 <- nls(population ~ theta一/(一+exp(-(theta二+theta三*year))),start=list(theta一 = 四00, theta二 = -四9, theta三 = 0.0二5), data=USPop, trace=T) summary(pop.mod) 面归程我直接指定参数初始值另种采用搜索策略首先确定参数取值范围利用nls二包暴力优参数种相费 种更简便采用内置自启模型(self-starting Models)我需要指定函数形式需要指定参数初始值本例logistic函数所应selfstarting函数名SSlogis pop.mod二 <- nls(population ~ SSlogis(year,phi一,phi二,phi三),data=USPop) 二、判断拟合效 非线性归模型建立需要判断拟合效候参数优化程捕捉局部极值点非全局极值点直观原始数据点绘制拟合曲线 library(ggplot二) p <- ggplot(USPop,aes(year, population)