Làm thế nào để tính toán tham số chính quy trong hồi quy sườn cho mức độ tự do và ma trận đầu vào?


11

Đặt A là ma trận của các biến độc lập và B là ma trận tương ứng của các giá trị phụ thuộc. Trong hồi quy sườn núi, chúng ta định nghĩa một tham số để: . Bây giờ hãy để [usv] = svd (A) và mục nhập chéo của 's'. chúng tôi xác định bậc tự do (df) = . Hồi quy độ dốc thu nhỏ các hệ số của các thành phần có phương sai thấp và do đó tham số kiểm soát mức độ tự don × 1n×pn×1λd i = i t h Σ n i = 1 ( d i ) 2β=(ATA+λI)1ATBdi=ith bước sóngbước sóng=0i=1n(di)2(di)2+λλλ=0, đó là trường hợp hồi quy bình thường, df = n và do đó tất cả các biến độc lập sẽ được xem xét. Vấn đề tôi gặp phải là tìm giá trị của λ được đưa ra 'df' và ma trận 's'. Tôi đã cố gắng sắp xếp lại phương trình trên nhưng không nhận được giải pháp dạng đóng. Vui lòng cung cấp bất kỳ con trỏ hữu ích.


Tôi cần thời gian để trả lời câu hỏi này (có lẽ những người khác sẽ nhanh chóng hỗ trợ bạn hơn), nhưng hầu hết những hiểu biết có thể được lấy từ stat.lsa.umich.edu/~kshedden/Cifts/Stat600/Notes/, Và định nghĩa của là gì độ tự do, vì tôi nhớ bằng cách nào đó. λkλ
Dmitrij Celov

@Dmitrij: Thnx cho câu trả lời, tôi đã cập nhật các câu hỏi và thay thế 'k' bằngλ
Amit

Xin chào Amit, làm thế nào bạn có thể biết mức độ tự do là gì trước khi tính toán tham số chính quy?
Baz

Câu trả lời:


9

Một thuật toán Newton-Raphson / Fisher-points / Taylor-series sẽ phù hợp với điều này.

Bạn có phương trình để giải cho với đạo hàm Sau đó, bạn nhận được: h ( λ ) = p i = 1 d 2 iλ h

h(λ)=i=1pdi2di2+λdf=0
hλ=i=1pdi2(di2+λ)2
h(λ)h(λ(0))+(λλ(0))hλ|λ=λ(0)=0

sắp xếp lại cho bạn nhận được: Điều này thiết lập tìm kiếm lặp. Đối với các giá trị bắt đầu ban đầu, giả sử trong tổng kết, sau đó bạn nhận được .λ

λ=λ(0)[hλ|λ=λ(0)]1h(λ(0))
di2=1λ(0)=pdfdf

λ(j+1)=λ(j)+[i=1pdi2(di2+λ(j))2]1[i=1pdi2di2+λ(j)df]

Điều này "đi" đúng hướng (tăng khi tổng cộng quá lớn, giảm khi quá nhỏ) và thường chỉ mất một vài lần lặp để giải quyết. Hơn nữa chức năng là đơn điệu (tăng / giảm trong sẽ luôn luôn giảm / tăng tổng), do đó, nó sẽ hội tụ duy nhất (không có cực đại cục bộ).λλλ


thnx rất nhiều, nhưng tôi có nghi ngờ tại sao chúng ta cần giả sử , vì chúng ta đã có giá trị chính xác của chúng rồi ... Tôi đã kiểm tra công thức này bằng cách viết mã matlab và không lấy giả định đó , nhưng nó hoạt động tốt và đưa ra giải pháp chính xácdi2=1
Amit

Giả định chỉ là lấy giá trị ban đầu của "đủ gần" với giá trị chính xác. Nếu bạn có một dự đoán tốt hơn, sau đó bắt đầu với điều đó. Bạn thậm chí có thể chỉ cần đặt , miễn là d của bạn lớn hơn 0. Các d không được giả định 1 trong các lần lặp, chỉ để bắt đầu thuật toán. λ ( 0 ) = 0λ(0)λ(0)=0
xác suất

(+1) Dù sao tôi cũng sẽ đưa ra giải pháp số tương tự.
Dmitrij Celov

6

Đây là mã Matlab nhỏ dựa trên công thức được chứng minh bằng xác suất:

function [lamda] = calculate_labda(Xnormalised,df)
    [n,p] = size(Xnormalised);   

    %Finding SVD of data
    [u s v]=svd(Xnormalised);
    Di=diag(s);
    Dsq=Di.^2;

    %Newton-rapson method to solve for lamda
    lamdaPrev=(p-df)/df;
    lamdaCur=Inf;%random large value
    diff=lamdaCur-lamdaPrev;   
    threshold=eps(class(XstdArray));    
    while (diff>threshold)          
        numerator=(sum(Dsq ./ (Dsq+lamdaPrev))-df);        
        denominator=sum(Dsq./((Dsq+lamdaPrev).^2));        
        lamdaCur=lamdaPrev+(numerator/denominator);        
        diff=lamdaCur-lamdaPrev;        
        lamdaPrev=lamdaCur;        
    end
    lamda=lamdaCur;
end

2
Đi đội!
xác suất

Một biên tập viên đã cố gắng lập luận rằng điều kiện while nên là while ( abs(diff)>threshold ).
gung - Phục hồi Monica

Tôi đang đăng bài này như một câu trả lời thay thế cho mã được đăng bởi @Amit. Tôi đề nghị rằng so sánh với ngưỡng trong while( abs(diff) > threshold )bởi vì dung sai cho sự khác biệt phải có thể đạt được từ cả bên trái và bên phải. Ví dụ: giả sử diff = và ngưỡng = thì điều kiện vòng lặp là sai, nhưng rõ ràng giải pháp chưa hội tụ. 1 đ - 161001e16
heuristicwondering
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.