《数据分析实战》--用R做多元回归分析

《数据分析实战》——用R做多元回归分析

本文参考的是《数据分析实战》的第六章。

背景:针对某公司对产品的不同广告平台投放,基于过去的新增用户数据和投放数据,希望获得更好的广告投放方式,以此建立数据模型。

现状:不同的广告平台投放,广告效果不同。

预期:对不同的广告平台加以比例,达到最佳效果。

明确问题:通过过去的投放数据和新增用户数据,用多元回归方程来确定不同平台的投放广告比例。

在商业领域,通常的做法是在充分考虑成本的前提下预估一个结果,再采取相应的对策。也就是说,通常我们会先确定结果,再反过来考虑相应对策的成本。放在本次案例中,我们需要先构筑一个可以预估各广告媒体能带来的用户量的模型,再决定广告的投放方式。

线性回归方程思想很简单:我们将数据描绘在图上,每个点表示一个数据,其中横坐标表示的变量称为自变量,纵坐标表示的变量称为因变量。然后我们在图上画出一条与这些数据点最为拟合的直线,根据这条直线上任何一点的横坐标(自变量)的值就可以得到纵坐标(因变量)的值,这就是线性回归分析。


读取数据

用R来读取相关数据:

> ad_data <- read.csv('ad_result.csv',header = T,stringsAsFactors = F)
> ad_datamonth  tvcm magazine install
1  2013-01  6358     5955   53948
2  2013-02  8176     6069   57300
3  2013-03  6853     5862   52057
4  2013-04  5271     5247   44044
5  2013-05  6473     6365   54063
6  2013-06  7682     6555   58097
7  2013-07  5666     5546   47407
8  2013-08  6659     6066   53333
9  2013-09  6066     5646   49918
10 2013-10 10090     6545   59963

由于上面的数据已经满足我们对数据分析的需求,故无需做数据处理,直接开始数据分析


数据分析

1.首先确认相关性:
首先,我们需要确认广告和新用户数之间是否存在关系。如果二者之间的关系不那么强,就不能断言用户数量的增加是由广告带来的。我们将数据之间的关系的强弱称为“相关性”。为了确认这种相关性,一般来说首先需要观察数据的散点图。

我们先观察tvcm(电视广告费)和install(新用户)之间的散点图:

library(ggplot2)
library(scales)
ggplot(ad_data,aes(x=tvcm,y=install))+geom_point()+xlab("电视广告费")+ylab('新用户')+scale_x_continuous(labels = comma)+scale_y_continuous(labels = comma)

其中,电视广告费和新用户的散点图如下:
这里写图片描述

我们再观察magazine(杂志广告费)和install(新用户)之间的散点图:

ggplot(ad_data,aes(x=magazine,y=install))+geom_point()+xlab("杂志广告费")+ylab('新用户')+scale_x_continuous(labels = comma)+scale_y_continuous(labels = comma)

其中,杂志广告费和新用户的散点图如下:

这里写图片描述

可以看出,电视广告和杂志广告分别与新用户的增加有着正相关性,下面我们来确定函数关系

2.进行回归分析
在R语言中,进行回归分析通常使用lm 函数。

lm (A ~ . , data = ZZ[, c(“A”,”B”,”C”)])

首先,通过data= 来指明进行回归分析所需要用到的是ZZ 数据中的属性A、B 和C,并在这之前指明所需要用到的回归模型。
上式中的“A ~ .”表示回归模型为A=B+C。其中“~”相当于数学中的等号,“.”是一个省略记号,表示在data 中声明使用的所有属性里将除属性A 之外的其他所有属性相加。因此上式等同于lm(A~B+C,data=ZZ[, c(“A”,”B”,”C”)])。又因为上式中除属性A 外只有2 个属性,所以不用省略直接列出其他所有属性也是可以的,但当用到的属性数量多达几十个时,使用省略记号“.”还是很方便的。

> fit <- lm(install~.,data=ad_data[,c("install","tvcm","magazine")])
> fitCall:
lm(formula = install ~ ., data = ad_data[, c("install", "tvcm", "magazine")])Coefficients:
(Intercept)         tvcm     magazine  188.174        1.361        7.250

这里要注意的是:选择列的时候,使用双引号(“”)

通过输入fit 就能确定多元回归方程的系数,从而构建出多元回归模型。例如从上面的结果我们可以得到以下模型。

新用户数= 1.36× 电视广告费+ 7.25× 杂志广告费+ 188.17

Intercept为截距(即常量),另外的两个为系数。

3.对回归分析结果的解释:

> summary(fit)Call:
lm(formula = install ~ ., data = ad_data[, c("install", "tvcm", "magazine")])Residuals:
     Min       1Q   Median       3Q      Max 
-1406.87  -984.49   -12.11   432.82  1985.84 Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept)  188.1743  7719.1308   0.024  0.98123   
tvcm           1.3609     0.5174   2.630  0.03390 * 
magazine       7.2498     1.6926   4.283  0.00364 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 1387 on 7 degrees of freedom
Multiple R-squared:  0.9379,    Adjusted R-squared:  0.9202 
F-statistic: 52.86 on 2 and 7 DF,  p-value: 5.967e-05

① Residuals
残差也就是预测值和实际值之差,我们将残差的分布用四分位数的方式表示出来,就可以据此来判断是否存在较大的偏差。

② Coefficients
这里是与预估的常数项和斜率相关的内容。每行内容都按照预估值、标准误差、t 值、p 值的顺序给出。我们可以由此得知各个属性的斜率是多少,以及是否具有统计学意义。

③ Multiple R-squared、Adjusted R-squared
判定系数越接近于1,表示模型拟合得越好。

结论:
通过观察残差的分布,我们发现1Q(第1 四分位数)的绝对值比3Q(第3 四分位数)的绝对值要大,这表明某些数据的分布偏差过大。但由于自由度校正判定系数的值高达0.92,因此之前所决定的广告策略应该没有什么问题。

所以建立的数据模型是:
新用户数= 1.361× 电视广告费+ 7.250× 杂志广告费+ 188.174

至此,数据分析结束~


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68714.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公众号运营5大技巧,自媒体人非常适用

互联网时代&#xff0c;公众号算是一种很常见的一种推广渠道&#xff0c;常用的方式就是通过公众号来推广内容&#xff0c;传递信息&#xff0c;表达自己的观点&#xff0c;宣传自己的品牌等。今天就和大家分享一下公众号新手如何开展运营。 1.明确定位 首先要做的&#xff0c…

想要快速入门自媒体,这些自媒体运营方法一定要知道

其实自媒体入门真的很简单&#xff0c;今天小易就来教教你们如何快速入门自媒体。入门自媒体不仅是看你的内容创作能力&#xff0c;还要你的工具使用能力&#xff0c;所以要熟悉一些必要的自媒体工具对你的帮助会很大。 下面就讲讲自媒体工具易撰在创作中的用途&#xff1a; 第…

国家出手管人工智能AI了

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 全球都在封杀AI&#xff0c;国家也出手了&#xff0c;人工智能AI的强监管来了!这次反应速度算是很快了。国家出手&#xff0c;AI必须管。 国家网信办拟针对生成式人工智能服务出台管理办法&#…

GPT 的火爆将如何影响由 NFT 重塑的艺术世界

撰文&#xff1a;Edward Lee 来源&#xff1a;FreeThink 图片来源&#xff1a;由无界 AI工具生成 在过去的几个月里&#xff0c;世界见证了 GPT 令人炫目的能力。它们最革命性的突破之一是根据对 GPT 程序&#xff08;如 DALL-E、Midjourney 和 Stable Diffusion&#xff09;的…

go每日新闻--2020-12-30

go中文网每日资讯--2020-12-30 一、#公众号&#xff1a;Go语言中文网 由 C# 改为 Go&#xff0c;用更少的资源将 API 的响应时间减少了 87&#xff05; 长沙也有 Go 职位了&#xff1a;映客直播招聘 Go 开发高级工程师 Go 经典入门系列 30&#xff1a;错误处理 二、#公众号&am…

2020 Week12:11月30日——12月6日

2020 Week12&#xff1a;11月30日——12月6日 周报 本周目标本周完成详情下周目标markdown语法新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、…

go每日新闻--2020-02-26

go语言中文网(每日资讯)_2020-02-26 一、Go语言中文网 【每日一库】类似 database/sql 的抽象层&#xff0c;但用于 Key-Value 存储 整洁架构&#xff08;Clean Architecture&#xff09;的Go微服务: 设计原则 从零开始入门 K8s | Kubernetes API 编程利器&#xff1a;Oper…

NKN双周报 2020年4月1日至2020年4月15日

亮点 • NKN与爱奇艺携手提升流媒体视频质量 • NKN携手物联网区块链平台IoTeX&#xff0c;举办智能家居安全研讨会 • NKNx在Telegram的便捷机器人NKNxCompanion上线 • NKN顾问Stephen Wolfram邀您加入“Wolfram物理计划”&#xff0c;共同探索宇宙原理 • 缅…

数据可视化神器pyecharts Graph绘制关系图

#关系可视化 from pyecharts import options as opts from pyecharts.charts import Graph from pyecharts.globals import ThemeTypeimport webbrowser #---------------------------------------#主要设置 #InitOpts&#xff1a;初始化配置项&#xff08;在图形创建开始时即可…

Echarts绘制各种数据可视化图表案例(效果+代码)

Echartshtml绘制各种图表案例 注意&#xff1a;要先下载echarts.min.js1、echarts绘制雷达图2、echarts绘制饼图3、echarts绘制柱形图4、echarts绘制折线图6、echarts绘制嵌套饼图7、echarts绘制散点图8、echarts绘制折线面积图9、echarts绘制漏斗图10、echarts绘制仪表盘11、e…

超全!52个数据可视化图表鉴赏~~

一、数据可视化 是关于数据视觉表现形式的科学技术研究。其中&#xff0c;这种数据的视觉表现形式被定义为&#xff0c;一种以某种概要形式抽提出来的信息&#xff0c;包括相应信息单位的各种属性和变量。它是一个处于不断演变之中的概念&#xff0c;其边界在不断地扩大。主要指…

_token mtgsig +数据可视化(excel powerbi tableau)

马上要6月了,趁着考试前还有点时间打算水一篇文章,正好最近搞了搞某团,又学了点可视化,于是打算把逆向和可视化一起讲解了. mtweb端上有很多网址,目前发现3个,其中有一个网址是一点加密都没有,还有一个只有一个单独的mtgsig,另一个是mtgsig和_token两个参数. 网址1(无加密):…

数据可视化-图表

前文提要&#xff1a;看完上一篇文章的小伙伴&#xff0c;相信都已经清楚图表的基本视觉构造及其相对于的设计要点。这是图表设计系列的第二篇文章&#xff0c;这篇主要讲述选择图表和常见的图表类型这两个部分。全文共7600字左右&#xff0c;阅读时长20分钟&#xff5e; 懒人目…

数据分析可视化04 图表组件:Echarts数据可视化图表基础

本课时是课程的第二个模块&#xff0c;环境部署篇的第一个课时。在第一部分的基础理论篇&#xff0c;我向你介绍了数据可视化分析的概念定义、方法体系和关键技术。接下来&#xff0c;我会带你了解基于开源框架&#xff0c;如何部署数据可视化分析的开发环境&#xff0c;内容包…

一行代码生成Tableau可视化图表

今天给大家介绍一个十分好用的Python模块&#xff0c;用来给数据集做一个初步的探索性数据分析(EDA)&#xff0c;有着类似Tableau的可视化界面&#xff0c;我们通过对于字段的拖拽就可以实现想要的可视化图表&#xff0c;使用起来十分的简单且容易上手&#xff0c;学习成本低&a…

数据可视化 - Echarts图表

可视化项目 代码 - - > 底部 01-项目介绍 ​ 应对现在数据可视化的趋势&#xff0c;越来越多企业需要在很多场景(营销数据&#xff0c;生产数据&#xff0c;用户数据)下使用&#xff0c;可视化图表来展示体现数据&#xff0c;让数据更加直观&#xff0c;数据特点更加突出…

数据可视化:绘制部分图表的核心代码实现

matplotlib和pyecharts绘制图表 pyecahrts漏斗图核心代码地图核心代码柱状图核心代码组合图表核心代码数据大屏核心代码 matplotlib棉棒图核心代码饼图核心代码词云图核心代码组合图表核心代码 开发语言及版本Python3.7第三方库及版本号jieba 0.42.1matplotlib3.3.4imageio2.9.…

【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上

【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上 python项目打包成exe可执行文件 ## 步骤一、安装pyinsatller ## 步骤二、使用pyinstaller打包Python程序 ## 操作演示 ## 注意事项&#xff01;&#xff01; python的Flask接口部署&#xff08;Linux&#xff09; ##…

openstack 之 nova调度过程及源码分析

目录 一.nova-scheduler基本介绍 1.1 基本配置 1.2 调度过程 二. nova-scheduler调度过程源码剖析 2.1 /nova/scheduler/filter_scheduler.py/FilterSchduler/_schedule()&#xff1a; 2.2 /nova/scheduler/filter_scheduler.py/FilterSchduler/_get_sorted_hosts()&#x…

中本聪思想精髓难以领悟?Web3实际上还在“幻想”之中?

Web3概念是不错&#xff0c;有人说它是下一代互联网&#xff0c;有人说它是NFT和元宇宙等未来应用的基础设施。然而理论炒得火热&#xff0c;但却仍不见像ChatGPT一样能引爆市场的杀手级应用出现。 原因在于&#xff0c;当前的Web3概念是对中本聪思想的不断概括和提炼&#xff…