R语言回归分析实例

本文包含多元线性回归及逻辑回归两种算法,个人实践操作,希望能与大家一起交流分享,如有描述不当之处,欢迎并多谢指正。

#一、公共部分,加载并审核数据、设置数据分区
#-----------------------------
#1、设置工作目录
setwd("E:/R语言建模实例")
#-----------------------------
#2、加载数据,header=TRUE表示读取表头,sep为分隔符设置
userdata <- read.table(file="用户清单.txt",header = TRUE,sep = ",")
#-----------------------------
#3、查看统计量并进行数据审核
vsummary<-summary(userdata)
View(vsummary)


#数据审核相关函数说明
#summary()函数可以获取描述性统计量,可以提供最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计
#misc包中的describe()函数,可返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值
#psych包中的describe()函数,psych包也拥有一个名为describe()的函数,它可以计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误
#pastecs包中的stat.desc()的函数,可以计算种类繁多的描述性统计量。使用格式为:stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)
#其中的x是一个数据框或时间序列。若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。最后,若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro–Wilk正态检验结果
#str()函数,以简洁的方式显示对象的数据结构及内容,可以查看数据框中每个变量的属性
#attributes()函数,可以提取对象除长度和模式以外的各种属性
library(psych)
vdescr<-describe(userdata)
View(vdescr)


#用View查看结果,依次是变量名称、顺序号、元素数量、平均值、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误差
#-----------------------------
#4、相关性矩阵,变量较多,最好是将矩阵保留到变量中,用View()函数查看
vcor<-cor(userdata)
View(vcor)


#用离网标识来举例,可以从结果上查看相关系数比较高的一些指标,
#近三月通话次数波动率为负相关,近三个月欠费次数、当月0通话天数为正相关
#-----------------------------
#5、去掉用户ID,筛选完后可以用str()函数查看一下筛选情况
newusdata<-userdata[,c(-1)]#-1中,-号为排除变量,1表示排除第一列
#6、分箱,分出训练集和测试集
set.seed(1234)
#样本抽取,分两个箱,replace=TRUE为允许放回抽取,FALSE为一次性抽取,prob为抽取概率
ind <- sample(2, nrow(newusdata), replace=TRUE, prob=c(0.5, 0.5))

#获取训练集
trainData <- na.omit(newusdata[ind==1,]) #顺便使用na.omit()函数清洗无效数据
#获取测试集
testData <- na.omit(newusdata[ind==2,]) #顺便使用na.omit()函数清洗无效数据
#可以统计一下训练集数据
nrow(trainData)
#[1] 37528
nrow(testData)
#[1] 37340
#二、多元线性回归
#我们先来看一下ARPU和业务使用量等指标之间的线性回归

#7、训练多元线性回归模型,预测出账收入,先构建ARPU与所有其它变量的线性关系模型
fit_all<-lm(出账收入~., data = trainData)
#8、观察并解读模型统计量
summary(fit_all)
#--------模型fit_all的统计量 start------------
# Call:
#   lm(formula = 出账收入 ~ ., data = trainData)
#
# Residuals:#残差,分别是最小值、第一分位数、中位数、第三分位数、最大值,残差值越小,说明模型拟合度越好,
# 以下残差值的两端极值较大,但从中位数、第一分位数、第三分位数看还是可以
# 理想的情况下,回归残差应该有一个完美的正态分布。1Q和3Q应该有大约相同的幅度,
# 中位数符号则表示数据的倾斜方向,本例中为略向右倾斜
#   Min      1Q  Median      3Q     Max
# -333.54   -2.82    0.81    4.32  182.07
#
# Coefficients:  #系数,分别是系数估计值、标准误差、t值、P-value值(用于T检验显著性标记)
# Estimate是由普通最小二乘法计算出的估计回归系数
# Std.Err为估计系数的标准误差
# t value:t统计量,t检验是用t分布理论来推论差异发生的概率,评价差异是否显著
# Pr是一个概率,它估计系数不显著的可能性,越小越好
#            

  • 24
    点赞
  • 260
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值