ฉันมีแนวที่ดีที่สุด ฉันต้องการจุดข้อมูลที่จะไม่เปลี่ยนแนวที่ดีที่สุดของฉัน


15

ฉันกำลังนำเสนอเกี่ยวกับเส้นสายที่กระชับ ฉันมีฟังก์ชั่นเชิงเส้นอย่างง่าย, ฉันกำลังพยายามหาจุดข้อมูลที่กระจัดกระจายที่ฉันสามารถใส่ในพล็อตกระจายที่จะทำให้แถวของฉันเหมาะสมที่สุดสมการเดียวกันy=1x+b

ฉันชอบที่จะเรียนรู้เทคนิคนี้ใน R หรือ Excel - แล้วแต่ว่าจะง่ายกว่ากัน


1
กรณีการถดถอยหลายครั้งที่มีค่าสัมประสิทธิ์ชุดใด ๆ (ซึ่งเป็นกรณีพิเศษของคุณ) ถูกกล่าวถึงในรายการ (2) ของคำตอบนี้ ทำตามขั้นตอนที่มีการแก้ไขกรณีการถดถอยง่าย วิธีนี้ใช้ได้กับแพ็คเกจใด ๆ ที่คุณสามารถจำลองค่าสุ่มของการแจกแจงที่ต้องการและเหมาะสมกับโมเดลการถดถอย
Glen_b -Reinstate Monica

autodeskresearch.com/publications/samestatsนำเสนอความเห็นที่ดีของสิ่งนี้: การจำลองการอบใช้เพื่อสร้าง scatterplots ที่ไม่เพียง แต่มีค่าสรุปสถิติที่ต้องการเท่านั้น แต่ยังมีรูปร่างที่กำหนด (เช่น "datasaurus") นี่คือการทำงานโดยจัสติน Matejka และจอร์จ Fitzmaurice สิทธิเดียวกันสถิติกราฟที่แตกต่างกัน: ชุดข้อมูลที่แตกต่างกันกับการสร้างลักษณะที่ปรากฏและสถิติที่เหมือนผ่านการอบจำลอง
whuber

คำตอบ:


28

เลือก(xi)มีให้อย่างน้อยสองรายการแตกต่างกัน ตั้งค่าการสกัดกั้นβ0และความชันβ1และกำหนด

y0ผม=β0+β1xผม.

พอดีนี้สมบูรณ์แบบ คุณสามารถแก้ไขy0เป็นy=y0+εโดยการเพิ่มเวกเตอร์ข้อผิดพลาดใด ๆε=(εi)ให้กับมันหากเป็นมุมฉากทั้งกับเวกเตอร์x=(xi)และเวกเตอร์คงที่(1,1,,1) ) เป็นวิธีที่ง่ายที่จะได้รับข้อผิดพลาดดังกล่าวคือการเลือกใด ๆเวกเตอร์eและให้εจะเหลือเมื่อถอยeกับxxในโค้ดด้านล่างeถูกสร้างขึ้นเป็นชุดของค่าปกติแบบสุ่มอิสระที่มีค่าเฉลี่ย0และค่าเบี่ยงเบนมาตรฐานทั่วไป

นอกจากนี้คุณยังสามารถเลือกจำนวนการกระจายล่วงหน้าได้ด้วยการกำหนดว่าR2ควรเป็นอะไร การให้τ2=var(yi)=β12var(xi) , ขาย rescale เหล่านั้นให้มีความแปรปรวนของ

σ2=τ2(1/R21).

วิธีนี้เป็นวิธีทั่วไป:ตัวอย่างที่เป็นไปได้ทั้งหมด (สำหรับชุดxi ) สามารถสร้างได้ด้วยวิธีนี้


ตัวอย่าง

สี่ของ Anscombe

เราสามารถสร้างQuartet ของ Anscombeสี่ชุดข้อมูล bivariate ที่แตกต่างกันสี่ชุดที่มีสถิติเชิงพรรณนาเดียวกัน (ผ่านลำดับที่สอง) ได้อย่างง่ายดาย

รูป

รหัสนี้เรียบง่ายและยืดหยุ่นอย่างน่าทึ่ง

set.seed(17)
rho <- 0.816                                             # Common correlation coefficient
x.0 <- 4:14
peak <- 10
n <- length(x.0)

# -- Describe a collection of datasets.
x <- list(x.0, x.0, x.0, c(rep(8, n-1), 19))             # x-values
e <- list(rnorm(n), -(x.0-peak)^2, 1:n==peak, rnorm(n))  # residual patterns
f <- function(x) 3 + x/2                                 # Common regression line

par(mfrow=c(2,2))
xlim <- range(as.vector(x))
ylim <- f(xlim + c(-2,2))
s <- sapply(1:4, function(i) {
  # -- Create data.
  y <- f(x[[i]])                                         # Model values
  sigma <- sqrt(var(y) * (1 / rho^2 - 1))                # Conditional S.D.
  y <- y + sigma * scale(residuals(lm(e[[i]] ~ x[[i]]))) # Observed values

  # -- Plot them and their OLS fit.
  plot(x[[i]], y, xlim=xlim, ylim=ylim, pch=16, col="Orange", xlab="x")
  abline(lm(y ~ x[[i]]), col="Blue")

  # -- Return some regression statistics.
  c(mean(x[[i]]), var(x[[i]]), mean(y), var(y), cor(x[[i]], y), coef(lm(y ~ x[[i]])))
})
# -- Tabulate the regression statistics from all the datasets.
rownames(s) <- c("Mean x", "Var x", "Mean y", "Var y", "Cor(x,y)", "Intercept", "Slope")
t(s)

เอาต์พุตให้สถิติเชิงพรรณนาอันดับที่สองสำหรับข้อมูล(x,y)สำหรับแต่ละชุดข้อมูล ทั้งสี่บรรทัดเหมือนกัน คุณสามารถสร้างตัวอย่างได้ง่ายขึ้นโดยการแก้ไขx(พิกัด x) และe(รูปแบบข้อผิดพลาด) เมื่อเริ่มแรก

จำลอง

Ryβ=(β0,β1)R20R21x

simulate <- function(x, beta, r.2) {
  sigma <- sqrt(var(x) * beta[2]^2 * (1/r.2 - 1))
  e <- residuals(lm(rnorm(length(x)) ~ x))
  return (y.0 <- beta[1] + beta[2]*x + sigma * scale(e))
}

(การย้ายสิ่งนี้ไปยัง Excel นั้นไม่ใช่เรื่องยาก แต่มันก็เจ็บปวดเล็กน้อย)

(x,y)60 xβ=(1,1/2)11/2R2=0.5

รูป

n <- 60
beta <- c(1,-1/2)
r.2 <- 0.5   # Between 0 and 1

set.seed(17)
x <- rnorm(n)

par(mfrow=c(1,4))
invisible(replicate(4, {
  y <- simulate(x, beta, r.2)
  fit <- lm(y ~ x)
  plot(x, y)
  abline(fit, lwd=2, col="Red")
}))

summary(fit)R2xผม.


1
ดีมากขอบคุณ! น่าเสียดายที่วิธีการของคุณดูเหมือนจะไม่สามารถใช้กับคำถามนี้ได้ทันที: ชุดข้อมูลที่มีลักษณะคล้าย Anscombe ที่มีกล่องและพล็อตมัสสุเดียวกัน (หมายถึง / std / median / MAD / min / max)ใช่ไหม?
เตฟาน Kolassa

@ สเตฟานคุณพูดถูกเพราะมันไม่ใช่ปัญหาเชิงเส้น สามารถแก้ไขได้ในลักษณะที่คล้ายกันโดยการหาวิธีแก้ปัญหาที่เป็นไปได้สำหรับปัญหาการปรับให้เหมาะสมแบบ จำกัด แต่ต้องใช้วิธีการเพิ่มประสิทธิภาพที่แตกต่างกันและไม่รับประกันว่าจะมีการแก้ปัญหา
whuber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.