拓端tecdat|R語言平滑算法LOESS局部加權回歸、三次樣條、變化點檢測擬合電視節(jié)目《白
原文鏈接:http://tecdat.cn/?p=24067
原文出處:拓端數(shù)據(jù)部落公眾號
此示例基于電視節(jié)目的在線收視率。我們將從抓取數(shù)據(jù)開始。
# 加載軟件包。
packages <- c("gplot2", "MASS", "reshpe", "splnes",
"XML")
分析的系列是亞倫·索爾金 (Aaron Sorkin) 的?《白宮風云》。
if (!fle.eiss(fie)) {
# 解析HTML內(nèi)容。
html <- htmlPrse(lis?si=17ectn=a")
# 根據(jù)id選擇表格。
tml <- pahppl(html, //tal[@d='Tle']"[1] ?
# 轉換為數(shù)據(jù)集。
da <- reHTML(hml)
# 第一個數(shù)據(jù)行。
head(da )
# 保存本地副本。
write.csv(ata[, -3], fle)
# 讀取本地副本
daa <- red.sv(fie)
# 檢查結果
str(dat)

Mean
?是每集的平均評分,所以我們有一個參數(shù),?Count
?是每集的投票數(shù),所以我們有一個樣本大小。使用標準誤差方程

,我們將計算每個評分的“誤差幅度”。請注意,由于有幾集收視率非常高,因此收視率分布不正常。
# 計算季
daa$saon <- 1 + (daX - 1)%/%22
# 特殊情況
at$sasn[which(dta$sesn > 7)] <- c(7, NA)
# 因子變量
daa$saon <- fator(aa$sesn)
我們對數(shù)據(jù)采取的最后一步是添加季編號,以便以后能夠在繪圖上區(qū)分它們。?除了兩個特例(最后一季有 23 集,一個節(jié)目是電影特輯)外,《白宮風云》每一季?都有 22 集。我們使用除以 22 的余數(shù)來計算季,修復特殊情況,并將變量分解為繪圖目的。
# 計算季
asaon <- 1 + (aX - 1)%/%22
# ?特殊情況
dtseson[wich(dtsasn > 7)] <- c(7, A)
# 因子變量
dtseson <- fctor(dasasn)
最后的圖使用 95% 和 99% 的置信區(qū)間來可視化不確定性。
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) +

該圖對于每個季節(jié)的平均收視率會更有用,這些收視率很容易用該ddply()
?函數(shù)檢索?。還計算了最小和最大集數(shù),以便能夠繪制每個季節(jié)的水平段。由于我們將之前的繪圖保存為?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(局部加權回歸)和三次樣條
現(xiàn)在讓我們平滑這個系列。基本圖都將使用相同的數(shù)據(jù),我們將在其上疊加一條通過不同方法計算的趨勢線。
# 繪圖
plot(data
x = X,
y = mu,
alpa = I0.5),
gom = line")
平滑數(shù)據(jù)的最簡單方法是使用局部多項式,我們將其應用于每個季節(jié)的分數(shù),然后應用于它們的去趨勢值。更復雜的平滑方法使用?splines?。它僅用于最后一個圖中。
# 每一季的LOESS平滑
LOESS(se = FALSE) +
goln(y = tmu,neyp= dhe"+
as(colo = sason)

# 對去趨勢的數(shù)值進行LOESS平滑處理
smooth(se = FALSE) +
eoin(es =memu)), itype = ") +

# 立方樣條
g +
smooth( "m", ns(x, 8)

三次樣條提供的信息與我們從變化點檢測中了解到的情況幾乎相同:該系列有三個時期,是由于觀眾收視率的一次下降。
# 三次樣條和變化點
gmoth(method = ?~ ns(x, 8))


最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應用案例
2.面板平滑轉移回歸(PSTR)分析案例實現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言混合效應邏輯回歸Logistic模型分析肺癌
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現(xiàn)
7.R語言邏輯回歸、Naive Bayes貝葉斯、決策樹、隨機森林算法預測心臟病
8.python用線性回歸預測股票價格
9.R語言用邏輯回歸、決策樹和隨機森林對信貸數(shù)據(jù)集進行分類預測