拓端數據tecdat|R語言中使用非凸懲罰函數回歸(SCAD、MCP)分析前列腺數據


原文鏈接:http://tecdat.cn/?p=20828 

 

本文使用lasso或非凸懲罰擬合線性回歸,GLM和Cox回歸模型的正則化,特別是最小大凹懲罰函數(MCP)和光滑切片絕對偏差懲罰(SCAD),以及其他L2懲罰的選項( “彈性網絡”)。還提供了用於執行交叉驗證以及擬合后可視化,摘要,推斷和預測的實用程序。

我們研究 前列腺數據,它具有8個變量和一個連續因變量,即將進行根治性前列腺切除術的男性的PSA水平(按對數尺度):

  1.  
     
  2.  
    X <- data$X
  3.  
    y <- data$y

要將懲罰回歸模型擬合到此數據,執行以下操作:

reg(X, y)

此處的默認懲罰是最小大凹懲罰函數(MCP),但也可以使用SCAD和lasso懲罰。這將產生一個系數路徑,我們可以繪制

  1.  
     
  2.  
    plot(fit)

注意,變量一次輸入一個模型,並且在λ的任何給定值下,幾個系數均為零。要查看系數是多少,我們可以使用以下 coef 函數:

  1.  
     
  2.  
    coef(fit, lambda=0.05)
  3.  
    # (Intercept) lcavol lweight age lbph svi
  4.  
    # 0.35121089 0.53178994 0.60389694 -0.01530917 0.08874563 0.67256096
  5.  
    # lcp gleason pgg45
  6.  
    # 0.00000000 0.00000000 0.00168038

該 summary 方法可用於后選擇推斷

  1.  
     
  2.  
    summary(fit
  3.  
    # MCP-penalized linear regression with n=97, p=8
  4.  
    # At lambda=0.0500:
  5.  
    # -------------------------------------------------
  6.  
    # Nonzero coefficients : 6
  7.  
    # Expected nonzero coefficients: 2.54
  8.  
    # Average mfdr (6 features) : 0.424
  9.  
    #
  10.  
    # Estimate z mfdr Selected
  11.  
    # lcavol 0.53179 8.880 < 1e-04 *
  12.  
    # svi 0.67256 3.945 0.010189 *
  13.  
    # lweight 0.60390 3.666 0.027894 *
  14.  
    # lbph 0.08875 1.928 0.773014 *
  15.  
    # age -0.01531 -1.788 0.815269 *
  16.  
    # pgg45 0.00168 1.160 0.917570 *

在這種情況下, 即使調整了模型中的其他變量之后,lcavol, svi以及 lweight 顯然與因變量關聯,同時 lbph, age和 pgg45 可能只是偶然包括。通常,為了評估模型在λ的各種值下的預測准確性,將執行交叉驗證:

  1.  
     
  2.  
    plot(cvfit)

使交叉驗證誤差最小的λ的值由 cvfit$lambda.min給出,在這種情況下為0.017。將coef 在return的輸出 應用於 cv.ncvreg λ的值的系數:

  1.  
     
  2.  
    coef
  3.  
    # (Intercept) lcavol lweight age lbph svi
  4.  
    # 0.494154801 0.569546027 0.614419811 -0.020913467 0.097352536 0.752397339
  5.  
    # lcp gleason pgg45
  6.  
    # -0.104959403 0.000000000 0.005324465

可以通過predict來獲得預測值 ,該選項有多種選擇:

  1.  
     
  2.  
    predict(cvfit
  3.  
    # 預測新觀測結果的響應
  4.  
    # 1 2 3 4 5 6
  5.  
    # 0.8304040 0.7650906 0.4262072 0.6230117 1.7449492 0.8449595
  6.  
     
  7.  
    # 非零系數的數量
  8.  
    # 0.01695
  9.  
    # 7
  10.  
     
  11.  
    # 非零系數的特性
  12.  
    # lcavol lweight age lbph svi lcp pgg45
  13.  
    # 1 2 3 4 5 6 8

請注意,原始擬合(至完整數據集)的結果為 cvfit$fit;不必同時調用兩者 ncvreg 和 cv.ncvreg 分析數據集。

如, plot(cvfit$fit) 將產生與上述相同的系數路徑圖 plot(fit) 。


最受歡迎的見解

1.R語言多元Logistic邏輯回歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)

4.R語言泊松Poisson回歸模型分析案例

5.R語言回歸中的Hosmer-Lemeshow擬合優度檢驗

6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現

7.在R語言中實現Logistic邏輯回歸

8.python用線性回歸預測股票價格

9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM