1. 程式人生 > >分類資料之logistic迴歸

分類資料之logistic迴歸

/*
分類變數分析之logistc(一),因變數為二分類變數
資料coronary中ca為二分類因變數,sex、ecg為二分類自變數,所有的二分類變數
用0、1進行區別,構成(0,1)矩陣
*/
data coronary;
   input sex ecg ca count @@;
   datalines;
0 0 0 11 0 0 1 4
0 1 0 10 0 1 1 8
1 0 0 9 1 0 1 9
1 1 0 6 1 1 1 21
;
*scale選項用於對過度離散資料校正; descending,應變數ca按降序排序,
 sas中按y=1的概率建模,即ordered value為1對應y的取值
 output語句設定輸出結果,這裡結果存在predict資料中,預測值為prob
;
proc logistic data=coronary descending;
   freq count;
   model ca=sex ecg / scale=none aggregate;
   output out=predict pred=prob;
run;
proc print data=predict;run;

*ods select:考慮交叉影響的引數估計剝離;
ods select FitStatistics ParameterEstimates;
proc logistic descending;
   freq count;
   model ca=sex ecg sex*ecg;
run;

*二、條件變數,class;
*sentence是二分類因變數,type、prior為二分類字元型自變數;
data sentence;
   input type $ prior $ sentence $ count @@;
   datalines;
nrb some y 42 nrb some n 109
nrb none y 17 nrb none n 75
other some y 33 other some n 175
other none y 53 other none n 359
;
*class:對分類變數進行0-1處理,
 ref= :設定參照水平,這裡ref=first表示some作為參照水平
 scale:指定離散引數估算方法,校正離散情況,給出“偏差和 Pearson 擬合優度統計量” 
 aggregate:設定皮爾遜卡方檢驗統計量
;
proc logistic data=sentence descending;
   class type prior(ref=first) / param=ref;
   freq count;
   model sentence = type prior / scale=none aggregate;
run;
*擬合優度剝離;
ods select GoodnessOfFit;
proc logistic descending;
   class type prior (ref=first) / param=ref;
   freq count;
   model sentence = type / scale=none aggregate=(type prior);
run;
*從sas結果中剝離分類水平、擬合優度、引數估計、似然比情況,單獨顯示;
ods select ClassLevelInfo GoodnessOfFit 
           ParameterEstimates OddsRatios;
proc logistic data=sentence descending;
   class type prior(ref='none');
   freq count;
   model sentence = type prior / scale=none aggregate;
run;

*三、自變數是定性變數;
data uti;
   input diagnosis : $13. treatment $ response $ count @@;
   datalines;
complicated A cured 78 complicated A not 28
complicated B cured 101 complicated B not 11
complicated C cured 68 complicated C not 46
uncomplicated A cured 40 uncomplicated A not 5
uncomplicated B cured 54 uncomplicated B not 5
uncomplicated C cured 34 uncomplicated C not 6
;
run;
ods select FitStatistics;
proc logistic;
   freq count;
   class diagnosis treatment /param=ref;
   model response = diagnosis|treatment;
run;

ods select FitStatistics GoodnessOfFit
           TypeIII OddsRatios;
proc logistic;
   freq count;
   class diagnosis treatment;
   model response = diagnosis treatment /
   scale=none aggregate;
run;

*clodds:計算似然比的置信區間
 clparm: 計算引數的置信區間
;
ods select ClparmPL CloddsPL;
proc logistic;
   freq count;
   class diagnosis treatment;
   model response = diagnosis treatment /
   scale=none aggregate clodds=pl clparm=pl;
run;

*contrast:定製假設檢驗的方式,變數需要是矩陣形式
;
ods select ContrastTest ContrastEstimate;
proc logistic;
   freq count;
   class diagnosis treatment /param=ref;
   model response = diagnosis treatment;
   contrast 'B versus A' treatment -1 1
            / estimate=exp;
   contrast 'A' treatment 1 0;
   contrast 'joint test' treatment 1 0,
                         treatment 0 1;
run;

*四、自變數連續有序的情況;
data coronary;
   input sex ecg age ca @@ ;
   datalines;
0 0 28 0 1 0 42 1 0 1 46 0 1 1 45 0
0 0 34 0 1 0 44 1 0 1 48 1 1 1 45 1
0 0 38 0 1 0 45 0 0 1 49 0 1 1 45 1
0 0 41 1 1 0 46 0 0 1 49 0 1 1 46 1
0 0 44 0 1 0 48 0 0 1 52 0 1 1 48 1
0 0 45 1 1 0 50 0 0 1 53 1 1 1 57 1
0 0 46 0 1 0 52 1 0 1 54 1 1 1 57 1
0 0 47 0 1 0 52 1 0 1 55 0 1 1 59 1
0 0 50 0 1 0 54 0 0 1 57 1 1 1 60 1
0 0 51 0 1 0 55 0 0 2 46 1 1 1 63 1
0 0 51 0 1 0 59 1 0 2 48 0 1 2 35 0
0 0 53 0 1 0 59 1 0 2 57 1 1 2 37 1
0 0 55 1 1 1 32 0 0 2 60 1 1 2 43 1
0 0 59 0 1 1 37 0 1 0 30 0 1 2 47 1
0 0 60 1 1 1 38 1 1 0 34 0 1 2 48 1
0 1 32 1 1 1 38 1 1 0 36 1 1 2 49 0
0 1 33 0 1 1 42 1 1 0 38 1 1 2 58 1
0 1 35 0 1 1 43 0 1 0 39 0 1 2 59 1
0 1 39 0 1 1 43 1 1 0 42 0 1 2 60 1
0 1 40 0 1 1 44 1
;
run;
*擬合logistic模型
 selection用於選擇逐步迴歸方法,包括forward,backward,stepwise
 include:設定每個擬合模型中包含model語句中列的因子的個數
 units :可以設定想要計算的似然比odds ratios
;
proc logistic data=coronary descending;
   model ca=sex ecg age ecg*ecg age*age
         sex*ecg sex*age ecg*age /
         selection=forward include=3 details lackfit;
run;
proc logistic descending;
   model ca=sex ecg age;
   units age=10;
run;

*五、logistic迴歸診斷;
data uti2;
   input diagnosis : $13. treatment $ response trials;
   datalines;
complicated A 78 106
complicated B 101 112
complicated C 68 114
uncomplicated A 40 45
uncomplicated B 54 59
uncomplicated C 34 40
;
*INFLUENCE診斷;
proc logistic data=uti2;
   class diagnosis treatment / param=ref;
   model response/trials = diagnosis treatment/influence;
run;
proc logistic data=uti2;
   class diagnosis treatment / param=ref;
   model response/trials = diagnosis/scale=none 
                                     aggregate=(treatment diagnosis) 
                                     influence 
                                     iplots;
run;

*精確logistic迴歸方法,exact;
data liver;
   input time $ group $ status $ count @@;
   datalines;
early antidote severe 6 early antidote not 12
early control severe 6 early control not 2
delayed antidote severe 3 delayed antidote not 4
delayed control severe 3 delayed control not 0
late antidote severe 5 late antidote not 1
late control severe 6 late control not 0
;
*estimate=both,表示對第一個exact語句中指定的變數進行精確點估計
 joint,表示對第二個exact中time、group進行聯合檢驗
;
proc logistic descending;
   freq count;
   class time(ref='early') group(ref='control') /param=ref;
   model status = time group / scale=none aggregate clparm=wald;
   exact 'Model 1' intercept time group / estimate=both;
   exact 'Joint Test' time group / joint;
run;

相關推薦

分類資料logistic迴歸

/* 分類變數分析之logistc(一),因變數為二分類變數 資料coronary中ca為二分類因變數,sex、ecg為二分類自變數,所有的二分類變數 用0、1進行區別,構成(0,1)矩陣 */ data coronary; input sex ecg ca coun

機器學習logistic迴歸分類

logistic迴歸與分類是一種簡單的分類演算法。在分類的過程中只需要找到一個劃分不同類的權重向量即可,對新的資料只需要乘上這個向量並比較就可以得到分類。比如下圖的二分類問題: 每個樣本點可以看成包含兩個特徵(x1,x2),現在需要把他們分開,如果這是訓練

linear regression for classification +隨機梯度下降+多分類logistic迴歸+多分類線性分類投票法

將 線性迴歸 ,logistic 迴歸 用在 分類 上面 我們回顧一下上節所學習的內容。總共學習了三種線性模型(線性分類,線性迴歸,logistic 迴歸),他們的核心都是 他們三種情況分別為 那麼問題是,能否將線性迴歸,logistic

神經網路入門Logistic迴歸分類問題)

Logistic迴歸(分類問題) 這部分教程將介紹一部分: Logistic分類模型 我們在上次的教程中給出了一個很簡單的模型,只有一個輸入和一個輸出。在這篇教程中,我們將構建一個二分類模型,輸入引數是兩個變數。這個模型在統計上被稱為Logistic迴歸模型,網路結構可

機器學習logistic迴歸演算法與程式碼實現

                                       Logistic迴歸演算法與程式

機器學習logistic迴歸

logistic迴歸又稱logistic迴歸分析,是一種廣義的線性迴歸分析模型,它解決的是分類問題,常用於資料探勘,疾病自動診斷,經濟預測等領域。 1.logistic迴歸和線性迴歸的區別 logistic迴歸和線性迴歸的區別在於以下幾點: 1)線性迴歸要求變數

機器學習 Logistic 迴歸(邏輯迴歸)

目錄 Logistic迴歸 部落格園地址:https://www.cnblogs.com/chenyoude/ git 地址:https://github.com/nickcyd/machine_learning 微信:a1171958281 Logistic 迴

分類演算法邏輯迴歸詳解

1、邏輯迴歸(Logistic Regression, LR) 又稱為邏輯迴歸分析,是分類和預測演算法中的一種。通過歷史資料的表現對未來結果發生的概率進行預測。例如,我們可以將購買的概率設定為因變數,將使用者的特徵屬性,例如性別,年齡,註冊時間等設定為自變數。

機器學習logistic迴歸的梯度上升演算法

#coding=utf-8#logistic迴歸的梯度上升法from numpy import *import matplotlib.pyplot as plt#載入資料集def loadDataSet():     dataMat = [];     labelMat = []     fr = open(

分類資料列聯表分析案例with sas

*表一,隨機設計四格表; options validvarname=any; data test1; input 用藥 $ 敏感性 $ 計數; datalines; 服藥 不敏感 180 服藥 敏感 215 未服藥 不敏感 73 未服藥 敏感 106 ; p

KerasDNN:基於Keras(sigmoid+linear+mse+predict)利用DNN實現迴歸預測——DIY多分類資料集&預測新資料

Keras之DNN:基於Keras(sigmoid+linear+mse+predict)利用DNN實現迴歸預測——DIY多分類資料集&預測新資料點 輸出結果 實現程式碼 # coding:utf-8 Xa=[] Xb=[] for i in ra

ML分類預測ElasticNet:利用ElasticNet迴歸對二分類資料集構建二分類器(DIY交叉驗證+分類的兩種度量PK)

ML之分類預測之ElasticNet:利用ElasticNet迴歸對二分類資料集構建二分類器(DIY交叉驗證+分類的兩種度量PK) 輸出結果   設計思路   核心程式碼 #(4)交叉驗證 for ixval in range(

Spark2.0機器學習系列2:Logistic迴歸及Binary分類(二分問題)結果評估

引數設定 α: 梯度上升演算法迭代時候權重更新公式中包含 α : # 梯度上升演算法-計算迴歸係數 # 每個迴歸係數初始化為1 # 重複R次: # 計算整個資料集的梯度 # 使用α*梯度更新迴歸係數的向量 # 返回迴歸係數

資料學習(1)·線性迴歸Logistic迴歸

本系列是作者上課時記錄的筆記整理,同時有對應的作業習題,自學的同學參考部落格同步即可。郵箱聯絡[email protected] Preview: 監督學習(第一部分) 線性迴歸 Logistic迴歸 Softmax迴歸

線性分類模型(二):logistic迴歸模型分析

前言 上一篇文章介紹了線性判別模型,本文介紹線性生成模型——logistic迴歸模型。本文介紹logstic迴歸模型相關的知識,為了更好理解模型的決策邊界函式,本文同時分析了多元變數的協方差對概率分佈的影響。   目錄 1、logistic迴歸模型的含義 2、l

Logistic迴歸梯度上升優化演算法(二)

Logistic迴歸之梯度上升優化演算法(二) 有了上一篇的知識儲備,這一篇部落格我們就開始Python3實戰 1、資料準備 資料集:資料集下載 資料集內容比較簡單,我們可以簡單理解為第一列X,第二列Y,第三列是分類標籤。根據標籤的不同,對這些資料點進行分類。  

Logistic迴歸梯度上升優化演算法(一)

Logistic迴歸之梯度上升優化演算法 一、Logistic迴歸 首先我們需要了解什麼是Logistic迴歸。Logistic迴歸是一種分類演算法,一般用於二分類問題,例如預測明天是否下雨,當然也可以用於多分類問題。本文主要是討論二分類問題。二分類問題即輸出結果一般只有兩個情況,我們可以理

Logistic迴歸梯度上升優化演算法(四)

Logistic迴歸之梯度上升優化演算法(四) 從疝氣病症狀預測病馬的死亡率 1、實戰背景 我們使用Logistic迴歸來預測患疝氣病的馬的存活問題。原始資料集點選這裡下載。資料中一個包含了368個樣本和28個特徵。這種病不一定源自馬的腸胃問題,其他問題也可能引發疝氣病。該資料集中包含了

Logistic迴歸梯度上升優化演算法(三)

Logistic迴歸之梯度上升優化演算法(三) 1、改進的隨機梯度上升演算法 前面兩節講了Logistic迴歸以及裡面常用的梯度上升優化演算法來找到最佳迴歸係數。但是梯度上升優化演算法的計算量很大,每次更新迴歸係數時都需要遍歷整個資料集。下面給出之前所講的梯度上升演算法: def gra