จะเกิดอะไรขึ้นถ้าข้อมูลการถดถอยเชิงเส้นของฉันมีความสัมพันธ์เชิงเส้นแบบร่วมหลายตัว


34

สมมติว่าฉันกำลังศึกษาว่าดอกแดฟโฟดิลตอบสนองต่อสภาพดินต่าง ๆ อย่างไร ฉันได้รวบรวมข้อมูลเกี่ยวกับค่าความเป็นกรดของดินกับความสูงของดอกแดฟโฟดิล ฉันคาดว่าจะมีความสัมพันธ์เชิงเส้นดังนั้นฉันจะดำเนินการเกี่ยวกับการถดถอยเชิงเส้น

อย่างไรก็ตามฉันไม่ได้ตระหนักถึงเมื่อฉันเริ่มการศึกษาของฉันว่าประชากรมีดอกแดฟโฟดิลสองพันธุ์ซึ่งแต่ละชนิดตอบสนองต่อค่า pH ของดินต่างกันมาก ดังนั้นกราฟจึงมีความสัมพันธ์เชิงเส้นที่แตกต่างกันสองแบบ:

ค่า pH ของดินเทียบกับความสูงของดอกไม้ (ซม.)

ฉันสามารถคัดแยกและแยกมันด้วยตนเองได้แน่นอน แต่ฉันสงสัยว่ามีวิธีการที่เข้มงวดกว่านี้หรือไม่

คำถาม:

  1. มีการทดสอบทางสถิติเพื่อพิจารณาว่าชุดข้อมูลจะเหมาะสมกว่าโดยใช้เพียงบรรทัดเดียวหรือ N บรรทัดหรือไม่?

  2. ฉันจะรันการถดถอยเชิงเส้นเพื่อให้พอดีกับเส้น N ได้อย่างไร กล่าวอีกนัยหนึ่งฉันจะคลี่คลายข้อมูลร่วมกันได้อย่างไร

ฉันคิดว่าวิธีการผสมผสานบางอย่างอาจมีราคาแพง


ชี้แจง:

  1. การมีอยู่ของสองสายพันธุ์นั้นไม่เป็นที่รู้จักในเวลาที่ทำการรวบรวมข้อมูล ไม่พบความหลากหลายของแดฟโฟดิลแต่ละชนิดไม่สังเกตและไม่บันทึก

  2. ไม่สามารถกู้คืนข้อมูลนี้ได้ แดฟโฟดิลเสียชีวิตตั้งแต่เวลารวบรวมข้อมูล

ฉันมีความประทับใจว่าปัญหานี้เป็นสิ่งที่คล้ายกับการใช้อัลกอริทึมการจัดกลุ่มซึ่งคุณเกือบจะต้องรู้จำนวนกลุ่มก่อนที่จะเริ่ม ฉันเชื่อว่าด้วยชุดข้อมูลใด ๆ การเพิ่มจำนวนบรรทัดจะลดข้อผิดพลาด rms ทั้งหมด ในสุดขีดคุณสามารถแบ่งชุดข้อมูลของคุณเป็นคู่โดยพลการและวาดเส้นผ่านแต่ละคู่ (เช่นถ้าคุณมี 1,000 จุดข้อมูลคุณสามารถแบ่งพวกมันออกเป็น 500 คู่โดยพลการและวาดเส้นผ่านแต่ละคู่) ความพอดีจะแน่นอนและข้อผิดพลาด rms จะเป็นศูนย์อย่างแน่นอน แต่นั่นไม่ใช่สิ่งที่เราต้องการ เราต้องการจำนวนบรรทัด "ถูกต้อง"


1
ที่เกี่ยวข้องstats.stackexchange.com/questions/245902/...
rep_ho

3
คุณรู้หรือไม่ว่าดาฟาโดะคนใดบ้าง ถ้าเป็นเช่นนั้นคุณสามารถรวมข้อมูลนั้นไว้ในแบบจำลองของคุณได้
rep_ho

1
นี่เป็นกรณีคลาสสิคของการโต้ตอบทางสถิติในคำตอบของ @Demetri Pananos
rolando2

2
ฉันรู้สึกว่าพวกเขาไม่มีข้อมูลเกี่ยวกับดอกไม้ที่มีความหลากหลายในข้อมูลของพวกเขา ฉันยอมรับว่าหากพวกเขามีสิ่งนั้นสิ่งนี้จะเป็นเพียงกรณีของการสร้างแบบจำลองการมีปฏิสัมพันธ์หรือแม้กระทั่งแยกการถดถอยแบบแยกกันสำหรับแต่ละสายพันธุ์ อย่างไรก็ตามหากพวกเขาไม่มีข้อมูลนั้นความหวังทั้งหมดก็จะสูญหายไป เราสามารถสร้างแบบจำลองที่ไม่เพียง แต่ประมาณเส้นแยกเท่านั้น แต่ยังทำนายความน่าจะเป็นที่การสังเกตแต่ละครั้งเป็นของกลุ่มใดกลุ่มหนึ่ง
Dason

1
@DemetriPananos ฉันให้คำตอบที่หวังว่าจะทำให้รู้สึก ขึ้นอยู่กับสิ่งที่พวกเขาต้องการที่จะทำมันเป็นงานที่ค่อนข้างมาก ในการทำการทดสอบบางประเภทคุณจะต้องทำการทดสอบอัตราส่วนความน่าจะเป็นหรือการทดสอบแบบสุ่มหรือบางอย่าง แต่พวกเขาไม่ได้ให้ข้อมูลเรามากเกินไปและหากเป้าหมายเพียงเพื่อให้พอดีกับเส้นและพวกเขาไม่มีป้ายกำกับแล้วก็ไม่เลวร้ายที่จะใช้แพ็คเกจ mixtools
Dason

คำตอบ:


31

ฉันคิดว่าคำตอบของ Demetri เป็นคำตอบที่ดีมากถ้าเราคิดว่าคุณมีป้ายกำกับสำหรับสายพันธุ์ต่าง ๆ เมื่อฉันอ่านคำถามของคุณที่ดูเหมือนจะไม่เป็นอย่างนั้นกับฉัน เราสามารถใช้วิธีการตามอัลกอริทึม EM เพื่อให้พอดีกับโมเดลที่ Demetri แนะนำ แต่โดยไม่ทราบว่าฉลากมีความหลากหลาย โชคดีที่แพ็คเกจ mixtools ใน R มีฟังก์ชันนี้ให้เรา เนื่องจากข้อมูลของคุณค่อนข้างแยกออกจากกันและดูเหมือนว่าคุณจะค่อนข้างประสบความสำเร็จ

library(mixtools)

# Generate some fake data that looks kind of like yours
n1 <- 150
ph1 = runif(n1, 5.1, 7.8)
y1 <- 41.55 + 5.185*ph1 + rnorm(n1, 0, .25)

n2 <- 150
ph2 <- runif(n2, 5.3, 8)
y2 <- 65.14 + 1.48148*ph2 + rnorm(n2, 0, 0.25)

# There are definitely better ways to do all of this but oh well
dat <- data.frame(ph = c(ph1, ph2), 
                  y = c(y1, y2), 
                  group = rep(c(1,2), times = c(n1, n2)))

# Looks about right
plot(dat$ph, dat$y)

# Fit the regression. One line for each component. This defaults
# to assuming there are two underlying groups/components in the data
out <- regmixEM(y = dat$y, x = dat$ph, addintercept = T)

เราสามารถตรวจสอบผลลัพธ์

> summary(out)
summary of regmixEM object:
          comp 1    comp 2
lambda  0.497393  0.502607
sigma   0.248649  0.231388
beta1  64.655578 41.514342
beta2   1.557906  5.190076
loglik at estimate:  -182.4186 

มันพอดีกับการถดถอยสองอันและประมาณว่า 49.7% ของการสังเกตตกอยู่ในการถดถอยสำหรับองค์ประกอบที่ 1 และ 50.2% ตกอยู่ในการถดถอยสำหรับองค์ประกอบที่ 2 วิธีที่ฉันจำลองข้อมูลมันแยก 50-50 ดังนั้นนี่จึงเป็นเรื่องที่ดี

ค่า 'จริง' ที่ฉันใช้สำหรับการจำลองควรให้บรรทัดดังนี้

y = 41.55 + 5.185 * ph และ y = 65.14 + 1.48148 * ph

(ซึ่งฉันประเมิน 'ด้วยมือ' จากพล็อตของคุณเพื่อให้ข้อมูลที่ฉันสร้างนั้นดูคล้ายกับของคุณ) และบรรทัดที่อัลกอริทึม EM ให้ในกรณีนี้คือ:

y = 41.514 + 5.19 * ph และ y = 64.655 + 1.55 * ph

สวยใกล้เคียงกับค่าจริง

เราสามารถพล็อตเส้นที่พอดีพร้อมกับข้อมูล

plot(dat$ph, dat$y, xlab = "Soil Ph", ylab = "Flower Height (cm)")
abline(out$beta[,1], col = "blue") # plot the first fitted line
abline(out$beta[,2], col = "red") # plot the second fitted line

สายติดตั้งผ่าน EM


21

แก้ไข: ตอนแรกฉันคิดว่า OP รู้ว่าการสังเกตมาจากเผ่าพันธุ์ใด การแก้ไขของ OP ทำให้ชัดเจนว่าวิธีดั้งเดิมของฉันไม่สามารถทำได้ ฉันจะทิ้งไว้เพื่อลูกหลาน แต่คำตอบอื่น ๆ ดีกว่ามาก เพื่อเป็นการปลอบใจฉันได้เขียนแบบจำลองส่วนผสมขึ้นในสแตน ฉันไม่ได้บอกว่าวิธีการแบบเบย์นั้นดีเป็นพิเศษในกรณีนี้ แต่มันก็เป็นสิ่งที่ฉันสามารถมีส่วนร่วมได้

รหัสสแตน

data{

  //Number of data points
  int N; 

  real y[N];
  real x[N];
}
parameters{
  //mixing parameter
  real<lower=0, upper =1>  theta;

  //Regression intercepts
  real beta_0[2];

  //Regression slopes.
  ordered[2] beta_1;

  //Regression noise
  real<lower=0> sigma[2];
}
model{

  //priors
  theta ~ beta(5,5);
  beta_0 ~ normal(0,1);
  beta_1 ~ normal(0,1);
  sigma ~ cauchy(0,2.5);

  //mixture likelihood
  for (n in 1:N){
    target+=log_mix(theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));
  }
}
generated quantities {
  //posterior predictive distribution
  //will allow us to see what points belong are assigned
  //to which mixture 
  matrix[N,2] p;
  matrix[N,2] ps;
  for (n in 1:N){
    p[n,1] = log_mix(theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));

    p[n,2]= log_mix(1-theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));

    ps[n,]= p[n,]/sum(p[n,]);
  }
}

เรียกใช้โมเดลของสแตนจาก R

library(tidyverse)
library(rstan)


#Simulate the data
N = 100
x = rnorm(N, 0, 3)
group = factor(sample(c('a','b'),size = N, replace = T))

y = model.matrix(~x*group)%*% c(0,1,0,2) 
y = as.numeric(y) + rnorm(N)

d = data_frame(x = x, y = y)

d %>% 
  ggplot(aes(x,y))+
  geom_point()

#Fit the model
N = length(x)
x = as.numeric(x)
y = y

fit = stan('mixmodel.stan', 
           data = list(N= N, x = x, y = y),
           chains = 8,
           iter = 4000)

ผล

ป้อนคำอธิบายรูปภาพที่นี่

เส้นประคือความจริงพื้นฐานเส้นทึบถูกประมาณไว้


คำตอบเดิม

หากคุณรู้ว่าตัวอย่างใดมาจากดอกแดฟโฟดิลชนิดใดคุณสามารถประมาณค่าปฏิสัมพันธ์ระหว่างพันธุ์และดินค่า PH

โมเดลของคุณจะมีหน้าตาเป็นอย่างไร

y=β0+β1variety+β2PH+β3varietyPH

นี่คือตัวอย่างใน R. ฉันได้สร้างข้อมูลบางอย่างที่มีลักษณะดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

เห็นได้ชัดว่ามีสองสายที่แตกต่างกัน นี่คือวิธีประมาณเส้นโดยใช้การถดถอยเชิงเส้น

library(tidyverse)

#Simulate the data
N = 1000
ph = runif(N,5,8)
species = rbinom(N,1,0.5)

y = model.matrix(~ph*species)%*% c(20,1,20,-3) + rnorm(N, 0, 0.5)
y = as.numeric(y)

d = data_frame(ph = ph, species = species, y = y)

#Estimate the model
model = lm(y~species*ph, data = d)
summary(model)

และผลที่ได้คือ

> summary(model)

Call:
lm(formula = y ~ species * ph, data = d)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.61884 -0.31976 -0.00226  0.33521  1.46428 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 19.85850    0.17484  113.58   <2e-16 ***
species     20.31363    0.24626   82.49   <2e-16 ***
ph           1.01599    0.02671   38.04   <2e-16 ***
species:ph  -3.03174    0.03756  -80.72   <2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4997 on 996 degrees of freedom
Multiple R-squared:  0.8844,    Adjusted R-squared:  0.8841 
F-statistic:  2541 on 3 and 996 DF,  p-value: < 2.2e-16

สำหรับสปีชีส์ที่มีป้ายกำกับ 0 บรรทัดจะอยู่ที่ประมาณ

y=19+1PH

สำหรับสปีชีส์ที่มีป้ายกำกับ 1 บรรทัดจะอยู่ที่ประมาณ

y=402PH


หาก OP ทราบความหลากหลายของแดฟโฟดิลล่วงหน้าทำไมพวกเขาไม่สามารถแยกข้อมูลออกเป็นสองส่วนและเรียกใช้การถดถอยสองแบบแยกกันสำหรับแต่ละรายการ
Akavall

ถ้า OP ไม่สนใจความแตกต่างระหว่างพันธุ์แดฟโฟดิล (เช่นความหลากหลาย 1 เติบโตสูงกว่าพันธุ์ 2 ที่มีการปรับสภาพดิน PH) แล้วก็ไม่มีเหตุผลที่จะถอยหลังข้อมูลทั้งหมดเข้าด้วยกันยกเว้นข้อโต้แย้งรอบ ๆ ความแม่นยำ
Demetri Pananos

@Akavail - พวกเขาสามารถแยกข้อมูลได้ แต่การเรียกใช้มันจะทำให้การเปรียบเทียบใด ๆ ง่ายขึ้นหากพวกเขาสนใจทดสอบสมมติฐานใด ๆ เกี่ยวกับความแตกต่างระหว่างพันธุ์ การรวมกันจะช่วยให้การประมาณการดีขึ้นเล็กน้อยหากสมมติฐานความแปรปรวนที่เท่ากันนั้นถูกต้อง
Dason

1
ก่อนที่ฉันจะพิจารณาแนวทาง EM ฉันพิจารณาวิธีการแบบเบย์ แต่เท่าที่ฉันชอบวิธีการแบบเบย์ในการทำสิ่งที่ฉันขี้เกียจและมันง่ายกว่ามากที่จะใช้วิธีการ EM ด้วยที่กล่าวว่าฉันชอบการวิเคราะห์แบบเบย์และฉันคิดว่ามันทำให้การตอบคำถามติดตามง่ายขึ้นเช่นกัน - คุณอาจมีเวลาเขียนรหัสรุ่นเริ่มต้นยากขึ้น แต่เมื่อคุณตอบคำถามที่คุณอาจใช้ การกระจายหลัง
Dason

2

วิธีการทางสถิตินั้นคล้ายกับคำตอบสองข้อด้านบน แต่จะอธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับวิธีเลือกจำนวนคลาสแฝงหากคุณขาดความรู้มาก่อน คุณสามารถใช้เกณฑ์ข้อมูลหรือ parsimony เป็นแนวทางในการเลือกจำนวนคลาสแฝง

นี่คือตัวอย่าง Stata โดยใช้ลำดับของโมเดลแบบ จำกัด รวม (FMMs) ที่มีคลาส / ส่วนประกอบแฝง 2-4 คลาส ตารางแรกคือสัมประสิทธิ์สำหรับสมาชิกระดับแฝง เหล่านี้เป็นบิตยากที่จะตีความ estat lcprobแต่พวกเขาสามารถแปลงเป็นความน่าจะเป็นในภายหลังด้วย สำหรับแต่ละคลาสคุณจะได้รับพารามิเตอร์การสกัดกั้นและค่า ph slope ตามด้วยความน่าจะเป็นระดับที่ซ่อนเร้นของคลาสที่แฝงอยู่และไอซีในตัวอย่างสองตัวอย่าง การประมาณค่าสัมประสิทธิ์เหล่านี้ถูกตีความเช่นเดียวกับค่าสัมประสิทธิ์จากแบบจำลองการถดถอยเชิงเส้น นี่คือBIC ในตัวอย่างที่เล็กที่สุดบอกให้คุณเลือกรุ่นส่วนประกอบสองแบบเป็นแบบที่ดีที่สุด AIC เลือกรูปแบบองค์ประกอบ 3 อย่างแปลก ๆ คุณยังสามารถใช้ไอซีที่ไม่อยู่ในกลุ่มตัวอย่างเพื่อเลือกหรือใช้การตรวจสอบความถูกต้องข้าม

อีกวิธีหนึ่งในการวัดว่าคุณกำลังดันข้อมูลมากเกินไปคือถ้าการแบ่งชั้นเรียนสุดท้ายมีขนาดเล็กมากเนื่องจากส่วนประกอบเพิ่มเติมอาจสะท้อนการมีอยู่ของข้อมูลผิดปกติในข้อมูลได้ ในกรณีดังกล่าวความประหยัดส่วนใหญ่จะทำให้โมเดลและการถอดส่วนประกอบง่ายขึ้น อย่างไรก็ตามหากคุณคิดว่ามีชั้นเรียนขนาดเล็กเป็นไปได้ในการตั้งค่าของคุณนี่อาจไม่ใช่นกขมิ้นในเหมืองถ่านหิน ที่นี่ parsimony สนับสนุนรูปแบบองค์ประกอบ 2 เนื่องจากคลาสที่สามมี.การสังเกต.01433133004

วิธีการ FMM จะไม่ได้ผลในทางปฏิบัติหากการสอนมีน้อยลง คุณอาจพบปัญหาในการคำนวณกับคลาสแฝงจำนวนมากเกินไปโดยเฉพาะอย่างยิ่งหากคุณมีข้อมูลไม่เพียงพอหรือฟังก์ชันความน่าจะเป็นมีค่าสูงสุดในท้องถิ่นหลายตัว

. clear

. /* Fake Data */
. set seed 10011979

. set obs 300
number of observations (_N) was 0, now 300

. gen     ph = runiform(5.1, 7.8) in 1/150
(150 missing values generated)

. replace ph = runiform(5.3, 8)   in 151/300
(150 real changes made)

. gen y      = 41.55 + 5.185*ph   + rnormal(0, .25)  in 1/150
(150 missing values generated)

. replace y  = 65.14 + 1.48148*ph + rnormal(0, 0.25) in 151/300
(150 real changes made)

. 
. /* 2 Component FMM */
. fmm 2, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood =  -194.5215

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |   .0034359   .1220066     0.03   0.978    -.2356927    .2425645
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173137   .0251922   205.35   0.000     5.123761    5.222513
       _cons |     41.654   .1622011   256.80   0.000      41.3361    41.97191
-------------+----------------------------------------------------------------
     var(e.y)|   .0619599   .0076322                      .0486698     .078879
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.486062    .026488    56.10   0.000     1.434147    1.537978
       _cons |   65.10664   .1789922   363.74   0.000     64.75582    65.45746
-------------+----------------------------------------------------------------
     var(e.y)|   .0630583   .0075271                      .0499042    .0796797
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |    .499141   .0305016      .4396545    .5586519
          2  |    .500859   .0305016      .4413481    .5603455
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -194.5215       7     403.043   428.9695
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

. 
. /* 3 Component FMM */
. fmm 3, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood =  -187.4824

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |  -.0312504    .123099    -0.25   0.800    -.2725199    .2100192
-------------+----------------------------------------------------------------
3.Class      |
       _cons |  -3.553227   .5246159    -6.77   0.000    -4.581456   -2.524999
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173077   .0252246   205.08   0.000     5.123637    5.222516
       _cons |   41.65412     .16241   256.48   0.000      41.3358    41.97243
-------------+----------------------------------------------------------------
     var(e.y)|   .0621157   .0076595                      .0487797    .0790975
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.476049   .0257958    57.22   0.000      1.42549    1.526608
       _cons |   65.18698   .1745018   373.56   0.000     64.84496    65.52899
-------------+----------------------------------------------------------------
     var(e.y)|   .0578413   .0070774                      .0455078    .0735173
------------------------------------------------------------------------------

Class          : 3
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.776746   .0020074   885.09   0.000     1.772811     1.78068
       _cons |   62.76633   .0134072  4681.54   0.000     62.74005    62.79261
-------------+----------------------------------------------------------------
     var(e.y)|   9.36e-06   6.85e-06                      2.23e-06    .0000392
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |   .5005343   .0304855      .4410591    .5599944
          2  |   .4851343   .0306119      .4256343    .5450587
          3  |   .0143313   .0073775      .0051968     .038894
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -187.4824      11    396.9648   437.7064
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

. 
. /* 4 Component FMM */
. fmm 4, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood = -188.06042

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |  -.6450345   .5853396    -1.10   0.270    -1.792279      .50221
-------------+----------------------------------------------------------------
3.Class      |
       _cons |  -.8026907   .6794755    -1.18   0.237    -2.134438    .5290568
-------------+----------------------------------------------------------------
4.Class      |
       _cons |  -3.484714   .5548643    -6.28   0.000    -4.572229     -2.3972
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173031   .0251474   205.71   0.000     5.123743    5.222319
       _cons |   41.65574    .161938   257.23   0.000     41.33835    41.97313
-------------+----------------------------------------------------------------
     var(e.y)|   .0617238   .0076596                      .0483975    .0787195
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.503764   .0371216    40.51   0.000     1.431007    1.576521
       _cons |   65.13498   .2666049   244.31   0.000     64.61244    65.65751
-------------+----------------------------------------------------------------
     var(e.y)|   .0387473   .0188853                      .0149062    .1007195
------------------------------------------------------------------------------

Class          : 3
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.441334   .0443892    32.47   0.000     1.354333    1.528335
       _cons |   65.26791   .2765801   235.98   0.000     64.72582       65.81
-------------+----------------------------------------------------------------
     var(e.y)|   .0307352    .010982                      .0152578    .0619127
------------------------------------------------------------------------------

Class          : 4
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.665207   .0079194   210.27   0.000     1.649685    1.680728
       _cons |   63.42577   .0510052  1243.52   0.000      63.3258    63.52573
-------------+----------------------------------------------------------------
     var(e.y)|    .000096   .0000769                        .00002    .0004611
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |   .4991443   .0304808      .4396979     .558615
          2  |   .2618733   .1506066      .0715338    .6203076
          3  |   .2236773    .150279      .0501835    .6110804
          4  |    .015305    .008329       .005234    .0438994
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -188.0604      15    406.1208   461.6776
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

ขอบคุณสำหรับคำตอบที่น่าสนใจมาก คุณได้ให้แนวคิดใหม่แก่ฉันในการวิจัย!
SlowMagic

0

ฉันจะมุ่งเน้นไปที่คำถามที่มีนัยสำคัญทางสถิติเนื่องจาก Dason ได้ครอบคลุมส่วนการสร้างโมเดลแล้ว

ฉันไม่คุ้นเคยกับการทดสอบที่เป็นทางการสำหรับสิ่งนี้ (ซึ่งฉันมั่นใจว่ามีอยู่) ดังนั้นฉันจะทิ้งความคิดบางอย่างไว้ที่นั่น (และฉันอาจเพิ่มรหัส R และรายละเอียดทางเทคนิคในภายหลัง)

ก่อนอื่นจะสะดวกในการอนุมานคลาส สมมติว่าคุณมีสองบรรทัดที่พอดีกับข้อมูลคุณสามารถประมาณสองคลาสใหม่โดยกำหนดแต่ละจุดให้กับคลาสของบรรทัดที่ใกล้เคียงที่สุด สำหรับจุดที่อยู่ใกล้สี่แยกคุณจะพบกับปัญหา แต่สำหรับตอนนี้เพียงเพิกเฉยต่อสิ่งเหล่านั้น (อาจมีวิธีที่จะแก้ไขปัญหานี้ได้ แต่สำหรับตอนนี้เพียงแค่หวังว่าสิ่งนี้จะไม่เปลี่ยนแปลงมากนัก)

วิธีการทำเช่นนี้คือการเลือกและ (ค่า pH ของดิน) ด้วยเพื่อให้ส่วนที่เหลือของแยกออกจากกันอย่างพอเพียงและส่วนทางด้านขวา ของถูกแยกออกจากกันอย่างเพียงพอ (จุดที่ใกล้ที่สุดที่การกระจายไม่ทับซ้อนกัน)xlxrxlxrxlxr

จากนั้นมีสองวิธีธรรมชาติที่ฉันเห็นไปเกี่ยวกับการทำเช่นนี้

วิธีที่สนุกน้อยกว่าคือการเรียกใช้ชุดข้อมูลดั้งเดิมของคุณรวมกับป้ายชื่อคลาสที่อนุมานผ่านการถดถอยเชิงเส้นเช่นเดียวกับคำตอบของ Demetri

วิธีที่น่าสนใจมากขึ้นในการทำเช่นนี้คือผ่าน ANOVA ที่แก้ไขแล้ว จุดคือการสร้างชุดข้อมูลเทียมที่แสดงถึงสองบรรทัด (ที่มีการแพร่กระจายที่คล้ายกันระหว่างพวกเขา) และจากนั้นใช้ ANOVA ในทางเทคนิคคุณต้องทำสิ่งนี้เพียงครั้งเดียวทางด้านซ้ายและอีกครั้งสำหรับด้านขวา (เช่นคุณจะมีชุดข้อมูลสองชุด)

เราเริ่มต้นด้วยด้านซ้ายและใช้วิธีการหาค่าเฉลี่ยแบบง่าย ๆ เพื่อรับสองกลุ่ม โดยพื้นฐานแล้วแต่ละจุดที่กล่าวว่าชั้นหนึ่งมีรูปแบบ ดังนั้นเราจะแทนที่นิพจน์เชิงเส้น โดยค่าคงที่คือ ค่าเฉลี่ยของคำเชิงเส้นหรือ โดยที่เป็นตัวอักษรเฉลี่ยค่าสำหรับด้านซ้าย (ที่สำคัญนี่คือทั้งสองคลาสเนื่องจากสิ่งต่าง ๆ ทำให้สอดคล้องกันมากขึ้น) นั่นคือเราแทนที่ด้วย

y1(i)=β1,1x1(i)+β1,0+e1(i)
β1,1x1(i)+β1,0
β1,1xavg+β1,0
xlavgxy1(i)
y~1(i)=β1,1xavg+β1,0+e1(i),
และเราในทำนองเดียวกันสำหรับชั้นสอง นั่นคือชุดใหม่ของคุณประกอบด้วยคอลเลกชันของและในทำนองเดียวกัน{(i)}y~1(i)y~2(i)

โปรดทราบว่าทั้งสองวิธีจะพูดคุยกับคลาสอย่างเป็นธรรมชาติN


-2

เป็นไปได้ไหมว่าการรวมทั้งในแผนภูมิเดียวกันเป็นข้อผิดพลาด ระบุว่าพันธุ์มีความแตกต่างกันโดยสิ้นเชิงมีค่าใดในการซ้อนทับข้อมูลหรือไม่ ดูเหมือนว่าคุณกำลังมองหาผลกระทบต่อแดฟโฟดิลสายพันธุ์ไม่ใช่ผลกระทบของสภาพแวดล้อมที่คล้ายกันในแดฟโฟดิลต่าง ๆ หากคุณสูญเสียข้อมูลที่ช่วยในการระบุชนิด "A" จากสปีชีส์ "B" คุณสามารถจัดกลุ่มพฤติกรรม "A" และพฤติกรรม "B" และรวมถึงการค้นพบสปีชีส์สองชนิดในการบรรยายของคุณ หรือถ้าคุณต้องการแผนภูมิหนึ่งแผ่นเพียงใช้ชุดข้อมูลสองชุดบนแกนเดียวกัน ฉันไม่ได้อยู่ใกล้กับความเชี่ยวชาญที่ฉันเห็นในคำตอบอื่น ๆ ที่ได้รับดังนั้นฉันจึงต้องหาวิธีที่ "มีทักษะ" น้อยลง ฉันจะเรียกใช้การวิเคราะห์ข้อมูลในสภาพแวดล้อมของเวิร์กชีทซึ่งสมการนั้นง่ายต่อการพัฒนา จากนั้น เมื่อการจัดกลุ่มชัดเจนขึ้นให้สร้างตารางข้อมูลแยกกันสองตารางตามด้วยการแปลงเป็นแผนภูมิ / กราฟ ฉันทำงานกับข้อมูลจำนวนมากและฉันมักจะพบว่าการสันนิษฐานของฉันเกี่ยวกับความสัมพันธ์ที่แตกต่างกันกลับกลายเป็นผิด นั่นคือข้อมูลที่ควรช่วยเราค้นพบ เมื่อฉันรู้ว่าสมมติฐานของฉันไม่ถูกต้องฉันจะแสดงข้อมูลตามพฤติกรรมที่ค้นพบและหารือเกี่ยวกับพฤติกรรมเหล่านั้นและทำให้การวิเคราะห์ทางสถิติเป็นส่วนหนึ่งของการเล่าเรื่อง


1
ฉันคาดหวังว่าคุณถูกลดระดับลงเนื่องจากคำตอบของคุณไม่ได้ให้ความชัดเจนหรือความเข้าใจในการตอบคำถาม คุณต้องจัดโครงสร้างคำตอบของคุณให้เป็นประโยชน์มากขึ้นและทำให้ชัดเจนว่าคุณตอบคำถามย่อยอะไรในแต่ละประเด็น คำถามถูกอัปเดตระหว่างคำตอบและก่อนที่คำตอบของคุณจะระบุอย่างชัดเจนว่าข้อมูลวาไรตี้ไม่สามารถใช้งานได้ไม่สามารถกู้คืนได้
ReneBt

2
ยินดีต้อนรับสู่ Cross Validated! โปรดอย่าถูกเลื่อนออกไปโดยคำตอบแรกของคุณที่ไม่ได้รับการตอบรับที่ดี - & วิธีแก้ปัญหาที่ง่ายกว่านั้นมีประโยชน์มาก - แต่เนื่องจากผู้ถามระบุว่า จะเพิ่มมากขึ้น
Scortchi - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.