3

観測された比率が期待される比率と一致するように、グループをサンプリングする方法を見つける必要があります。できるだけ多くの観察結果を各グループに保持したいと考えています。

簡単な例: グループ A = 302 (60.3%) グループ B = 199 (39.7%)

私が期待する割合は 46.6% と 53.4% であるため、この例では、グループ B のすべての観測値を保持し、グループ A を 0.576 でサンプリングして、174 個の観測値を取得します。これは正しいです?

n グループの適切なサンプリング レートを与えるルールを SAS または R で作成する方法はありますか? 私の実際の問題には、カウントが 2 から 77 までの 14 のグループが含まれます。

グループ A = 77 、観察 = 21.51%、期待 = 15.10%

グループ B = 5 、観察 = 1.4%、期待 = 0.54%

グループ C = 2、観測値 = 0.56%、期待値 = 1.62%

助けてくれて本当にありがとうございます。

4

3 に答える 3

2

PROC SURVEYSELECT を使用してこれを達成できると思います。グループごとに予想されるサンプリング レートを別のデータセットに保存し、PROC SURVEYSELECT ステートメントでオプション「SAMPRATE=SAS データ セット」を適用する必要があります。詳細については、この手順に関するオンライン ドキュメントを参照してください。

于 2013-03-08T08:32:55.017 に答える
1

データセットの単純なランダム サンプル (SRS) を描画していると仮定します。その場合、グループの「過小評価」および/または「過剰表示」が発生することが予想されます。推論に関する限り、これは問題ではありません。母集団の特性、たとえば合計や比率を推定するためにサンプルを抽出している場合、サンプルの度数が母集団の度数と一致しなくても心配する必要はありません。実際のところ、これらの頻度は平均、つまり考えられるすべてのサンプルにわたって等しいだけです。これは、通常の見積もり者によってすでに「考慮されています」。

一方、周波数を強制的に一致させることは可能です。しかし、複雑なサンプルの領域に入ります。この分野の優れた著者には、Särndal などがあります。(1992) とティレ (2006)。いくつかのグーグルは、彼らの仕事がどれほど広まっているかを示します. あなたの実際のケースでは、層化されたサンプル、つまり母集団グループ内で抽出されたサブサンプルによって形成されたサンプルを探していると思います。各グループ内で単純なランダム サンプルを描画する場合、10 行以下のコードで R にルーチンを実装するのは簡単です。

しかし、準備が必要な場合は、R の「サンプリング」パッケージをチェックしてください: http://cran.r-project.org/web/packages/sampling/index.html

コンプレックス サンプル アプローチを選択する場合は、細心の注意を払う必要があることに注意してください。推定量は異なる形式を想定しており (Google、たとえば「Horvitz-Thompsom 推定量」)、それらのサンプリング分布を記述するのははるかに難しく、この分布に正規近似を使用することは多くの場合、非常に大まかな近似になります。

関連する微妙な点のいくつかに言及するだけで、層別サンプルの場合、サンプルが一定の合計ユニット数を持たなければならないことを考えると、各層 (母集団グループ) にいくつのサンプリングユニットを割り当てる必要があるかを決定する問題を考えてみてください。比例配分 (つまり、サンプルと母集団のグループの比率を一致させること) は、必ずしも最良の解決策ではありません。簡単な議論については Cochran (1997) を、詳細については上記の書籍を参照してください。

于 2013-03-08T16:26:04.690 に答える
1

これは、操作する危険な小さな関数です。

minsamp <- function(obs,expect) {

  ## get the groups where the number of people available
  ## isn't enough to simply multiply it out
  underrep <- obs[which(obs - expect * sum(obs) < 0)]

  # name of the smallest underrepresented group
  urname <- names(which.min(underrep))

  # get the final result
  round(expect * (obs[urname]/expect[urname]))

}

そして例(あなたのに基づくsimple example

obs <- c(a=302,b=199)
expect <- c(a=0.466,b=0.534)

> minsamp(obs,expect)
  a   b 
174 199 

そして、それが機能したことがわかります:

> prop.table(minsamp(obs,expect))
        a         b 
0.4664879 0.5335121 
于 2013-03-08T03:07:46.380 に答える