Những gì hiện đại diện cho hồi quy tuyến tính?


11

Trong R, nếu tôi viết

lm(a ~ b + c + b*c) 

đây sẽ vẫn là một hồi quy tuyến tính?

Làm thế nào để thực hiện các loại hồi quy khác trong R? Tôi sẽ đánh giá cao bất kỳ đề nghị cho sách giáo khoa hoặc hướng dẫn?


Tôi đã cố gắng để điều chỉnh lại một chút câu hỏi của bạn. Tôi sợ rằng có vẻ như bạn đang hỏi hai câu hỏi rất khác nhau. Đối với cái thứ hai, rất nhiều tài nguyên có sẵn trên trang web này, nhưng cũng có trên CRAN .
chl

@chl, yeap, cảm ơn, tôi không rõ. Câu hỏi của tôi thực sự là thế này: Nếu tôi viết LM bằng R thì R có hiểu nó là tuyến tính luôn hay cố gắng phù hợp với bất kỳ mô hình nào, không nhất thiết là hồi quy tuyến tính nhưng có hồi quy nào không?
suprvisr

Không, lm()là viết tắt của hồi quy tuyến tính. Mô hình của bạn bao gồm ba thông số (trừ đi đánh chặn) cho b, cvà tương tác của chúng b:c, viết tắt của b + c + b:choặc b*cgọi tắt là (R sau ký hiệu Wilkinson cho mô hình thống kê). Lắp mô hình tuyến tính tổng quát (nghĩa là trong đó chức năng liên kết không phải là danh tính, như trường hợp của mô hình tuyến tính được trình bày ở trên) được yêu cầu thông qua glm().
chl

Câu trả lời:


24

Tuyến tính đề cập đến mối quan hệ giữa các thông số mà bạn đang ước tính (ví dụ, ) và kết quả (ví dụ, y i ). Do đó, y = e x β + ε là tuyến tính, nhưng y = e β x + ε thì không. Một mô hình tuyến tính phương tiện rằng ước tính của bạn của vector tham số của bạn có thể được viết β = Σ i w i y i , nơi { w i }βyiy=exβ+ϵy=eβx+ϵβ^=iwiyi{wi}là các trọng số được xác định bởi thủ tục ước tính của bạn. Các mô hình tuyến tính có thể được giải đại số ở dạng kín, trong khi nhiều mô hình phi tuyến tính cần được giải quyết bằng cách tối đa hóa số bằng máy tính.


6
+1 Cụ thể, trong "mô hình tuyến tính", biến phụ thuộc là hàm tuyến tính của các tham số nhưng không nhất thiết phải là dữ liệu. y
whuber

Đầu tiên là tuyến tính? thực sự - một trong những sức mạnh của x?
suprvisr

2
Vâng, bởi vì không phải là số lượng quan tâm (một trong những bạn tối ưu hóa cho) nhưng thay vào đó β là. Vì vậy, nó là tuyến tính trong β . xββ
bayerj

+1, nhưng câu trả lời này có thể được cải thiện bằng cách nhận xét về công thức trong câu hỏi.
ness101

1
Tôi nhận thấy, trong lần đọc thứ hai, nửa sau của câu trả lời này nhầm lẫn "mô hình tuyến tính" với "công cụ ước tính tuyến tính". Hai khái niệm là riêng biệt và khác nhau. Các mô hình phi tuyến thường có các công cụ ước tính tuyến tính và các mô hình tuyến tính có thể có các công cụ ước tính phi tuyến (ví dụ, xem xét GLM).
whuber

5

Bài đăng này tại minitab.com cung cấp một lời giải thích rất rõ ràng:

  • Một mô hình là tuyến tính khi nó có thể được viết theo định dạng này:
    • Response = constant + parameter * predictor + ... + parameter * predictor
      • Nghĩa là, khi mỗi thuật ngữ (trong mô hình) là hằng số hoặc tích của một tham số và biến dự báo.
    • Vì vậy, cả hai đều là mô hình tuyến tính:
      • Y=B0+B1X1
      • Y=B0+B1X12
  • Nếu mô hình không thể được biểu thị bằng định dạng trên, thì nó không tuyến tính.
    • Ví dụ về các mô hình phi tuyến tính:
      • Y=B0+X1B1
      • Y=B0cos(B1X1)

4

Tôi sẽ cẩn thận khi hỏi đây là câu hỏi "Hồi quy tuyến tính R" so với câu hỏi "hồi quy tuyến tính". Các công thức trong R có các quy tắc mà bạn có thể hoặc không thể biết. Ví dụ:

http://wiener.math.csi.cuny.edu/st/stRmanual/ModelFormula.html

Giả sử bạn đang hỏi nếu phương trình sau là tuyến tính:

a = coeff0 + (coeff1 * b) + (coeff2 * c) + (coeff3 * (b*c))

Câu trả lời là có, nếu bạn lắp ráp một biến độc lập mới, chẳng hạn như:

newv = b * c

Thay thế phương trình newv ở trên vào phương trình ban đầu có thể trông giống như những gì bạn mong đợi cho một phương trình tuyến tính:

a = coeff0 + (coeff1 * b) + (coeff2 * c) + (coeff3 * newv)

Theo như tham khảo, Google "hồi quy" hoặc bất cứ điều gì bạn nghĩ có thể làm việc cho bạn.


Làm thế nào để đổi tên một cái gì đó làm cho nó tuyến tính? Tôi không hiểu, nếu danh tính newv = b * c giữ, thì nó hoàn toàn không tuyến tính. Tôi bị bối rối.
bayerj

@bayer: newv là một biến mới. Phương trình mới là một hàm tuyến tính gồm ba biến (b, c, newv), trong đó các hệ số cung cấp một mối quan hệ tuyến tính. Không phương trình nào là sự kết hợp tuyến tính của chỉ hai biến.
bill_080

@bayer Xem trả lời của @Charlie. Trong ví dụ hiện tại, cả hai mô hình là tuyến tính (có hay không R xem chúng như vậy) bởi vì trong cả hai mô hình này alà hàm tuyến tính của bốn hệ số.
whuber

cảm ơn, nó có ý nghĩa ... tôi chỉ có thể thêm biến mới neww là b * c cho từng trường hợp trong cơ sở dữ liệu (y tế) và sau đó coi nó là hồi quy tuyến tính?
suprvisr

2

Bạn có thể viết hồi quy tuyến tính dưới dạng phương trình ma trận (tuyến tính).

[a1a2a3a4a5...an]=[b1c1b1c1b2c2b2c2b3c3b3c3b4c4b4c4b5c5b5c5...bncnbncn]×[αbαcαbc]+[ϵ1ϵ2ϵ3ϵ4ϵ5...ϵn]

hoặc nếu bạn sụp đổ điều này:

a=αbb+αcc+αbcbc+ϵ

bcbca

abcbc


y=aect+bedty=u(ec(tv)+ed(tv))ab


Tôi cảm thấy đây là câu trả lời tốt nhất, bởi vì nó trả lời câu hỏi Tại sao thay vì chỉ Cái gì. Trả lời bằng "Cái gì" không dẫn đến trực giác tốt hơn.
Hexatonic
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.