Tạo mẫu dữ liệu từ hồi quy Poisson


13

Tôi đã tự hỏi làm thế nào bạn sẽ tạo dữ liệu từ một phương trình hồi quy Poisson trong R? Tôi hơi bối rối khi tiếp cận vấn đề.

Vì vậy, nếu tôi giả sử chúng ta có hai yếu tố dự đoán X 2 được phân phối N ( 0 , 1 )X1X2N(0,1) . Và mức chặn là 0 và cả hai hệ số đều bằng 1. Sau đó, ước tính của tôi chỉ đơn giản là:

đăng nhập(Y)= =0+1X1+1X2

Nhưng một khi tôi đã tính log (Y) - làm thế nào để tôi tạo ra số lượng poisson dựa trên đó? Tham số tỷ lệ cho phân phối Poisson là gì?

Nếu bất cứ ai cũng có thể viết một tập lệnh R ngắn gọn tạo ra các mẫu hồi quy Poisson thì thật tuyệt vời!

Câu trả lời:


24

Yđăng nhậpxY~P(μ) (vậy nên E(Y)= =V(Y)= =μ) và đó đăng nhập(μ)= =β0+β1x. Tạo dữ liệu theo mô hình đó dễ dàng theo sau. Dưới đây là một ví dụ mà bạn có thể điều chỉnh theo kịch bản của riêng bạn.

>   #sample size
> n <- 10
>   #regression coefficients
> beta0 <- 1
> beta1 <- 0.2
>   #generate covariate values
> x <- runif(n=n, min=0, max=1.5)
>   #compute mu's
> mu <- exp(beta0 + beta1 * x)
>   #generate Y-values
> y <- rpois(n=n, lambda=mu)
>   #data set
> data <- data.frame(y=y, x=x)
> data
   y         x
1  4 1.2575652
2  3 0.9213477
3  3 0.8093336
4  4 0.6234518
5  4 0.8801471
6  8 1.2961688
7  2 0.1676094
8  2 1.1278965
9  1 1.1642033
10 4 0.2830910

3

Nếu bạn muốn tạo một tập dữ liệu phù hợp với mô hình một cách hoàn hảo, bạn có thể làm một cái gì đó như thế này trong R:

# y <- exp(B0 + B1 * x1 + B2 * x2)

set.seed(1234)

B0 <-  1.2                # intercept
B1 <-  1.5                # slope for x1
B2 <- -0.5                # slope for x2

y <- rpois(100, 6.5)

x2 <- seq(-0.5, 0.5,,length(y))
x1 <- (log(y) - B0 - B2 * x2) / B1

my.model <- glm(y ~ x1 + x2, family = poisson(link = log))
summary(my.model)

Trả về:

Call:
glm(formula = y ~ x1 + x2, family = poisson(link = log))

Deviance Residuals: 
       Min          1Q      Median          3Q         Max  
-2.581e-08  -1.490e-08   0.000e+00   0.000e+00   4.215e-08  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  1.20000    0.08386  14.309  < 2e-16 ***
x1           1.50000    0.16839   8.908  < 2e-16 ***
x2          -0.50000    0.14957  -3.343 0.000829 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 8.8619e+01  on 99  degrees of freedom
Residual deviance: 1.1102e-14  on 97  degrees of freedom
AIC: 362.47

Number of Fisher Scoring iterations: 3
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.