R-二元直线回归分析

用直线回归法进行相关性分析是最常用的方法之一,以下例子是R进行简单的二元直线回归法分析两个变量之间的相关性。125650_YnFc_2718942.png

#二元直线回归分析
#http://shujuren.org/article/138.html
#http://datascienceplus.com/bivariate-linear-regression/
data(swiss)            #将数据引入工作区域
View(swiss)
summary(swiss)         #观察汇总值
plot(swiss)            #观察总的相总性
plot(swiss$Fertility~swiss$Education)   #散点图
#其~符号可以理解成“在这里进行回归分析
#lm(formula,data)标准线性模型
reg<-lm(Fertility~Education,swiss)    #线性回归
reg    #返回两个结果
#call-->用回归分析估计模型
#Coefficients-->Intercept:截距,斜率(相关系数)
summary(reg)     #用summary显示细节
#$latex R^2$就是自变量与因变量之间的皮尔森相关系数的平方的多重相关平方
#检验
summary(reg)$r.squared       #显示相关系数
cor(swiss$Fertility,swiss$Education)^2   
summary(reg)$r.squared==cor(swiss$Fertility,swiss$Education)^2 #是否相等
#将回归直线加入散点图
plot(swiss$Fertility~swiss$Education)   #散点图
abline(reg)     #直线

#write.csv(swiss,"swiss.csv")      #数据输出
#皮尔森相关系数
#https://zh.wikipedia.org/wiki/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0
#r=sum[(Xi-X)*(Yi-Y)]/sqr(sum((Xi-X)^2))*sqr(sum((Yi-Y)^2))
PPMCC<-swiss       #数据导入
med_X<-mean(PPMCC$Fertility)                #X平均值
med_Y<-mean(PPMCC$Education)                #Y平均值
PPMCC$Xi_X<-PPMCC$Fertility-med_X           #Xi-X
PPMCC$Yi_Y<-PPMCC$Education-med_Y           #Yi-Y
PPMCC$XY<-PPMCC$Xi_X*PPMCC$Yi_Y             #(Xi-X)*(Yi-Y)
PPMCC$X2<-PPMCC$Xi_X^2                      #(Xi-X)^2
PPMCC$Y2<-PPMCC$Yi_Y^2                      #(Yi-Y)^2
sum_X2<-sum(PPMCC$X2)                       #sum((Xi-X)^2)
sum_Y2<-sum(PPMCC$Y2)                       #sum((Yi-Y)^2)
r<-sum(PPMCC$XY)/(sqrt(sum_X2)*sqrt(sum_Y2))     #相关系数
r                                 
cor(swiss$Fertility,swiss$Education)       #R函数cor计算的相关系数

 

转载于:https://my.oschina.net/tedzheng/blog/682736

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值