Điều gì xảy ra nếu dữ liệu hồi quy tuyến tính của tôi chứa một số mối quan hệ tuyến tính kết hợp?


34

Hãy nói rằng tôi đang nghiên cứu cách hoa thủy tiên phản ứng với các điều kiện đất khác nhau. Tôi đã thu thập dữ liệu về độ pH của đất so với chiều cao trưởng thành của hoa thủy tiên. Tôi đang mong đợi một mối quan hệ tuyến tính, vì vậy tôi đi về chạy hồi quy tuyến tính.

Tuy nhiên, tôi đã không nhận ra khi tôi bắt đầu nghiên cứu rằng quần thể thực sự có chứa hai giống hoa thủy tiên, mỗi loại phản ứng rất khác nhau với độ pH của đất. Vì vậy, biểu đồ chứa hai mối quan hệ tuyến tính riêng biệt:

pH đất so với chiều cao hoa (cm)

Tôi có thể cầu mắt và tách nó bằng tay, tất nhiên. Nhưng tôi tự hỏi nếu có một cách tiếp cận nghiêm ngặt hơn.

Câu hỏi:

  1. Có một thử nghiệm thống kê để xác định xem một tập dữ liệu sẽ phù hợp hơn bởi một dòng hay bởi N dòng không?

  2. Làm thế nào tôi có thể chạy hồi quy tuyến tính để phù hợp với N dòng? Nói cách khác, làm cách nào để loại bỏ dữ liệu kết hợp?

Tôi có thể nghĩ về một số cách tiếp cận kết hợp, nhưng chúng có vẻ đắt tiền.


Làm rõ:

  1. Sự tồn tại của hai giống chưa được biết đến tại thời điểm thu thập dữ liệu. Sự đa dạng của mỗi hoa thủy tiên đã không được quan sát, không ghi chú và không được ghi lại.

  2. Không thể khôi phục thông tin này. Hoa thủy tiên đã chết kể từ thời điểm thu thập dữ liệu.

Tôi có ấn tượng rằng vấn đề này là một cái gì đó tương tự như áp dụng các thuật toán phân cụm, trong đó bạn gần như cần phải biết số lượng cụm trước khi bạn bắt đầu. Tôi tin rằng với bất kỳ tập dữ liệu nào, việc tăng số lượng dòng sẽ giảm tổng lỗi rms. Trong trường hợp cực đoan, bạn có thể chia tập dữ liệu của mình thành các cặp tùy ý và chỉ cần vẽ một đường qua mỗi cặp. (Ví dụ: nếu bạn có 1000 điểm dữ liệu, bạn có thể chia chúng thành 500 cặp tùy ý và vẽ một đường qua mỗi cặp.) Sự phù hợp sẽ chính xác và lỗi rms sẽ chính xác bằng không. Nhưng đó không phải là những gì chúng ta muốn. Chúng tôi muốn số dòng "đúng".


1
số liệu thống kê liên quan.stackexchange.com/questions/245902/ Mạnh
rep_ho

3
Bạn có biết dafodil là varaiety nào? Nếu vậy, thì bạn chỉ có thể đưa thông tin đó vào mô hình của mình
rep_ho

1
Đây có vẻ là một trường hợp kinh điển về tương tác thống kê, như trong câu trả lời của @Demetri Pananos.
rolando2

2
Tôi có cảm giác rằng họ không có thông tin về loại hoa trong dữ liệu của họ. Tôi đồng ý rằng nếu họ có điều đó thì đây sẽ chỉ là một trường hợp xây dựng mô hình tương tác hoặc thậm chí chỉ chạy các hồi quy riêng cho từng loại. Tuy nhiên, nếu họ không có thông tin đó, không phải tất cả hy vọng sẽ bị mất. Người ta có thể xây dựng một mô hình ước tính không chỉ các dòng riêng biệt mà còn dự đoán xác suất mà mỗi quan sát thuộc về một trong hai nhóm.
Dason

1
@DemetriPananos Tôi đã cung cấp một câu trả lời hy vọng có ý nghĩa. Tùy thuộc vào những gì họ muốn làm nó là công việc nhiều hơn một chút. Để thực hiện một số loại thử nghiệm, bạn cần thực hiện thử nghiệm tỷ lệ khả năng hoặc thực hiện một số loại thử nghiệm ngẫu nhiên hoặc một cái gì đó. Nhưng họ đã không cung cấp cho chúng tôi quá nhiều thông tin và nếu mục tiêu chỉ là phù hợp với các dòng và họ không có nhãn thì việc sử dụng gói mixtools cũng không quá tệ.
Dason

Câu trả lời:


31

Tôi nghĩ câu trả lời của Demetri là một câu hỏi hay nếu chúng tôi cho rằng bạn có nhãn cho các giống khác nhau. Khi tôi đọc câu hỏi của bạn dường như không phải là trường hợp của tôi. Chúng ta có thể sử dụng một cách tiếp cận dựa trên thuật toán EM để cơ bản phù hợp với mô hình mà Demetri gợi ý nhưng không cần biết nhãn cho sự đa dạng. May mắn thay, gói mixtools trong R cung cấp chức năng này cho chúng tôi. Vì dữ liệu của bạn khá tách biệt và bạn dường như có khá nhiều nên nó khá thành công.

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)

Chúng tôi có thể kiểm tra kết quả

> 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 

Vì vậy, nó phù hợp với hai hồi quy và ước tính rằng 49,7% các quan sát rơi vào hồi quy cho thành phần 1 và 50,2% rơi vào hồi quy cho thành phần 2. Cách tôi mô phỏng dữ liệu được chia 50-50 nên điều này là tốt.

Các giá trị 'true' mà tôi đã sử dụng cho mô phỏng sẽ đưa ra các dòng:

y = 41,55 + 5.185 * ph và y = 65,14 + 1,48148 * ph

(mà tôi ước tính 'bằng tay' từ âm mưu của bạn để dữ liệu tôi tạo trông giống với dữ liệu của bạn) và các dòng mà thuật toán EM đưa ra trong trường hợp này là:

y = 41,514 + 5,19 * ph và y = 64,655 + 1,55 * ph

Khá gần với các giá trị thực tế.

Chúng ta có thể vẽ các đường được trang bị cùng với dữ liệu

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

Dòng được trang bị thông qua EM


21

EDIT: Ban đầu tôi nghĩ OP biết những quan sát nào đến từ loài nào. Chỉnh sửa của OP cho thấy rõ rằng cách tiếp cận ban đầu của tôi là không khả thi. Tôi sẽ để lại cho hậu thế, nhưng câu trả lời khác tốt hơn nhiều. Như một niềm an ủi, tôi đã mã hóa một mô hình hỗn hợp trong Stan. Tôi không nói rằng một cách tiếp cận Bayes đặc biệt tốt trong trường hợp này, nhưng nó chỉ là thứ gì đó gọn gàng mà tôi có thể đóng góp.

Mã Stan

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,]);
  }
}

Chạy mô hình Stan từ 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)

Các kết quả

nhập mô tả hình ảnh ở đây

Đường đứt nét là sự thật mặt đất, đường rắn được ước tính.


Câu trả lời gốc

Nếu bạn biết mẫu nào đến từ giống thủy tiên nào, bạn có thể ước tính tương tác giữa giống và PH đất.

Mô hình của bạn sẽ trông như thế nào

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

Dưới đây là một ví dụ trong R. Tôi đã tạo một số dữ liệu trông như thế này:

nhập mô tả hình ảnh ở đây

Rõ ràng hai dòng khác nhau, và các dòng tương ứng với hai loài. Dưới đây là cách ước tính các dòng bằng hồi quy tuyến tính.

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)

Và kết quả là

> 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

Đối với các loài được dán nhãn 0, dòng xấp xỉ

y=19+1PH

Đối với các loài được dán nhãn 1, dòng xấp xỉ

y=402PH


Nếu OP biết trước nhiều loại hoa thủy tiên, tại sao họ không thể chia dữ liệu thành hai phần và chạy hai hồi quy riêng cho từng loại?
Akavall

Nếu OP không quan tâm đến sự khác biệt giữa các giống hoa thủy tiên (ví dụ: Giống 1 phát triển cao hơn giống 2 được điều hòa trên đất PH) thì không có lý do gì để hồi quy tất cả các dữ liệu cùng nhau, ngoại trừ có thể tranh luận về độ chính xác.
Demetri Pananos

@Akavail - Họ có thể phân tách dữ liệu nhưng chạy nó như thế này sẽ giúp thực hiện bất kỳ loại so sánh nào dễ dàng hơn nếu họ quan tâm đến việc kiểm tra bất kỳ giả thuyết nào về sự khác biệt giữa các giống. Chạy nó kết hợp cũng sẽ cho ước tính tốt hơn một chút nếu giả định phương sai bằng nhau là hợp lệ.
Dason

1
Trước khi tôi xem xét phương pháp EM tôi đã xem xét phương pháp Bayes. Nhưng nhiều như tôi thích cách làm việc của người Bayes, tôi trở nên lười biếng và việc tiếp cận EM sẽ dễ dàng hơn nhiều. Như đã nói, tôi rất thích phân tích Bayes và tôi nghĩ rằng nó giúp việc trả lời các câu hỏi tiếp theo cũng dễ dàng hơn nhiều - bạn có thể gặp khó khăn hơn khi mã hóa mô hình ban đầu nhưng khi bạn trả lời các câu hỏi bạn có thể sử dụng thì dễ dàng hơn nhiều phân bố sau.
Dason

2

Phương pháp thống kê rất giống với hai trong số các câu trả lời ở trên, nhưng nó liên quan nhiều hơn đến cách chọn số lượng các lớp tiềm ẩn nếu bạn thiếu kiến ​​thức trước. Bạn có thể sử dụng tiêu chí thông tin hoặc phân tích cú pháp làm hướng dẫn trong việc chọn số lượng các lớp tiềm ẩn.

Dưới đây là một ví dụ Stata sử dụng một chuỗi các mô hình hỗn hợp hữu hạn (FMM) với 2-4 lớp / thành phần tiềm ẩn. Bảng đầu tiên là các hệ số cho thành viên lớp tiềm ẩn. Đây là một chút khó khăn để giải thích, nhưng chúng có thể được chuyển đổi thành xác suất sau này với estat lcprob. Đối với mỗi lớp, bạn cũng nhận được một tham số chặn và ph dốc, theo sau là xác suất cận biên của lớp tiềm ẩn và hai IC trong mẫu. Các ước tính hệ số này được hiểu giống như các hệ số từ mô hình hồi quy tuyến tính. Ở đây BIC mẫu nhỏ nhất cho bạn biết chọn mô hình hai thành phần là mô hình tốt nhất. AIC lạ lùng chọn mô hình 3 thành phần. Bạn cũng có thể sử dụng IC ngoài mẫu để chọn hoặc sử dụng xác thực chéo.

Một cách khác để đánh giá rằng bạn đang đẩy dữ liệu đi quá xa là nếu chia sẻ lớp cuối cùng rất nhỏ, vì một thành phần bổ sung có thể chỉ đơn giản phản ánh sự hiện diện của các ngoại lệ trong dữ liệu. Trong trường hợp đó, Parsimony ủng hộ đơn giản hóa mô hình và loại bỏ các thành phần. Tuy nhiên, nếu bạn nghĩ rằng các lớp nhỏ có thể có trong môi trường của bạn, thì đây có thể không phải là chim hoàng yến trong mỏ than. Ở đây, Parsimony ủng hộ mô hình 2 thành phần vì lớp thứ ba chỉ chứa quan sát..01433133004

Cách tiếp cận FMM sẽ không luôn luôn hoạt động tốt trong thực tế nếu các lớp ít nghiêm túc hơn. Bạn có thể gặp khó khăn về tính toán với quá nhiều lớp tiềm ẩn, đặc biệt là nếu bạn không có đủ dữ liệu hoặc hàm khả năng có nhiều cực đại cục bộ.

. 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.

Cảm ơn bạn cho câu trả lời rất thú vị này. Bạn đã cho tôi một số khái niệm mới để nghiên cứu!
SlowMagic

0

Tôi sẽ tập trung vào câu hỏi về ý nghĩa thống kê vì Dason đã trình bày phần mô hình hóa.

Tôi không quen thuộc với bất kỳ thử nghiệm chính thức nào cho việc này (mà tôi chắc chắn tồn tại), vì vậy tôi sẽ chỉ đưa ra một số ý tưởng ngoài đó (và có lẽ tôi sẽ thêm mã R và chi tiết kỹ thuật sau).

Đầu tiên, thuận tiện để suy ra các lớp. Giả sử bạn có hai dòng phù hợp với dữ liệu, bạn có thể xây dựng lại khoảng hai lớp bằng cách gán từng điểm cho lớp của dòng gần nhất với nó. Đối với các điểm gần ngã tư, bạn sẽ gặp vấn đề, nhưng bây giờ hãy bỏ qua những điểm đó (có thể có cách khắc phục vấn đề này, nhưng bây giờ chỉ hy vọng rằng điều này sẽ không thay đổi nhiều).

xlxrxlxrxlxr

Sau đó, có hai cách tự nhiên tôi thấy để làm điều này.

Cách ít thú vị hơn là chỉ chạy tập dữ liệu gốc của bạn kết hợp với các nhãn lớp được suy luận thông qua hồi quy tuyến tính như trong câu trả lời của Demetri.

Một cách thú vị hơn để làm như vậy là thông qua một phiên bản sửa đổi của ANOVA. Vấn đề là tạo ra một bộ dữ liệu nhân tạo đại diện cho hai dòng (có sự lây lan tương tự giữa chúng) và sau đó áp dụng ANOVA. Về mặt kỹ thuật, bạn cần thực hiện việc này một lần cho bên trái và một lần cho bên phải (tức là bạn sẽ có hai bộ dữ liệu nhân tạo).

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),
y~1(i)y~2(i)

Lưu ý rằng cả hai cách tiếp cận tự nhiên khái quát hóa cho các lớpN


-2

Có thể bao gồm cả hai trong cùng một biểu đồ là một lỗi? Cho rằng các giống hành xử hoàn toàn khác nhau, có giá trị nào trong việc chồng chéo dữ liệu? Dường như với tôi rằng bạn đang tìm kiếm tác động đến một loài thủy tiên, chứ không phải tác động của các môi trường tương tự trên các loài thủy tiên khác nhau. Nếu bạn đã mất dữ liệu giúp xác định loài "A" từ loài "B", bạn có thể chỉ cần nhóm hành vi "A" và hành vi "B" và bao gồm việc phát hiện ra hai loài trong tường thuật của bạn. Hoặc, nếu bạn thực sự muốn một biểu đồ, chỉ cần sử dụng hai bộ dữ liệu trên cùng một trục. Tôi không có bất cứ nơi nào gần chuyên môn mà tôi thấy trong các phản hồi khác được đưa ra vì vậy tôi phải tìm các phương pháp ít "lành nghề" hơn. Tôi sẽ chạy một phân tích dữ liệu trong một môi trường bảng tính nơi các phương trình dễ dàng phát triển hơn. Sau đó, một khi các nhóm trở nên rõ ràng, hãy tạo hai bảng dữ liệu riêng biệt theo sau bằng cách chuyển đổi chúng thành biểu đồ / đồ thị. Tôi làm việc với rất nhiều dữ liệu và tôi thường thấy rằng các giả định của mình về các mối tương quan khác nhau hóa ra sai; đó là những gì dữ liệu được cho là để giúp chúng tôi khám phá. Khi tôi biết rằng các giả định của mình là sai, tôi hiển thị dữ liệu dựa trên các hành vi được phát hiện và thảo luận về các hành vi đó và đưa ra các phân tích thống kê như một phần của tường thuật.


1
Tôi đoán rằng bạn đã bị hạ thấp bởi vì câu trả lời của bạn không cung cấp bất kỳ sự rõ ràng hoặc hiểu biết sâu sắc để trả lời câu hỏi. Bạn cần cấu trúc câu trả lời của mình một cách hữu ích hơn và làm rõ những câu hỏi phụ bạn giải quyết ở mỗi điểm. Câu hỏi đã được cập nhật giữa các câu trả lời và trước câu trả lời của bạn để nêu rõ rằng thông tin đa dạng không có sẵn không thể phục hồi được.
ReneBt

2
Chào mừng bạn đến với Xác thực chéo! Xin đừng bỏ qua câu trả lời đầu tiên của bạn không được đón nhận - & các giải pháp đơn giản hơn có thể rất hữu ích - nhưng vì người hỏi đã nói "Tôi có thể đánh mắt và tách nó bằng tay, tất nhiên", nó dường như không được thêm nhiều.
Scortchi - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.