在瞭解如何在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 = "