在瞭解如何在JMP進行數據清洗、開始基礎統計分析。本文以及後面的幾篇文章中,我們將分別對線性迴歸的分析過程逐一展開介紹。

在進行線性迴歸多因素分析前,往往需要先進行單因素分析。但是,目前常用的大多數軟體操作單因素分析比較繁瑣,需要不斷替換自變量來重複操作,才能進行多個自變量的單因素分析。

然而,在 JMP 軟體中可以一次性實現全部自變量的單因素分析。 今天的文章就要來分享如何透過JMP 完成一次性多變量的單因子分析。

為什麼要做線性迴歸?

相比前面介紹的僅含一個組別變量的單因素分析,多因素分析在實際中更為常見,因為絕大多數的結局都不止受一個因素影響。如比較兩種不同藥物治療糖尿病的療效,即使兩組間療效有差異,也未必能歸因到藥物因素,因為像BMI、血壓、飲食等諸多因素也會同時影響到藥物治療的效果,如果這些因素在兩組間不均衡,就會影響到藥物的評價效果。因此實際中我們經常要用到多因素分析。

我們通常說的「校正」年齡、性別等因素的影響,或吸煙是肺癌的「獨立預後因素」,這些指的是多因素分析。 線性迴歸常用於定量結局的多因素分析,主要用於描述1個或多個自變量與定量結局的線性關係。 當我們想針對某定量結局進行危險因素探索,通常首先會考慮線性迴歸,如果線性迴歸不合適,再考慮其它替代方法。

線性迴歸的單因素分析

所謂單因素分析,也就是每次做迴歸都先放入 1 個自變量,觀察每一自變量與應變量的關係。

目前很多統計軟體做單因素分析時,只能放入一個自變量,然後做出結果;如果要看另一個自變量的效應,則需要返回重新再操作一次。

試想如果有20個自變量,就需要來回反覆做20次相同的工作。這一過程非常繁瑣也耗時, JMP 軟體則提供了一次性實現所以自變量的單因素分析的工具

以圖1的數據為例,探索軀體健康評分的可能影響因素。

圖1 範例數據(部分展示)

在JMP中依次點擊「分析」菜單→「以X擬合Y」(圖2),在彈出的對話框中將軀體健康評分導入「Y,響應」,將全部自變量導入「X,因子」(圖3)。

圖2「以X擬合Y」的操作示意圖第一步

圖3「以X擬合Y」的操作示意圖第二步

默認輸出結果如圖4所示(僅展示了3個自變量,其餘省略),頁面上僅呈現每個自變量與應變量的散點圖。

圖4 「以X擬合Y」的輸出結果

如果要 查看各個自變量的單因素分析的檢定結果 ,則需在JMP中進行後續的一些操作。需要注意的是,連續變量和分類變量的操作步驟不同。

對於連續變量,以年齡為例,點擊結果界面中「二元擬合」左側的紅色向下箭頭→選擇「擬合線」(圖5)。

圖5 連續變量的單因素分析操作示意圖

輸出結果如圖6所示,從圖中可以看出,年齡與軀體健康評分呈負向線性關係。從統計學檢定結果來看,年齡與軀體健康評分線性的關係在0.05的檢定水準上具有統計學意義(P=0.0275)。

圖6 連續變量的單因素分析結果

對於分類變量,以飲酒為例,點擊「……單因子分析」左側的紅色向下箭頭→選擇「均值/變異數分析/合併的t」(圖7)。

圖7 分類變量的單因素分析操作示意圖

輸出結果如圖8所示,結果中同時給出了t檢定和單因素變異數分析的結果,兩者結果一致。結果顯示飲酒與軀體健康評分的關係不具有統計學意義(P=0.8871)。

圖8 分類變量的單因素結果

看到這裡,你可能會問:在自變量很多的情況下,每個自變量都要操作「擬合線」或「均值/變異數分析/合併的t」,過程會不會很繁瑣?

JMP 中有一種便捷的方式用於解決此問題,能夠非常快速地顯示出全部自變量的統計檢定結果

  • 對於 連續變量,先按 ctrl ,然後點擊任意一項自變量其「二元擬合」左側的紅色向下箭頭→選擇「 擬合線 」,可實現所有連續變量的單因素分析結果的輸出。
  • 對於 分類變量 ,同樣是 先按 ctrl ,然後點擊任意一項分類變量左側的紅色向下箭頭, 選擇 均值 / 變異數分析 / 合併的 t ,可實現所有分類變量的單因素分析結果的輸出。
  • 以上就是今天分享的基於JMP一次性實現全部自變量的單因素分析。之後我們將介紹如何在JMP中開展線性迴歸的多因素分析。敬請期待!

    >> 深入瞭解 JMP 多變量分析

    var data = div.getElementsByClassName("video-js"); var script = document.createElement('script'); script.src = "https://players.brightcove.net/" + data_account + "/" + data_palyer + "_default/index.min.js"; for(var i=0;i< data.length;i++){ videodata.push(data[i]); for(var i=0;i< videodata.length;i++){ document.getElementsByClassName('lia-vid-container')[i].innerHTML = videodata[i].outerHTML; document.body.appendChild(script); catch(e){ /* Re compile html */ $compile(rootElement.querySelectorAll('div.lia-message-body-content')[0])($scope); if (code_l.toLowerCase() != newBody.getAttribute("slang").toLowerCase()) { /* Adding Translation flag */ var tr_obj = $filter('filter')($scope.sourceLangList, function (obj_l) { return obj_l.code.toLowerCase() === newBody.getAttribute("slang").toLowerCase() if (tr_obj.length > 0) { tr_text = "This post originally written in lilicon-trans-text has been computer translated for you. When you reply, it will also be translated back to lilicon-trans-text.".replace(/lilicon-trans-text/g, tr_obj[0].title); try { if ($scope.wootMessages[$rootScope.profLang] != undefined) { tr_text = $scope.wootMessages[$rootScope.profLang].replace(/lilicon-trans-text/g, tr_obj[0].title); } catch (e) { } else { //tr_text = "This message was translated for your convenience!"; tr_text = "This message was translated for your convenience!"; try { if (!document.getElementById("tr-msz-" + value)) { var tr_para = document.createElement("P"); tr_para.setAttribute("id", "tr-msz-" + value); tr_para.setAttribute("class", "tr-msz"); tr_para.style.textAlign = 'justify'; var tr_fTag = document.createElement("IMG"); tr_fTag.setAttribute("class", "tFlag"); tr_fTag.setAttribute("src", "/html/assets/lingoTrFlag.PNG"); tr_fTag.style.marginRight = "5px"; tr_fTag.style.height = "14px"; tr_para.appendChild(tr_fTag); var tr_textNode = document.createTextNode(tr_text); tr_para.appendChild(tr_textNode); /* Woot message only for multi source */ if(rootElement.querySelector(".lia-quilt-forum-message")){ rootElement.querySelector(".lia-quilt-forum-message").appendChild(tr_para); } else if(rootElement.querySelector(".lia-message-view-blog-topic-message")) { rootElement.querySelector(".lia-message-view-blog-topic-message").appendChild(tr_para); } else if(rootElement.querySelector(".lia-quilt-blog-reply-message")){ rootElement.querySelector(".lia-quilt-blog-reply-message").appendChild(tr_para); } else if(rootElement.querySelector(".lia-quilt-tkb-message")){ rootElement.querySelector(".lia-quilt-tkb-message").appendChild(tr_para); } else if(rootElement.querySelector(".lia-quilt-tkb-reply-message")){ rootElement.querySelector(".lia-quilt-tkb-reply-message").insertBefore(tr_para,rootElement.querySelector(".lia-quilt-row.lia-quilt-row-footer")); } else if(rootElement.querySelector(".lia-quilt-idea-message")){ rootElement.querySelector(".lia-quilt-idea-message").appendChild(tr_para); }else if(rootElement.querySelector(".lia-quilt-column-alley-left")){ rootElement.querySelector(".lia-quilt-column-alley-left").appendChild(tr_para); else { if (rootElement.querySelectorAll('div.lia-quilt-row-footer').length > 0) { rootElement.querySelectorAll('div.lia-quilt-row-footer')[0].appendChild(tr_para); } else { rootElement.querySelectorAll('div.lia-quilt-column-message-footer')[0].appendChild(tr_para); } catch (e) { } else { /* Do not display button for same language */ // syncList.remove(value); var index = $scope.syncList.indexOf(value); if (index > -1) { $scope.syncList.splice(index, 1); angular.forEach(mszList_l, function (value) { if (document.querySelectorAll('div.lia-js-data-messageUid-' + value).length > 0) { var rootElements = document.querySelectorAll('div.lia-js-data-messageUid-' + value); }else if(document.querySelectorAll('.lia-occasion-message-view .lia-component-occasion-message-view').length >0){ var rootElements = document.querySelectorAll('.lia-occasion-message-view .lia-component-occasion-message-view')[0].querySelectorAll('.lia-occasion-description')[0]; }else { var rootElements = document.querySelectorAll('div.message-uid-' + value); angular.forEach(rootElements, function (rootElement) { if (value == '498289' && "BlogArticlePage" == "TkbArticlePage") { rootElement = document.querySelector('.lia-thread-topic'); /* V1.1 Remove from UI */ if (document.getElementById("tr-msz-" + value)) { document.getElementById("tr-msz-" + value).remove(); if (document.getElementById("tr-sync-" + value)) { document.getElementById("tr-sync-" + value).remove(); /* XPath expression for subject and Body */ var lingoRBExp = "//lingo-body[@id = " + "'lingo-body-" + value + "'" + "]"; lingoRSExp = "//lingo-sub[@id = " + "'lingo-sub-" + value + "'" + "]"; /* Get translated subject of the message */ lingoRSXML = doc.evaluate(lingoRSExp, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0; i < lingoRSXML.snapshotLength; i++) { /* Replace Reply/Comment subject with transalted subject */ var newSub = lingoRSXML.snapshotItem(i); /*** START : extracting subject from source if selected language and source language is same **/ var sub_L = ""; if (newSub.getAttribute("slang").toLowerCase() == code_l.toLowerCase()) { if (value == '498289') { sub_L = decodeURIComponent($scope.sourceContent[value].subject); else{ sub_L = decodeURIComponent($scope.sourceContent[value].subject); } else { sub_L = newSub.innerHTML; /*** End : extracting subject from source if selected language and source language is same **/ /* This code is placed to remove the extra meta tag adding in the UI*/ sub_L = sub_L.replace('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',''); catch(e){ // if($scope.viewTrContentOnly || (newSub.getAttribute("slang").toLowerCase() != code_l.toLowerCase())) { if ($scope.viewTrContentOnly) { if ("BlogArticlePage" == "IdeaPage") { if (value == '498289') { if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ document.querySelector('.MessageSubject .lia-message-subject').innerHTML = sub_L; if ("BlogArticlePage" == "TkbArticlePage") { if (value == '498289') { if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ var subTkbElement = document.querySelector('.lia-thread-subject'); if(subTkbElement){ document.querySelector('.lia-thread-subject').innerHTML = sub_L; else if ("BlogArticlePage" == "BlogArticlePage") { if (value == '498289') { try { if((sub_L != "") && (sub_L!= undefined) && (sub_L != "undefined")){ var subElement = rootElement.querySelector('.lia-blog-article-page-article-subject'); if(subElement) { subElement.innerText = sub_L; } catch (e) { /* var subElement = rootElement.querySelectorAll('.lia-blog-article-page-article-subject'); for (var subI = 0; subI < subElement.length; subI++) { if((sub_L != "") && (sub_L!= undefined) && (sub_L != "undefined")){ subElement[subI].innerHTML = sub_L; else { try { // rootElement.querySelectorAll('.lia-blog-article-page-article-subject').innerHTML= sub_L; /** var subElement = rootElement.querySelectorAll('.lia-blog-article-page-article-subject'); for (var j = 0; j < subElement.length; j++) { if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ subElement[j].innerHTML = sub_L; } **/ } catch (e) { else { if (value == '498289') { /* Start: This code is written by iTalent as part of iTrack LILICON - 98 */ if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ if(document.querySelectorAll('.lia-quilt-forum-topic-page').length > 0){ if(rootElement.querySelector('div.lia-message-subject').querySelector('h5')){ rootElement.querySelector('div.lia-message-subject').querySelector('h5').innerText = decodeURIComponent(sub_L); } else { rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L; } else { rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L; /* End: This code is written by iTalent as part of iTrack LILICON - 98 */ catch(e){ console.log("subject not available for second time. error details: " + e); } else { try { /* Start: This code is written by iTalent as part of LILICON - 98 reported by Ian */ if ("BlogArticlePage" == "IdeaPage") { if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ document.querySelector('.lia-js-data-messageUid-'+ value).querySelector('.MessageSubject .lia-message-subject').innerText = sub_L; else{ if( (sub_L != "") && (sub_L != undefined) && (sub_L != "undefined") ){ rootElement.querySelector('.MessageSubject .lia-message-subject').innerText = sub_L; /* End: This code is written as part of LILICON - 98 reported by Ian */ } catch (e) { console.log("Reply subject not available. error details: " + e); // Label translation var labelEle = document.querySelector("#labelsForMessage"); if (!labelEle) { labelEle = document.querySelector(".LabelsList"); if (labelEle) { var listContains = labelEle.querySelector('.label'); if (listContains) { /* Commenting this code as bussiness want to point search with source language label */ // var tagHLink = labelEle.querySelectorAll(".label")[0].querySelector(".label-link").href.split("label-name")[0]; var lingoLabelExp = "//lingo-label/text()"; trLabels = []; trLabelsHtml = ""; /* Get translated labels of the message */ lingoLXML = doc.evaluate(lingoLabelExp, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); /* try{ for(var j=0;j ,'; trLabelsHtml = trLabelsHtml+'
  • '+lTex+'
  • '; var tagHLink = labelEle.querySelectorAll(".label")[j].querySelector(".label-link").href; trLabelsHtml = trLabelsHtml+'
  • '+lTex+'
  • '; } catch(e){} */ var labelsLength = document.querySelector(".LabelsList").querySelectorAll(".label").length; var labelSnapshotLength = lingoLXML.snapshotLength; if (labelsLength == labelSnapshotLength){ for (var k = 0; k < lingoLXML.snapshotLength; k++) { //trLabels.push(lingoLXML.snapshotItem(i).textContent); if (k != 0) { //trLabelsHtml = trLabelsHtml + '
  • ,
  • '; //diffVariable = kValue if(labelEle.querySelectorAll(".label")[k]){ tagHLink = labelEle.querySelectorAll(".label")[k].querySelector(".label-link").href; if ("BlogArticlePage" == "BlogArticlePage") { trLabelsHtml = trLabelsHtml + '
  • ' + lingoLXML.snapshotItem(k).textContent + '
  • '; else { trLabelsHtml = trLabelsHtml + '
  • ' + lingoLXML.snapshotItem(k).textContent + '
  • '; catch(e){ catch(e){ if (newSub.getAttribute("slang").toLowerCase() != code_l.toLowerCase()) { if (trLabelsHtml != "") { labelEle.querySelector("ul").innerHTML = ""; labelEle.querySelector("ul").innerHTML = trLabelsHtml; // trLabels = trLabels.split(","); // trLabels = reverseArr(trLabels); // var tagHLink = labelEle.querySelectorAll(".label")[0].querySelector(".label-link").href.split("label-name")[0]; // cELabels = labelEle.querySelectorAll(".label"); // //cELabels = reverseArr(cELabels); // for(var cE=0; cE < trLabels.length; cE++) { // if(trLabels[cE]){ // cELabels[cE].querySelector(".label-link").text = trLabels[cE]; // } // } /* V 2.0:3 = Store not translated reply id */ if (lingoRSXML.snapshotLength == 0) { if ($scope.falseReplyID == "") { $scope.falseReplyID = value; /* Get translated Body of Replies/Comments */ lingoRBXML = doc.evaluate(lingoRBExp, doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); /* Replace Reply/Comment Body with translated Body */ for (var i = 0; i < lingoRBXML.snapshotLength; i++) { var newBody = lingoRBXML.snapshotItem(i); /* try { var cPTags = newBody.getElementsByTagName("p"); var searchText = "