2 ธ.ค. 2023 เวลา 02:01 • การศึกษา

Simple Linear Regression

ตัวอย่าง
บริษัทตัวแทนจำหน่ายคอมพิวเตอร์ยี่ห้อหนึ่ง ต้องการหาความสัมพันธ์ระหว่างค่าโฆษณา(หน่วย=แสนบาท)ที่ลงในสื่อต่าง ๆ กับยอดขายคอมพิวเตอร์(หน่วย=ล้านบาท)ประจำเดือน โดยในรอบปีที่ผ่านมาได้มีข้อสรุปรายงานความสัมพันธ์ระหว่างตัวแปรทั้งสอง ปรากฏตามตารางดังนี้
เดือน มค. กพ. มีค. เมย. พค. มิย. กค. สค. กย. ตค. พย. ธค.
โฆษณา1.0 1.6 1.8 2.0 2.6 2.2 3.0 3.0 4.5 4.0 4.0 4.0
ยอดขาย28 22 22 26 18 35 30 38 45 30 40 45
ที่มา. สถิติและวิธีการวิจัยทางเทคโนโลยีสารสนเทศ
จงใช้ข้อมูลความสัมพันธ์ระหว่างตัวแปรทั้งสองในรอบปีที่ผ่านมา เพื่อพยากรณ์ยอดขายที่บริษัทจะได้รับจากการจำหน่ายคอมพิวเตอร์ในเดือนมกราคมถึงเดือนมีนาคม ปีถัดไป
เตรียมข้อมูล
library(timeDate)
library(timeSeries)
sales <- c(28, 22, 22, 26, 18, 35, 30, 38, 45, 30, 40, 45)
advertising <- c(1, 1.6, 1.8, 2, 2.6, 2, 3, 3, 4.5, 4, 4, 4)
comsale <- cbind(sales, advertising)
comsale <- data.frame(comsale)
comsale.ts <- ts(data = comsale, start = c(2020), freq = 12)
comsale.ts <- data.frame(comsale.ts)
attach(comsale.ts)
หาค่าสัมประสิทธิ์
y <- as.matrix(comsale.ts[,"sales",],ncol=1)
x <- as.matrix(cbind(1,comsale.ts[,"advertising"]))
show(beta <- solve(t(x)%*%x)%*%t(x)%*%y)
[,1]
[1,] 15.942381
[2,] 5.602729
หาค่า SE, T-stat
u <- comsale.ts[,"sales"]-beta[1]-beta[2]*comsale.ts[,"advertising"]
k <- 2
n <- length(y)
var <- 1/(n-k)*as.numeric(t(u)%*%u)*solve(t(x)%*%x)
VARBeta <- diag(var)
> show(SEBeta0 <- sqrt(VARBeta[1]))
[1] 5.333141
> show(SEBeta1 <- sqrt(VARBeta[2]))
[1] 1.779279
> show(tstatBeta0 <- beta[1]/SEBeta0)
[1] 2.989304
> show(tstatBeta1 <- beta[2]/SEBeta1)
[1] 3.148875
ประมาณค่าสมการ
summary (saleReg1 <- with(comsale.ts, lm(sales ~ advertising)))
lm(formula = sales ~ advertising)
Residuals:
Min 1Q Median 3Q Max
-12.5095 -3.1869 0.2494 5.5508 7.8522
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15.942 5.333 2.989 0.0136 *
advertising 5.603 1.779 3.149 0.0104 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.726 on 10 degrees of freedom
Multiple R-squared: 0.4979, Adjusted R-squared: 0.4477
F-statistic: 9.915 on 1 and 10 DF, p-value: 0.01035
แสดงค่า fitted, residuals
comsale.ts$pred1 <- fitted(saleReg1)
comsale.ts$resi1 <- saleReg1$residuals
sales <- comsale.ts$sales
pred1 <- comsale.ts$pred1
resi1 <- comsale.ts$resi1
data1 <- cbind(sales,pred1,resi1)
round((data1 <- ts(data = data1, start = c(2020), freq = 12)),2)
sales pred1 resi1
Jan 2020 28 21.55 6.45
Feb 2020 22 24.91 -2.91
Mar 2020 22 26.03 -4.03
Apr 2020 26 27.15 -1.15
May 2020 18 30.51 -12.51
Jun 2020 35 27.15 7.85
Jul 2020 30 32.75 -2.75
Aug 2020 38 32.75 5.25
Sep 2020 45 41.15 3.85
Oct 2020 30 38.35 -8.35
Nov 2020 40 38.35 1.65
Dec 2020 45 38.35 6.65
การพยากรณ์
ถ้าบริษัทมีแผนจะใช้จ่ายลงโฆษณาในอีก 3 เดือนข้างหน้า มกราคม กุมภาพันธ์ มีนาคม 2564 โดยใช้งบประมาณ 5, 3, 4 แสนบาท ตามลำดับ คาดการณ์ยอดขายใน 3 เดือนข้างหน้าจะเป็นเท่าไร
เพิ่มค่าสังเกตค่าใช้จ่ายโฆษณา ออกไปอีก 3 ค่า ใช้คำสั่งดังนี้
comsale.ts <- edit (comsale.ts)
Data Editor
คำสั่งในการพยากรณ์
salesF <- predict(saleReg1, newdata = comsale.ts, interval = "confidence")
แสดงผลการพยากรณ์
sales <- comsale.ts$sales
data <- cbind(sales,salesF)
round((tsm <- ts(data = data, start = c(2020), freq = 12)),2)
sales fit lwr upr
Jan 2020 28 21.55 13.23 29.86
Feb 2020 22 24.91 18.50 31.31
Mar 2020 22 26.03 20.18 31.87
Apr 2020 26 27.15 21.80 32.49
May 2020 18 30.51 26.12 34.90
Jun 2020 35 27.15 21.80 32.49
Jul 2020 30 32.75 28.35 37.15
Aug 2020 38 32.75 28.35 37.15
Sep 2020 45 41.15 33.12 49.19
sales fit lwr upr
Oct 2020 30 38.35 31.90 44.81
Nov 2020 40 38.35 31.90 44.81
Dec 2020 45 38.35 31.90 44.81
Jan 2021 NA 43.96 34.19 53.72
Feb 2021 NA 32.75 28.35 37.15
Mar 2021 NA 38.35 31.90 44.81
Plot Graph
library(xts)
tsm <- subset(tsm, select = -c(lwr,upr))
tsm <- (ts(data = tsm, start = c(2020), freq = 12))
plot(as.xts(tsm), type = "b",col=c("red", "black"),lwd=c(1, 2), pch = 15,
ylim = c(0, 60), main="SalesForecasting")
addLegend("topleft", on=NA,legend.names = c("sales", "salesF"),
lty=c(1, 1), pch = 15, lwd=c(1, 2),col=c("red", "black"))
Forecast Jan 2021 Mar 2021
ต้องการข้อมูลหรือสคริปต์ไฟล์
share link
โฆษณา