R (log၊ square root၊ cube root) ဖြင့် data ကိုဘယ်လိုပြောင်းမလဲ
ကိန်းဂဏန်းစစ်ဆေးမှုများစွာသည် တုံ့ပြန်မှုကိန်းရှင် ၏ ကျန်ရှိသောများကို ပုံမှန်အတိုင်း ဖြန့်ဝေသည်ဟု ယူဆသည်။
သို့သော် အကြွင်းအကျန်များကို ပုံမှန်အားဖြင့် ဖြန့်ဝေလေ့ မရှိပါ ။ ဤပြဿနာကိုဖြေရှင်းရန် နည်းလမ်းတစ်ခုမှာ အသွင်ပြောင်းမှုသုံးခုအနက်မှ တစ်ခုကို အသုံးပြု၍ တုံ့ပြန်မှုကိန်းရှင်ကို ပြောင်းလဲရန်ဖြစ်သည်-
1. မှတ်တမ်းအသွင်ပြောင်းခြင်း- တုံ့ပြန်မှုကိန်းရှင်ကို y မှ log(y) သို့ ပြောင်းလဲပါ။
2. စတုရန်းအမြစ်အသွင်ပြောင်းခြင်း- တုံ့ပြန်မှုကိန်းရှင်ကို y မှ √y သို့ ပြောင်းလဲပါ။
3. Cube root အသွင်ပြောင်းခြင်း- တုံ့ပြန်မှု variable ကို y မှ y 1/3 သို့ပြောင်းပါ။
ဤအသွင်ပြောင်းမှုများကို လုပ်ဆောင်ခြင်းဖြင့်၊ တုံ့ပြန်မှုကိန်းရှင်သည် ယေဘုယျအားဖြင့် ပုံမှန်ဖြန့်ဝေမှုကို အနီးစပ်ဆုံး ခန့်မှန်းပါသည်။ အောက်ဖော်ပြပါ ဥပမာများသည် ဤအသွင်ပြောင်းမှုများကို R တွင် မည်သို့လုပ်ဆောင်ရမည်ကို ပြသထားသည်။
R တွင် မှတ်တမ်းအသွင်ပြောင်းခြင်း
အောက်ဖော်ပြပါ ကုဒ်သည် တုံ့ပြန်မှု ကိန်းရှင်တစ်ခုပေါ်တွင် မှတ်တမ်းအသွင်ပြောင်းခြင်းကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသသည်-
#create data frame df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8), x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8), x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7)) #perform log transformation log_y <- log10(df$y)
မှတ်တမ်းအသွင်ပြောင်းခြင်းကို မလုပ်ဆောင်မီနှင့် အပြီးတွင် y ၏ဖြန့်ဝေမှုကိုပြသရန် အောက်ပါကုဒ်သည် ဟီစတိုဂရမ်များကို ဖန်တီးနည်းကို ပြသသည်-
#create histogram for original distribution hist(df$y, col='steelblue', main='Original') #create histogram for log-transformed distribution hist(log_y, col='coral2', main='Log Transformed')

မှတ်တမ်းပုံစံပြောင်းထားသော ဖြန့်ဝေမှုသည် မူရင်းဖြန့်ဖြူးမှုထက် ပိုမိုသာလွန်သည်ကို သတိပြုပါ။ ၎င်းသည် ပြီးပြည့်စုံသော “ ခေါင်းလောင်းပုံသဏ္ဍာန်” မဟုတ်သေးသော်လည်း ၎င်းသည် မူရင်းဖြန့်ဖြူးမှုထက် ပုံမှန်ဖြန့်ဖြူးမှုနှင့် ပိုမိုနီးစပ်ပါသည်။
အမှန်မှာ၊ ကျွန်ုပ်တို့သည် ဖြန့်ဖြူးမှုတစ်ခုစီတွင် Shapiro-Wilk စမ်းသပ်မှု ပြုလုပ်ပါက၊ မူရင်းဖြန့်ဖြူးမှုသည် ပုံမှန်ယူဆချက်ပျက်ကွက်သည်ကို တွေ့ရမည်ဖြစ်ပြီး၊ မှတ်တမ်းပုံစံပြောင်းလဲထားသော ဖြန့်ဝေမှုသည် (α = 0.05) တွင်မရှိသော်လည်း၊
#perform Shapiro-Wilk Test on original data shapiro.test(df$y) Shapiro-Wilk normality test data: df$y W = 0.77225, p-value = 0.001655 #perform Shapiro-Wilk Test on log-transformed data shapiro.test(log_y) Shapiro-Wilk normality test data:log_y W = 0.89089, p-value = 0.06917
R တွင် စတုရန်းအမြစ်အသွင်ပြောင်းခြင်း
အောက်ဖော်ပြပါ ကုဒ်သည် တုံ့ပြန်မှု ကိန်းရှင်တစ်ခုပေါ်တွင် စတုရန်းအမြစ်အသွင်ပြောင်းခြင်းကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသသည်-
#create data frame df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8), x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8), x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7)) #perform square root transformation sqrt_y <- sqrt(df$y)
လေးထောင့်ပုံသဏ္ဍာန်ပြောင်းလဲခြင်း မလုပ်ဆောင်မီနှင့် အပြီးတွင် y ၏ဖြန့်ဝေမှုကိုပြသရန် အောက်ပါကုဒ်သည် ဟီစတိုဂရမ်များကို ဖန်တီးနည်းကို ပြသသည်-
#create histogram for original distribution hist(df$y, col='steelblue', main='Original') #create histogram for square root-transformed distribution hist(sqrt_y, col='coral2', main='Square Root Transformed')

စတုရန်းရော့ ဖြန့်ဖြူးမှုသည် မူရင်းဖြန့်ဖြူးမှုထက် ပုံမှန်ဖြန့်ဝေနည်းကို သတိပြုပါ။
R တွင် Cube အမြစ်အသွင်ပြောင်းခြင်း
အောက်ပါ ကုဒ်သည် တုံ့ပြန်မှု ကိန်းရှင်တစ်ခုပေါ်တွင် cube root အသွင်ပြောင်းခြင်းကို မည်သို့လုပ်ဆောင်ရမည်ကို ပြသသည်-
#create data frame df <- data.frame(y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7, 8), x1=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5, 8), x2=c(3, 3, 6, 6, 8, 9, 9, 8, 8, 7, 4, 3, 3, 2, 7)) #perform square root transformation cube_y <- df$y^(1/3)
လေးထောင့်ပုံသဏ္ဍာန်ပြောင်းလဲခြင်းမလုပ်ဆောင်မီနှင့် y ၏ဖြန့်ဝေမှုကိုပြသရန် အောက်ပါကုဒ်သည် ဟစ်စတိုဂရမ်များဖန်တီးနည်းကို ပြသသည်-
#create histogram for original distribution hist(df$y, col='steelblue', main='Original') #create histogram for square root-transformed distribution hist(cube_y, col='coral2', main='Cube Root Transformed')

သင့်ဒေတာအစုံပေါ် မူတည်၍ ဤအသွင်ပြောင်းမှုများထဲမှ တစ်ခုသည် အခြားအရာများထက် ပုံမှန်ဖြန့်ဝေထားသော ဒေတာအတွဲအသစ်ကို ထုတ်လုပ်နိုင်ပါသည်။