如何用R语言做线性相关回归分析

Python016

如何用R语言做线性相关回归分析,第1张

cor()函数可以提供双变量之间的相关系数,还可以用scatterplotMatrix()函数生成散点图矩阵

不过R语言没有直接给出偏相关的函数;

我们要是做的话,要先调用cor.test()对变量进行Pearson相关性分析,

得到简单相关系数,然后做t检验,判断显著性。

利用R进行多元线性回归分析

对于一个因变量y,n个自变量x1,...,xn,要如何判断y与这n个自变量之间是否存在线性关系呢?

肯定是要利用他们的数据集,假设数据集中有m个样本,那么,每个样本都分别对应着一个因变量和一个n维的自变量;

m个样本,就对应着一个m维的列向量Y,一个m×n维的矩阵X

Y是X的每一列X1,...,Xn的函数

那么,Y与X1,...,Xn之间到底是什么关系呢?是满足Y=a1*X1+...+an*Xn这样的线性关系还是Y=f(X1,...,Xn)这样的非线性关系呢?

为了解决这个问题,可以首先利用多元线性回归

模型拟合 于口模型采用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)