タグ付けされた質問 「binary-data」

バイナリ変数は、通常「0」と「1」としてコード化された2つの値のいずれかを取ります。

1
バイナリー楽器とバイナリー内因性変数を使用して、楽器変数回帰の第2段階係数を解釈する方法
(かなり長い投稿、申し訳ありません。多くの背景情報が含まれているので、下部の質問に進んでください。) イントロ:私たちは、バイナリ内生変数の影響を識別しようとしているプロジェクトに取り組んでいます、連続結果に、。私たちは、無作為に割り当てられると強く信じている楽器を考え出しました。x1x1x_1yyyz1z1z_1 データ:データ自体はパネル構造になっており、約34,000の観測が1000ユニットと約56の期間に分散しています。は約700(2%)の観測値に対して1の値をとり、は約3000(9%)に対して値を受け取ります。111(0.33%)観察は、両方で1スコア上、それは上で1得点を観察するための二倍の可能性があるに、それはまた、スコア1が場合。x1x1x_1z1z1z_1z1z1z_1x1x1x_1x1x1x_1z1z1z_1 推定: Stataのivreg2プロシージャを使用して、次の2SLSモデルを推定します。 x1=π0+π1z1+Zπ+vx1=π0+π1z1+Zπ+vx_1 = \pi_0 + \pi_1z_1 + \mathbf{Z}\mathbf{\pi} + v y=β0+β1x∗1+Zβ+uy=β0+β1x1∗+Zβ+uy = \beta_0 + \beta_1 x_1^* + \mathbf{Z}\mathbf{\beta} + u ここで、他の外因性変数のベクトルであり、 の予測値である第一段階から、そして及び誤差項です。ZZZx∗1x1∗x_1^*x1x1x_1uuuvvv 結果:すべてがうまく機能しているようです。推定第一段階において非常に重要であるとの推定第二段階において非常に重要です。他の外生変数の兆候を含め、すべての兆候は予想どおりです。ただし、問題は(関心のある係数)の推定値が信じられないほど大きい(または、少なくとも、これまでの解釈に従って)ことです。π1π1\pi_1β1β1\beta_1β1β1\beta_1 yyy範囲は約2から約26で、平均値と中央値は17ですが、の推定値は30から40の範囲です(仕様によって異なります)。β1β1\beta_1 弱いIV:最初の考えは、これは楽器が弱すぎるためであると考えていました。つまり、内生変数とはあまり相関していませんが、実際にはそうではありません。それは違反に堅牢なテスト提供として、機器の弱点を調べるために、我々は、フィンレイ、Magnusson氏、およびシェーファーのweakivパッケージを使用私たちはパネルデータを持っていると私たちのSEの時をクラスタ化することを考えると、ここで関連する仮定を(、単位レベル)。i.i.d.i.i.d.i.i.d. 彼らのARテストによると、第2段階係数の95%信頼区間の下限は16〜29です(これも仕様によって異なります)。棄却確率は、ゼロに近いすべての値に対して実質的に1です。 影響力のある観察: 各ユニットを個別に削除し、各観察を個別に削除し、ユニットのクラスターを削除して、モデルの推定を試みました。実際の変化はありません。 提案された解決策:誰かが、インストルメントされた推定効果を元のメトリック(0-1)で要約するのではなく、その予測バージョンのメトリックで要約するべきだと提案しました。範囲は-0.01〜0.1で、平均および中央値は約0.02、SDは約0.018です。我々は、推定効果を要約していた場合は 1枚のSDの増加、言って、によって、それは次のようになり (その他の仕様はほぼ同じ結果が得られ)。これはかなり合理的な方法です(それでもまだ十分です)。完璧なソリューションのようです。私が誰かがそうするのを見たことがないことを除いて。誰もが、元の内生変数のメトリックを使用して第2段階の係数を解釈しているように見えます。x1x1x_1x∗1x1∗x_1^*x1x1x_1x∗1x1∗x_1^*0.018∗30=0.540.018∗30=0.540.018*30 = 0.54 質問: IVモデルで、内生変数の増加の推定効果(実際にはLATE)を、予測されたバージョンのメトリックを使用して要約することは正しいですか?私たちの場合、そのメトリックは予測確率です。 注:バイナリの内生変数がある場合でも、2SLSを使用します(最初のステージをLPMにします)。これは、Angrist&Krueger(2001)に続きます:「機器変数と識別の検索:需要と供給から自然実験まで」)Adams、Almeida、およびFerreira(2009)で使用されている3段階の手順も試しました:「創設者のCEOと会社の業績の関係を理解する」。後者のアプローチは、プロビットモデルとそれに続く2SLSで構成されており、より小さく、より適切な係数を生成しますが、0-1メトリック(約9-10)で解釈すると、それらは非常に大きくなります。Cerulliのivtreatregのprobit-2sls-optionで行うのと同じ結果を手動計算でも得ます。

3
バイナリデータのインジケーター変数:{-1,1}対{0,1}
実験/ランダム化比較試験のコンテキストで、2値の処理割り当てインジケーターを使用した処理と共変量の相互作用に興味があります。TTT 特定の方法/ソースに応じて、治療された被験者と治療されていない被験者について、それぞれT={1,0}T={1,0}T=\{1,0\}とT = \ {1、-1 \}の両方を確認しT={1,−1}T={1,−1}T=\{1, -1\}ました。 {1,0}{1,0}\{1,0\}または\ {1、-1 \}を使用するときの経験則はあります{1,−1}{1,−1}\{1, -1\}か? 解釈はどのように異なりますか?

1
自己相関バイナリ時系列のモデリング
バイナリ時系列をモデル化するための通常のアプローチは何ですか?これを扱った紙や教科書はありますか?強い自己相関を持つバイナリプロセスについて考えます。ゼロから始まるAR(1)プロセスの記号のようなもの。セイと ホワイトノイズの。次に、定義され たバイナリ時系列 が自己相関を示します。これは、次のコードで説明します。バツ0= 0X0=0X_0 = 0バツt + 1= β1バツt+ ϵt、Xt+1=β1Xt+ϵt, X_{t+1} = \beta_1 X_t + \epsilon_t, εtϵt\epsilon_t(Yt)T ≥ 0(Yt)t≥0(Y_t)_{t \ge 0}Yt= 記号(Xt)Yt=符号(バツt) Y_t = \text{sign}(X_t) set.seed(1) X = rep(0,100) beta = 0.9 sigma = 0.1 for(i in 1:(length(X)-1)){ X[i+1] =beta*X[i] + rnorm(1,sd=sigma) } acf(X) acf(sign(X)) バイナリデータを取得し、重要な自己相関があることがわかっている場合、テキストブック/通常のモデリングアプローチとは何ですか?YtYtY_t 外部のリグレッサや季節的なダミーの場合、ロジスティック回帰を実行できると思いました。しかし、純粋な時系列アプローチとは何ですか? 編集:正確に言うと、sign(X)が最大4つのラグに対して自己相関していると仮定しましょう。これは次数4のマルコフモデルであり、それでフィッティングおよび予測できますか? 編集2:その間、私は時系列のグラムを偶然見つけました。これらは、説明変数が遅れた観測と外部リグレッサであるglmsです。ただし、これはポアソンおよび負の二項分布カウントに対して行われるようです。ポアソン分布を使用してベルヌーイを近似できます。これに対する明確な教科書的アプローチはないのでしょうか。 …

1
ロジスティック回帰のトレーニングに「部分的なクレジット」(継続的な結果)を与えることは、これまでに良い考えですか。
私はロジスティック回帰を訓練して、どのランナーが過酷な耐久レースを終了する可能性が最も高いかを予測しています。 非常に少数のランナーがこのレースを完了しているので、私は深刻なクラスの不均衡と成功の小さなサンプル(多分数十)を持っています。私はほとんどそれを作った何十人ものランナーからいくつかの良い「シグナル」を得ることができるように感じています。(私のトレーニングデータには、完了だけでなく、完了しなかったデータが実際にどれだけ作成したかも含まれています。)したがって、「部分的なクレジット」を含めるのはひどい考えなのかどうか疑問に思っています。部分的なクレジット、ランプ、ロジスティックカーブの2つの関数を考え出しました。これらにはさまざまなパラメーターを指定できます。 回帰との唯一の違いは、バイナリの結果ではなく、修正された継続的な結果を予測するためにトレーニングデータを使用することです。テストセット(バイナリレスポンスを使用)での予測を比較すると、かなり結論が出ませんでした-ロジスティックの部分的なクレジットはR-2乗、AUC、P / Rをわずかに改善するように見えましたが、これは、小さなサンプル。 予測が完了に向かって偏っていることに気にしない-私が気にするのは、終了する可能性のある選手を正しくランク付けすること、またはおそらく終了する相対的な可能性を推定することです。 ロジスティック回帰は、予測子とオッズ比の対数の間の線形関係を想定していることを理解しています。明らかに、結果をいじり始めると、この比には実際の解釈がありません。これは理論的な観点からは賢明ではないと私は確信していますが、追加の信号を取得して過剰適合を防ぐのに役立つ可能性があります。(私は成功とほぼ同じ数の予測子を持っているので、完全に完了した関係のチェックとして部分的に完了した関係を使用すると役立つ場合があります)。 このアプローチは責任ある実践で使用されたことがありますか? いずれにせよ、このタイプの分析により適した他のタイプのモデル(おそらく、時間ではなく距離にわたって適用されるハザード率を明示的にモデル化するもの)がありますか?

1
因子分析でバイナリ変数のピアソン相関(四重相関の代わりに)を計算する危険性は何ですか?
私は教育用ゲームの研究を行っています。現在のプロジェクトのいくつかは、BoardGameGeek(BGG)とVideoGameGeek(VGG)のデータを使用して、ゲームの設計要素間の関係を調べています(つまり、「第二次世界大戦の始まり」、「ローリングダイスを含む」)。 )およびそれらのゲームのプレイヤーの評価(つまり、10点満点)。これらの各設計要素は、BGGまたはVGGシステムのタグに対応しているため、各要素は本質的に二分変数です。ゲームには、データベースに存在するすべてのタグに1があり、存在しないすべてのタグに0があります。 これらのタグは数十あるので、探索的要因分析(EFA)を使用して、ゲームデザインのパターンをキャプチャする管理可能な数の「ジャンル」を考え出します。いくつかの情報源を調べて、私は二分変数を扱っているので、私の要因を思い付くとき、ピアソンの相関の代わりにポリコリック相関(特にここではテトラコリック)を使用する必要があることを理解しています(潜在特性分析などの他のオプションもあります—そこにありますが、これは私が今探っているものです)。 好奇心から、ピアソン相関を使用する因子とポリコリック相関を使用する因子(それぞれ同じ数の因子)の2組の因子を思いつきました。私の問題は、ピアソン相関を使用して計算された因子は、ポリコリック相関を使用して計算された因子よりもはるかに意味があり、解釈が容易であることです。つまり、最初の要素セットの「ジャンル」は直感的に理解でき、ゲームの一般的な設計方法に関する私の理解と一致しています。これは、2番目の要素セットには当てはまりません。 一方では、使用しているテストの前提を満たしていることを確認したいのですが、それによって結果が見栄えが悪くなります。一方で、因子分析と(より広範には)モデル構築の目標の一部は有用なものを生み出すことであると感じ、私が「ルールを破る」ときに、より有用な情報が浮かび上がってきます。このテストの仮定に違反することを上回るのに十分なモデルが必要ですか?ポリコリック相関の代わりにピアソン相関を使用すると、どのような結果になりますか?

3
ロジスティック回帰のベイズの適合度を視覚化する方法
ベイジアンロジスティック回帰問題の場合、私は事後予測分布を作成しました。私は予測分布からサンプリングし、観測ごとに(0,1)の数千のサンプルを受け取ります。適合度を視覚化することは、面白くありません。次に例を示します。 このプロットは、10,000個のサンプル+観測されたデータム点を示しています(左側の方に赤い線が表示されます:観測です)。問題は、このプロットが情報を提供することがほとんどないことであり、データポイントごとに1つずつ、計23を用意します。 23データポイントと後方サンプルを視覚化するより良い方法はありますか? 別の試み: ここの論文に基づく別の試み

2
Rによる二分データの因子分析の推奨手順
二分変数(0 =はい、1 =いいえ)で構成されるデータセットに対して因子分析を実行する必要があり、正しい方向に進んでいるかどうかわかりません。 を使用しtetrachoric()て、実行する相関行列を作成しますfa(data,factors=1)。結果はMixFactorを使用したときに受け取る結果に非常に近いですが、同じではありません。 これは大丈夫ですか、それとも別の手順をお勧めしますか? なぜfa()仕事とfactanal()エラーが発生しますか?(Fehler in solve.default(cv) : System ist für den Rechner singulär: reziproke Konditionszahl = 4.22612e-18)

1
R線形回帰のカテゴリ変数「非表示」の値
これは私が何度か遭遇した例にすぎないため、サンプルデータはありません。Rで線形回帰モデルを実行する: a.lm = lm(Y ~ x1 + x2) x1は連続変数です。x2カテゴリ型で、「低」、「中」、「高」の3つの値があります。ただし、Rによって与えられる出力は次のようになります。 summary(a.lm) Estimate Std. Error t value Pr(>|t|) (Intercept) 0.521 0.20 1.446 0.19 x1 -0.61 0.11 1.451 0.17 x2Low -0.78 0.22 -2.34 0.005 x2Medium -0.56 0.45 -2.34 0.005 私は、Rがそのような要因(要因x2であること)に何らかのダミーコーディングを導入していることを理解しています。私はただ疑問に思っていx2ます。「高」の値をどのように解釈しますか?たとえば、ここで示した例の「High」x2は応答変数にどのような影響を与えますか? これの例を他の場所(例:ここ)で見ましたが、理解できる説明は見つかりませんでした。
10 r  regression  categorical-data  regression-coefficients  categorical-encoding  machine-learning  random-forest  anova  spss  r  self-study  bootstrap  monte-carlo  r  multiple-regression  partitioning  neural-networks  normalization  machine-learning  svm  kernel-trick  self-study  survival  cox-model  repeated-measures  survey  likert  correlation  variance  sampling  meta-analysis  anova  independence  sample  assumptions  bayesian  covariance  r  regression  time-series  mathematical-statistics  graphical-model  machine-learning  linear-model  kernel-trick  linear-algebra  self-study  moments  function  correlation  spss  probability  confidence-interval  sampling  mean  population  r  generalized-linear-model  prediction  offset  data-visualization  clustering  sas  cart  binning  sas  logistic  causality  regression  self-study  standard-error  r  distributions  r  regression  time-series  multiple-regression  python  chi-squared  independence  sample  clustering  data-mining  rapidminer  probability  stochastic-processes  clustering  binary-data  dimensionality-reduction  svd  correspondence-analysis  data-visualization  excel  c#  hypothesis-testing  econometrics  survey  rating  composite  regression  least-squares  mcmc  markov-process  kullback-leibler  convergence  predictive-models  r  regression  anova  confidence-interval  survival  cox-model  hazard  normal-distribution  autoregressive  mixed-model  r  mixed-model  sas  hypothesis-testing  mediation  interaction 

4
このバイナリ予測問題にどのように取り組むべきですか?
次の形式のデータセットがあります。 二元的転帰がん/がんなしがあります。データセット内のすべての医師は、すべての患者を診察し、患者ががんであるかどうかについて独立した判断を下しています。医師は、自分の診断が正しいことを5のうちの信頼レベルで示し、括弧内に信頼レベルが表示されます。 このデータセットから適切な予測を取得するために、さまざまな方法を試しました。 医師の信頼水準を無視して、医師全体の平均をとることは、私にとってはかなりうまくいきます。上の表では、患者1と患者2に対して正しい診断が得られますが、患者3が癌であると誤って言っているはずです。 2人の医師を無作為に抽出する方法も試しました。2人の医師が互いに同意しない場合は、どちらがより自信がある医師に決定票が投じられます。この方法は、多くの医師に相談する必要がないという点で経済的ですが、エラー率もかなり高くなります。 私は2人の医師をランダムに選択する関連する方法を試しました。彼らが互いに同意しない場合は、さらに2人の医師をランダムに選択します。1つの診断が少なくとも2つの「投票」で進んでいる場合、その診断を支持して解決します。そうでない場合は、より多くの医師をサンプリングし続けます。この方法はかなり経済的で、あまりミスをしません。 もっと洗練されたやり方が足りないと感じて仕方がありません。たとえば、データセットをトレーニングセットとテストセットに分割し、診断を組み合わせるための最適な方法を考え出して、それらの重みがテストセットでどのように機能するかを確認できる方法があるかどうか疑問に思います。1つの可能性は、試験セットで間違いを犯し続けた医師の体重を減らし、おそらく自信を持って行われた診断の体重を増やすことのできるある種の方法です(信頼度はこのデータセットの正確さと相関します)。 私はこの一般的な説明に一致するさまざまなデータセットを持っているので、サンプルサイズは異なり、すべてのデータセットが医師/患者に関連しているわけではありません。ただし、この特定のデータセットには40人の医師がおり、それぞれ108人の患者を診察しています。 編集:これは、 @ jeremy-milesの回答を読んで得られた重みの一部へのリンクです。 重み付けされていない結果は最初の列にあります。実際、このデータセットでは、最大の信頼値は4でした。これは先ほど間違って言った5ではありません。したがって、@ jeremy-milesのアプローチに従うと、どの患者も加重されていない最も高いスコアは7になります。つまり、文字通りすべての医師が、その患者ががんであるという信頼レベル4を主張しました。患者が得ることができる最低の加重されていないスコアは0です。これは、すべての医師がその患者に癌がなかったことを信頼レベル4で主張したことを意味します。 α=KK−1(1−∑σ2xiσ2T)α=KK−1(1−∑σxi2σT2)\alpha = \frac{K}{K-1}\left(1-\frac{\sum \sigma^2_{x_i}}{\sigma^2_T}\right)KKK∑σ2xi∑σxi2\sum \sigma^2_{x_i}σ2TσT2\sigma^2_Tα=4040−1(1−8.7915200.7112)=0.9807α=4040−1(1−8.7915200.7112)=0.9807\alpha = \frac{40}{40-1}\left(1-\frac{8.7915}{200.7112}\right)=0.9807 合計アイテム相関による重み付け。すべてのアイテムの相関関係をすべて計算し、相関関係のサイズに比例して各医師に重みを付けます。 回帰係数による重み付け。 私がまだ確信が持てないことの1つは、どの方法が他の方法よりも「優れている」かを言う方法です。以前は、パーススキルスコアなどの計算を行っていました。これは、バイナリ予測とバイナリ結果があるインスタンスに適しています。しかし、今では0から1ではなく0から7の範囲の予測があります。すべての加重スコア> 3.50から1、およびすべての加重スコア<3.50から0に変換する必要がありますか?

5
100%に近いクラスラベルが1つのクラスに属しているときに分類子のパフォーマンスを測定する方法
私のデータには、で示されるクラス変数があります。このクラス変数の値は(バイナリ)です。ほとんどすべての観測値は0です(100%に近い、より正確には97%)。さまざまな分類モデルの「パフォーマンス」テストを希望します(精度の場合もあります)。発生を恐れているのは、観測を常にクラス0に分類する分類モデルがある場合、そのモデルは97%正確であることです(他の変数を考慮しない場合でも)。CCC0,10,1{0, 1}CCC 非常にまれなイベントを処理するデータの分類モデルの既知のパフォーマンステストはありますか?

3
行列乗算を使用してバイナリデータのJaccardまたはその他の関連係数を計算する
行列の乗算を使用してJaccard係数を計算する可能な方法があるかどうかを知りたいです。 私はこのコードを使用しました jaccard_sim <- function(x) { # initialize similarity matrix m <- matrix(NA, nrow=ncol(x),ncol=ncol(x),dimnames=list(colnames(x),colnames(x))) jaccard <- as.data.frame(m) for(i in 1:ncol(x)) { for(j in i:ncol(x)) { jaccard[i,j]= length(which(x[,i] & x[,j])) / length(which(x[,i] | x[,j])) jaccard[j,i]=jaccard[i,j] } } これはRで実装しても問題ありません。ダイスの類似性を1つ作成しましたが、谷本/ Jaccardで行き詰まりました。誰でも手伝ってくれる?

2
データのROC曲線を計算する
そのため、ハミング距離を使用して生体認証特性から個人を認証しようとしている16のトライアルがあります。しきい値は3.5に設定されています。私のデータは以下であり、トライアル1のみが真陽性です。 Trial Hamming Distance 1 0.34 2 0.37 3 0.34 4 0.29 5 0.55 6 0.47 7 0.47 8 0.32 9 0.39 10 0.45 11 0.42 12 0.37 13 0.66 14 0.39 15 0.44 16 0.39 私の混乱のポイントは、このデータからROC曲線(FPR対TPR OR FAR対FRR)を作成する方法が本当にわからないということです。どちらでもかまいませんが、どうやって計算するのか混乱しています。任意の助けいただければ幸いです。
9 mathematical-statistics  roc  classification  cross-validation  pac-learning  r  anova  survival  hazard  machine-learning  data-mining  hypothesis-testing  regression  random-variable  non-independent  normal-distribution  approximation  central-limit-theorem  interpolation  splines  distributions  kernel-smoothing  r  data-visualization  ggplot2  distributions  binomial  random-variable  poisson-distribution  simulation  kalman-filter  regression  lasso  regularization  lme4-nlme  model-selection  aic  r  mcmc  dlm  particle-filter  r  panel-data  multilevel-analysis  model-selection  entropy  graphical-model  r  distributions  quantiles  qq-plot  svm  matlab  regression  lasso  regularization  entropy  inference  r  distributions  dataset  algorithms  matrix-decomposition  regression  modeling  interaction  regularization  expected-value  exponential  gamma-distribution  mcmc  gibbs  probability  self-study  normality-assumption  naive-bayes  bayes-optimal-classifier  standard-deviation  classification  optimization  control-chart  engineering-statistics  regression  lasso  regularization  regression  references  lasso  regularization  elastic-net  r  distributions  aggregation  clustering  algorithms  regression  correlation  modeling  distributions  time-series  standard-deviation  goodness-of-fit  hypothesis-testing  statistical-significance  sample  binary-data  estimation  random-variable  interpolation  distributions  probability  chi-squared  predictor  outliers  regression  modeling  interaction 

3
クラス変数に不等分布の分類問題がある場合、どの手法を使用する必要がありますか?
たとえば。2つのクラスgoodとbadのクラス変数クレジットスコアリングがある場合(#(good)= 700および#(bad)= 300)。データを短くしたくありません。どのテクニックを使うべきですか?私はSVMを使用していましたが、それはすべての予測に悪影響を与えています。

5
量的データ、質的データ、またはその両方の公称、序数、およびバイナリですか?
私はデータ型を取り巻いていて、いくつかの助けが必要です: 上記の画像(ここから取得)を見ると、次のようなデータ型があります。 定量的(離散、連続) 定性的(名詞(N)、序数(O)、二項(B))。 しかし、次の写真(ここから)を見ると、カテゴリは次のとおりです。 定量的(離散(NOB)) 定性 1つの画像は定性的にNOBがあり、もう1つの画像は定性的にNOBです。どちらが正しいか?

3
logit-係数を確率として解釈する
重要な情報が不足しているようです。ロジスティック回帰の係数は、ロジットスケールと呼ばれるlog(odds)にあることを知っています。したがって、それらを解釈するためにexp(coef)採用され、オッズ比ORが得られます。 もし β1=0.012β1=0.012\beta_1 = 0.012 解釈は次のとおりです。共変量の1単位の増加 X1X1X_1、ログオッズ比は0.012です。これは、意味のある情報を提供しません。 べき乗により、共変量が1単位増加します。 X1X1X_1、オッズ比は1.012(exp(0.012)=1.012exp⁡(0.012)=1.012\exp(0.012)=1.012)、または Y=1Y=1Y=1 よりも1.012高い可能性があります Y=0Y=0Y=0。 ただし、係数はパーセンテージで表現したいと思います。GelmanとHillによると、回帰とマルチレベル/階層モデルを使用したデータ分析、111ページ: 係数βは累乗され、乗法効果として扱われます。」 したがって、β1= 0.012の場合、「予想される乗法的増加はexp(0.012)= 1.012、または1.2%の正の差... しかし、私のスクリプトによると ODDS=p1−pODDS=p1−p\text{ODDS} = \frac{p}{1-p} と逆ロジット式の状態 P=OR1+OR=1.0122.012=0.502P=OR1+OR=1.0122.012=0.502 P=\frac{OR}{1+OR}=\frac{1.012}{2.012}= 0.502 共変量が1単位増えると、Y = 1の確率が50%増えると解釈したくなります。これは間違っていると思いますが、理由はわかりません。 ロジット係数は確率でどのように解釈できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.