我試圖做一些事情在Stata或R.獲得對數正態分佈一些百分位數
我有一個工資分配(百分10,25,50,75,90)的百分位數,我想估計對數正態分佈分配以適應它們。在Stata中有一個命令lognfit
,它適合單位記錄數據的對數正態分佈,但不適用於百分點。
是否值得使用Stata的gmm
命令,使用我的5個數據點來估計對數正態分佈的兩個參數,作爲過度識別的系統?
我試圖做一些事情在Stata或R.獲得對數正態分佈一些百分位數
我有一個工資分配(百分10,25,50,75,90)的百分位數,我想估計對數正態分佈分配以適應它們。在Stata中有一個命令lognfit
,它適合單位記錄數據的對數正態分佈,但不適用於百分點。
是否值得使用Stata的gmm
命令,使用我的5個數據點來估計對數正態分佈的兩個參數,作爲過度識別的系統?
這是一個Stata解決方案。
我給別人留下的景點gmm
。你也可以在標準正態分佈的相應分位數上回歸記錄的分位數。這裏是嵌入到實驗中的代碼,以瞭解該方法的工作情況。我們從對數正態中產生了1000個樣本,每個樣本的大小爲1000,這是一個平均值爲1且SD 2取冪的正態分佈。這裏是rangestat
,它可以完成所有的迴歸,每個樣本一個迴歸。
clear
set obs 1000000
set seed 1066
set scheme s1color
gen y = exp(rnormal(1, 2))
egen sample = seq(), block(1000)
collapse (p10) y10=y (p25) y25=y (p50) y50=y (p75) y75=y (p90) y90=y, by(sample)
reshape long y, i(sample) j(p)
gen pred = invnormal(p/100)
gen log_y = log(y)
* must install from SSC using: ssc install rangestat
rangestat (reg) log_y pred, interval(sample 0 0)
qnorm b_cons if p==10, name(G1) yli(1) ytitle("") subtitle(mean known to be 1) yla(, ang(h))
qnorm b_pred if p==10, name(G2) yli(2) ytitle("") subtitle(SD known to be 2) yla(, ang(h))
graph combine G1 G2
謝謝大家的回答我很欣賞,因爲我是這個論壇的新成員。 –
謝謝大家的響應。
我正在嘗試這兩個程序。在該R例如我用的是包library(rriskDistributions)
,特別是像
## example with only two quantiles
q <- stats::qlnorm(p = c(0.025, 0.975), meanlog = 4, sdlog = 0.8)
old.par <- graphics::par(mfrow = c(2, 3))
get.lnorm.par(p = c(0.025, 0.975), q = q)
get.lnorm.par(p = c(0.025, 0.975), q = q, fit.weights = c(100, 1),
scaleX = c(0.1, 0.001))
get.lnorm.par(p = c(0.025, 0.975), q = q, fit.weights = c(1, 100),
scaleX = c(0.1, 0.001))
get.lnorm.par(p = c(0.025, 0.975), q = q, fit.weights = c(10, 1))
get.lnorm.par(p = c(0.025, 0.975), q = q, fit.weights = c(1, 10))
graphics::par(old.par)
matrix I = I(1)
mat lis I
gmm ((y - exp({xb: percentile_10 percentile_20 percentile_25
percentile_30 percentile_50 percentile_60 percentile_75
percentile_90}))/exp({xb:})), instruments(percentile_10
percentile_20 percentile_25 percentile_30 percentile_50 percentile_60
percentile_75 percentile_90) twostep
下面是使用GMM,當然第一次嘗試用GMM嘗試我錯過了一些東西。
尼克考克斯的答案很棒。我會嘗試用這種方法來適合我的數據。
爲什麼你提到R時,這似乎是一個Stata問題? – lebelinoz
R標記已恢復。 –