关于算法:R语言平滑算法LOESS局部加权回归三次样条变化点检测拟合电视节目白宫风云在线收视率

73次阅读

共计 2335 个字符,预计需要花费 6 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=24067

此示例基于电视节目的在线收视率。咱们将从抓取数据开始。

# 加载软件包。packages <- c("gplot2", "MASS", "reshpe", "splnes", 
    "XML")

剖析的系列是亚伦·索尔金 (Aaron Sorkin) 的 _《_白宫风波_》_。

if (!fle.eiss(fie)) {
    # 解析 HTML 内容。html <- htmlPrse(lis?si=17ectn=a")
    # 依据 id 抉择表格。tml <- pahppl(html, //tal\[@d='Tle'\]"\[1\] ?
    # 转换为数据集。da <- reHTML(hml)
    # 第一个数据行。head(da)
    # 保留本地正本。write.csv(ata\[, -3\], fle)

# 读取本地正本
daa <- red.sv(fie)
# 查看后果
str(dat)

Mean 是每集的均匀评分,所以咱们有一个参数,Count 是每集的投票数,所以咱们有一个样本大小。应用标准误差方程,咱们将计算每个评分的“误差幅度”。请留神,因为有几集收视率十分高,因而收视率散布不失常。

# 计算季
daa$saon <- 1 + (daX - 1)%/%22
# 非凡状况
at$sasn\[which(dta$sesn > 7)\] <- c(7, NA)
# 因子变量
daa$saon <- fator(aa$sesn)

咱们对数据采取的最初一步是增加季编号,以便当前可能在绘图上辨别它们。除了两个特例(最初一季有 23 集,一个节目是电影特辑)外,_《_白宫风波_》_每一季 都有 22 集。咱们应用除以 22 的余数来计算季,修复非凡状况,并将变量合成为绘图目标。

# 计算季 
asaon <- 1 + (aX - 1)%/%22
#  非凡状况
dtseson\[wich(dtsasn > 7)\] <- c(7, A)
# 因子变量
dtseson <- fctor(dasasn)

最初的图应用 95% 和 99% 的置信区间来可视化不确定性。

qlot(dta =dat, x = X, y = mu, clr =sasn, gem = "pont") + 
  genge(es(yin = u - 1.96\*se, ymx = u + 1.96\*se), alpa = .5) +
  golie(as(yin =mu - 2.58\*se, yax = mu + 2.58\*e), apa = .5) +

该图对于每个节令的均匀收视率会更有用,这些收视率很容易用该ddply() 函数检索。还计算了最小和最大集数,以便可能绘制每个节令的程度段。因为咱们将之前的绘图保留为 ggplot2 对象,因而增加线条只须要对额定的图形元素进行编码并将其增加到保留的元素之上。

# 计算季平均值。men <- dply(daa,.(easn), summrs, 
      ma = mean), 
      xmi= in(X, 
      xmx = ma(X)
# 将平均值增加到绘图中。g + go_eme(daa = eas, 
                as(xmin, max,  = mean, en= man))

变动点检测算法

如果您的指标是找到系列中的忽然变动,请应用变动点检测算法。

# PELT 算法计算变动点。p <- tmean(atamu, 'PELT')
# 提取后果。xmin <- c(0, max\[-legh(xmax)\])
# 绘图。gem_segnt(dat = eg)

平滑算法:LOESS(部分加权回归)和三次样条

当初让咱们平滑这个系列。根本图都将应用雷同的数据,咱们将在其上叠加一条通过不同办法计算的趋势线。

# 绘图
 plot(data 
          x = X,
          y = mu,
          alpa = I0.5),
          gom = line")

平滑数据的最简略办法是应用部分多项式,咱们将其利用于每个节令的分数,而后利用于它们的去趋势值。更简单的平滑办法应用 splines。它仅用于最初一个图中。

# 每一季的 LOESS 平滑
 
  LOESS(se = FALSE) + 
  goln(y = tmu,neyp= dhe"+
as(colo = sason)

# 对去趋势的数值进行 LOESS 平滑解决
  smooth(se = FALSE) + 
  eoin(es =memu)), itype = ") +

# 立方样条
g + 
  smooth("m", ns(x, 8)

三次样条提供的信息与咱们从变动点检测中理解到的状况简直雷同:该系列有三个期间,是因为观众收视率的一次降落。

# 三次样条和变动点
gmoth(method =  ~ ns(x, 8))


最受欢迎的见解

1.R 语言多元 Logistic 逻辑回归 利用案例

2. 面板平滑转移回归 (PSTR) 剖析案例实现剖析案例实现 ”)

3.matlab 中的偏最小二乘回归(PLSR)和主成分回归(PCR)

4.R 语言泊松 Poisson 回归模型剖析案例

5.R 语言混合效应逻辑回归 Logistic 模型剖析肺癌

6.r 语言中对 LASSO 回归,Ridge 岭回归和 Elastic Net 模型实现

7.R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病

8.python 用线性回归预测股票价格

9.R 语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

正文完
 0